REST API

ה-REST API

המערכות שלכם קוראות את הקטלוג של Realton ואת ה-CRM שלכם, וכותבות לקוחות, הערות, משימות ושלבי עסקה, בשם מי שיצר את המפתח.

מסלול Business

התחלה מהירה

  1. ב-Realton, בעלים או מנהל פותחים הגדרות › API ו-MCP, מסמנים REST API ובוחרים יצירת מפתח. מעתיקים אותו מיד: הוא מוצג פעם אחת.
  2. שומרים אותו בשרת שלכם, במשתנה סביבה:
    export REALTON_API_KEY="rtk_live_…"
  3. הקריאה הראשונה:
    curl "https://realton.ai/api/v1/projects?place=Dubai&beds=2&limit=5" \
      -H "Authorization: Bearer $REALTON_API_KEY"

בונים את זה עם AI

היום רוב החיבורים נכתבים על ידי AI. נותנים לו את שתי הכתובות האלה ואת המשימה בכמה מילים, ואת השאר הוא קורא לבד.

פרומפט להעתקה, אחרי שממלאים את הסוגריים:
אני רוצה לחבר את [האתר / ה-CRM / המערכת] שלי ל-REST API של Realton.
קודם יש לקרוא את התקציר: https://realton.ai/docs/api.md
מסמך ה-OpenAPI המלא: https://realton.ai/docs/openapi.json
הטכנולוגיה שלי: [למשל Next.js ב-Vercel].
מה אני רוצה: [למשל להציג באתר את הפרויקטים של Realton בדובאי, עם עדכון פעם ביום].
מפתח ה-API נמצא במשתנה הסביבה REALTON_API_KEY. אין לבקש ממני את המפתח ואין לכתוב אותו בקוד.

אל תדביקו את המפתח בצ'אט. הגדירו את REALTON_API_KEY בשרת בעצמכם, וספרו ל-AI רק את השם שלו.

הכללים

המפתח

כל קריאה שולחת את המפתח בכותרת Authorization. מפתח נותן גישה ל-REST API רק אם סימנו REST API כשיצרו אותו, ורק כל עוד סביבת העבודה במסלול Business.

Authorization: Bearer rtk_live_…

בשם מי הקריאה פועלת

קריאה פועלת בשם חבר הצוות שיצר את המפתח, עם מה שגלוי לו: סוכן רואה את הלקוחות שלו, ובעלים או מנהל את לקוחות הסוכנות. כשחבר הצוות עוזב את סביבת העבודה, המפתח מפסיק לעבוד.

מגבלות

עד 120 קריאות בדקה לכל מפתח. מעבר לזה התשובה היא 429 עם RATE_LIMITED ו-retryAfterSec: מחכים את מספר השניות הזה וקוראים שוב.

עמודים

GET /projects מחזיר עד 100 פרויקטים בכל פעם: limit קובע כמה, offset מאיפה להתחיל, ו-total אומר כמה יש בסך הכול.

מזהים

מפתח פרויקט מגיע מ-GET /projects, מזהה לקוח מ-GET /clients, ומזהה עסקה מכרטיס הלקוח, GET /clients/{id}, בשדה deals[].id.

שום דבר לא נשלח ללקוח

אף קריאה לא שולחת משהו ללקוח: POST /brochures מחזיר קישור שהסוכן שולח. המחירים הם של היזם, במטבע של היזם.

סירובים

סירוב הוא JSON עם code קבוע. בודקים את הקוד, אף פעם לא את ההודעה.

{ "code": "plan_required" }
סטטוסקודמה זה אומר
401key_requiredאין כותרת Authorization עם מפתח.
401key_invalidהמפתח לא מוכר או שבוטל.
403key_scopeהמפתח לא נותן גישה ל-REST API. צרו מפתח עם REST API מסומן.
403plan_requiredסביבת העבודה כבר לא במסלול Business.
403key_member_goneמי שיצר את המפתח עזב את סביבת העבודה. צרו מפתח חדש.
404not_foundלא נמצא, או לא גלוי לחבר הצוות הזה.
429RATE_LIMITEDיותר מדי קריאות בדקה הזו. חכו retryAfterSec שניות.
400place_unknown, whatsapp_invalid, …שדה מחוץ לטווח או ערך לא תקין. הקוד אומר איזה.

רפרנס

כל קריאה עם השדות שלה ודוגמה, כמו במסמך ה-OpenAPI.

כתובת הבסיס
https://realton.ai/api/v1

קטלוג

GET/projectsחיפוש בקטלוג

פרויקטים מתאימים, החדשים קודם, עם המחיר ההתחלתי. עד 100 בעמוד.

פרמטרים

שםסוגמה זה
q
בכתובת
string ≤ 120מילים משם הפרויקט או היזם.
place
בכתובת
string ≤ 80עיר או אמירות, בשם או ב-slug: Dubai,‏ Batumi,‏ Limassol.
area
בכתובת
string ≤ 80אזור, בשם או ב-slug: Dubai Islands,‏ JVC.
beds
בכתובת
integer 0–9חדרי שינה: 0 הוא סטודיו, 4 הוא ארבעה ומעלה.
maxPrice
בכתובת
numberהסכום הגבוה ביותר שהלקוח ישלם, ב-currency.
currency
בכתובת
stringהמטבע של maxPrice.
handoverBy
בכתובת
integer 2025–2045שנת המסירה המאוחרת ביותר.
lang
בכתובת
en | heהשפה של שמות המקומות והאזורים.
limit
בכתובת
integer 1–100כמה פרויקטים בעמוד הזה.
offset
בכתובת
integerכמה לדלג: העמוד הבא מתחיל ב-offset + limit.

תשובה 200

שםסוגמה זה
totalחובהintegerכמה פרויקטים מתאימים בכל העמודים.
offsetחובהintegerה-offset של העמוד הזה.
catalogDateחובהstringהיום שבו הקטלוג נבנה לאחרונה, YYYY-MM-DD.
projectsחובהarray

כל אחד מהם

שםסוגמה זה
keystringמפתח הפרויקט, ל-GET /projects/{key} ול-POST /brochures.
namestringשם הפרויקט.
developerstring | nullשם היזם.
marketae | cy | ge | om | saae,‏ cy,‏ ge,‏ om או sa.
placestring | nullהעיר או האמירות.
areastring | nullהאזור.
stageOFF_PLAN | UNDER_CONSTRUCTION | READYOFF_PLAN,‏ UNDER_CONSTRUCTION או READY.
handoverstring | nullמתי הוא נמסר, כמו שהיזם אומר: Q4 2028.
priceFromnumber | nullהמחיר הנמוך ביותר, ב-currency.
currencystringהמטבע של היזם: AED,‏ EUR,‏ USD,‏ OMR,‏ SAR.
bedroomsarrayמספרי חדרי השינה שיש בו; 0 הוא סטודיו.
commissionPctnumber | nullהעמלה של הסוכן, באחוזים.
photostring | nullתמונה שלו.
דוגמה
{
  "total": 312,
  "offset": 0,
  "catalogDate": "2026-10-24",
  "projects": [
    {
      "key": "studio:soma-residences",
      "name": "Soma Residences",
      "developer": "Origami Properties",
      "market": "ae",
      "place": "Dubai",
      "area": "Dubai Islands",
      "stage": "OFF_PLAN",
      "handover": "Q4 2028",
      "priceFrom": 1670000,
      "currency": "AED",
      "bedrooms": [
        1,
        2,
        3
      ],
      "commissionPct": 5,
      "photo": "https://…/soma-residences.avif"
    }
  ]
}
curl
curl -X GET "https://realton.ai/api/v1/projects" \
  -H "Authorization: Bearer $REALTON_API_KEY"
GET/projects/{key}פרויקט אחד במלואו

סוגי יחידות עם שטחים ומחירים, תוכניות תשלום, מתקנים, הגלריה ומה יש בסביבה.

פרמטרים

שםסוגמה זה
keyחובה
בנתיב
stringמפתח הפרויקט מ-GET /projects.
lang
בכתובת
en | heהשפה של השמות, תוכניות התשלום והמתקנים.

תשובה 200

שםסוגמה זה
entryobjectהשורה שלו בקטלוג: אותם נתונים כמו ב-GET /projects, עם title לשם ו-slugs למקום ולאזור.
placeNamestring | nullהעיר או האמירות.
areaNamestring | nullהאזור.
unitTypesarrayכל סוג יחידה: label,‏ beds,‏ available (מהמלאי), sizeSqft,‏ sizeSqm,‏ priceFrom,‏ currency,‏ pricePerArea,‏ areaUnit.
plansarrayתוכניות תשלום: לכל אחת השלבים (label,‏ timing,‏ percent,‏ phase) והחלק לפני המסירה ואחריה.
dldPctnumber | nullאגרת הרישום של דובאי בהזמנה, באחוזים; null במקומות אחרים.
amenitiesarrayמה הפרויקט מציע.
galleryobjectcount, ו-images עם ה-url שלהן.
nearbyarrayמקומות קרובים: category,‏ name,‏ km.
curl
curl -X GET "https://realton.ai/api/v1/projects/{key}" \
  -H "Authorization: Bearer $REALTON_API_KEY"

לקוחות

GET/clientsהלקוחות שלכם

סוכן מקבל את הלקוחות שלו, ובעלים או מנהל את כל לקוחות הסוכנות. הפעילים לאחרונה קודם.

פרמטרים

שםסוגמה זה
q
בכתובת
string ≤ 80שם, מספר או מייל לחיפוש.

תשובה 200

שםסוגמה זה
clientsחובהarray

כל אחד מהם

שםסוגמה זה
idstringמזהה הלקוח.
namestring | nullהשם.
whatsappstring | nullהמספר.
emailstring | nullהמייל.
languagestring | nullהשפה שהם מדברים.
sourcestringמאיפה הם הגיעו.
stageNEW | CONTACTED | VIEWING | EOI | BOOKED | WON | LOSTהשלב של העסקה הפתוחה המתקדמת ביותר שלהם.
projectstring | nullהפרויקט של אותה עסקה.
lastActivityAtstringהדבר האחרון שקרה איתם, תאריך ושעה ב-ISO.
ownerUserIdstringחבר הצוות שהם שייכים לו.
openTasksintegerהמשימות הפתוחות שלהם.
curl
curl -X GET "https://realton.ai/api/v1/clients" \
  -H "Authorization: Bearer $REALTON_API_KEY"
POST/clientsלקוח חדש

בדרך כלל שם ולפחות דרך אחת ליצור קשר; גם שם לבד מתקבל.

גוף הבקשה

שםסוגמה זה
nameחובהstring ≤ 120השם המלא.
whatsappstring ≤ 30מספר עם קידומת מדינה, ‎+971 50 555 0147.
emailstring ≤ 200כתובת מייל.
languagestring ≤ 5השפה שהם מדברים, בקוד של שתי אותיות: en,‏ ar,‏ he,‏ ru…
דוגמה
{
  "name": "Elena Petrova",
  "whatsapp": "+971505550147",
  "language": "ru"
}

תשובה 201

שםסוגמה זה
idstringמזהה הלקוח.
namestring | nullהשם.
languagestring | nullהשפה שהם מדברים.
whatsappstring | nullהמספר, בפורמט E.164.
emailstring | nullהמייל.
ownerUserIdstringחבר הצוות שהם שייכים לו.
updatedAtstringתאריך ושעה ב-ISO.
curl
curl -X POST "https://realton.ai/api/v1/clients" \
  -H "Authorization: Bearer $REALTON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Elena Petrova","whatsapp":"+971505550147","language":"ru"}'
GET/clients/{id}כרטיס הלקוח

הפרטים, מה הם מחפשים, והעסקאות שלהם עם המזהה של כל עסקה ל-PATCH /deals/{id}.

פרמטרים

שםסוגמה זה
idחובה
בנתיב
stringמזהה הלקוח מ-GET /clients.
lang
בכתובת
en | heהשפה של שמות המקומות.

תשובה 200

שםסוגמה זה
idstringמזהה הלקוח.
namestring | nullהשם.
whatsappstring | nullהמספר.
emailstring | nullהמייל.
languagestring | nullהשפה שהם מדברים.
requirementsobjectמה הם מחפשים: מקומות, חדרי שינה, תקציב, מסירה.
ownerNamestring | nullחבר הצוות שהם שייכים לו.
dealsarrayהעסקאות שלהם: id,‏ stage,‏ projectKey,‏ projectTitle,‏ beds,‏ unitLabel,‏ price,‏ currency,‏ commissionPct,‏ commission,‏ lostReason.
curl
curl -X GET "https://realton.ai/api/v1/clients/{id}" \
  -H "Authorization: Bearer $REALTON_API_KEY"
POST/clients/{id}/notesהערה בכרטיס לקוח

טקסט חופשי בציר הזמן של הלקוח, בשם חבר הצוות.

פרמטרים

שםסוגמה זה
idחובה
בנתיב
stringמזהה הלקוח.

גוף הבקשה

שםסוגמה זה
textחובהstring ≤ 4000ההערה.
דוגמה
{
  "text": "Wants a sea view, budget AED 2M, moving in 2028."
}

תשובה 201

שםסוגמה זה
idחובהstringמזהה ההערה.
curl
curl -X POST "https://realton.ai/api/v1/clients/{id}/notes" \
  -H "Authorization: Bearer $REALTON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Wants a sea view, budget AED 2M, moving in 2028."}'

משימות

GET/tasksהמשימות שלכם

המשימות של חבר הצוות, עם המספר בכל קבוצה.

פרמטרים

שםסוגמה זה
scope
בכתובת
open | overdue | today | upcoming | someday | doneopen הן כל המשימות שלא הושלמו.

תשובה 200

שםסוגמה זה
tasksחובהarray
countsחובהobjectכמה משימות יש ב-overdue,‏ today,‏ upcoming,‏ someday ו-done.

כל אחד מהם

שםסוגמה זה
idstringמזהה המשימה.
titlestringמה צריך לעשות.
notestring | nullעוד פרטים.
dueAtstring | nullמתי, תאריך ושעה ב-ISO.
dueKindAT | DAY | NONEAT,‏ DAY או NONE.
doneAtstring | nullמתי היא הושלמה.
scopeoverdue | today | upcoming | someday | doneאיפה היא עומדת עכשיו, באזור הזמן של חבר הצוות.
contactobject | nullהלקוח שהמשימה שלו: id ו-name.
dealIdstring | nullהעסקה שהיא שייכת לה.
curl
curl -X GET "https://realton.ai/api/v1/tasks" \
  -H "Authorization: Bearer $REALTON_API_KEY"
POST/tasksמשימה חדשה

משימה בשעה מסוימת, ביום מסוים או בלי תאריך; של לקוח כשנשלח clientId.

גוף הבקשה

שםסוגמה זה
titleחובהstring ≤ 200מה צריך לעשות.
notestring ≤ 2000עוד פרטים.
dueAtstring ≤ 40מתי: תאריך ושעה ב-ISO עם ההפרש מ-UTC, ‎2026-10-25T11:00:00+04:00. עם dueKind DAY, כל שעה באותו יום.
dueKindAT | DAY | NONEAT לשעה, DAY ליום שלם, NONE בלי תאריך.
clientIdstringהלקוח שהמשימה שלו.
דוגמה
{
  "title": "Call Elena about Soma Residences",
  "dueAt": "2026-10-25T11:00:00+04:00",
  "dueKind": "AT",
  "clientId": "cm2x8k1qz0001abcdeffghijk"
}

תשובה 201

שםסוגמה זה
idstringמזהה המשימה.
titlestringמה צריך לעשות.
notestring | nullעוד פרטים.
dueAtstring | nullמתי, תאריך ושעה ב-ISO.
dueKindAT | DAY | NONEAT,‏ DAY או NONE.
doneAtstring | nullמתי היא הושלמה.
scopeoverdue | today | upcoming | someday | doneאיפה היא עומדת עכשיו, באזור הזמן של חבר הצוות.
contactobject | nullהלקוח שהמשימה שלו: id ו-name.
dealIdstring | nullהעסקה שהיא שייכת לה.
curl
curl -X POST "https://realton.ai/api/v1/tasks" \
  -H "Authorization: Bearer $REALTON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Call Elena about Soma Residences","dueAt":"2026-10-25T11:00:00+04:00","dueKind":"AT","clientId":"cm2x8k1qz0001abcdeffghijk"}'

עסקאות

PATCH/deals/{id}העברת עסקה לשלב

המזהה של עסקה נמצא בכרטיס הלקוח (GET /clients/{id},‏ deals[].id).

פרמטרים

שםסוגמה זה
idחובה
בנתיב
stringמזהה העסקה.

גוף הבקשה

שםסוגמה זה
stageחובהNEW | CONTACTED | VIEWING | EOI | BOOKED | WON | LOSTהשלב החדש.
lostReasonstring ≤ 200למה העסקה אבדה; נקרא רק עם LOST.
דוגמה
{
  "stage": "VIEWING"
}

תשובה 200

שםסוגמה זה
okחובהboolean
curl
curl -X PATCH "https://realton.ai/api/v1/deals/{id}" \
  -H "Authorization: Bearer $REALTON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"stage":"VIEWING"}'

ברושורים

POST/brochuresקישור לברושור

ברושור של פרויקט במותג שלכם, עם מעקב פתיחות, לשליחה על ידי הסוכן. Realton לא שולח אותו.

גוף הבקשה

שםסוגמה זה
projectחובהstringמפתח הפרויקט.
clientIdstringהלקוח שהקישור בשבילו: הפתיחות יופיעו בכרטיס שלו.
langחובהen | heשפת הברושור.
דוגמה
{
  "project": "studio:soma-residences",
  "clientId": "cm2x8k1qz0001abcdeffghijk",
  "lang": "en"
}

תשובה 201

שםסוגמה זה
idחובהstringמזהה הקישור.
urlחובהstringהכתובת לשליחה: היא פותחת את הברושור במותג של הסוכנות.
projectחובהstringשם הפרויקט.
langחובהstringשפת הברושור.
clientחובהstring | nullשם הלקוח, אם הקישור בשבילו.
דוגמה
{
  "id": "cm2x9p0aa0002abcdeffghijk",
  "url": "https://realton.ai/b/Hk3…",
  "project": "Soma Residences",
  "lang": "en",
  "client": "Elena Petrova"
}
curl
curl -X POST "https://realton.ai/api/v1/brochures" \
  -H "Authorization: Bearer $REALTON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"project":"studio:soma-residences","clientId":"cm2x8k1qz0001abcdeffghijk","lang":"en"}'