REST API

REST API

თქვენი სისტემები კითხულობენ Realton-ის კატალოგსა და თქვენს CRM-ს, და წერენ კლიენტებს, შენიშვნებს, დავალებებსა და გარიგების ეტაპებს გასაღების შემქმნელის სახელით.

Agency პაკეტი

სწრაფი დაწყება

  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 / ჩემი სისტემა] Realton-ის REST API-სთან.
ჯერ წაიკითხეთ მოკლე აღწერა: 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 მონიშნული იყო, და მხოლოდ მანამ, სანამ სამუშაო სივრცე Agency პაკეტზეა.

Authorization: Bearer rtk_live_…

ვისი სახელით მოქმედებს გამოძახება

გამოძახება მოქმედებს იმ წევრის სახელით, ვინც გასაღები შექმნა, და ხედავს იმას, რასაც ის: აგენტი თავის კლიენტებს, მფლობელი ან ადმინისტრატორი მთელი სააგენტოს კლიენტებს. როცა ეს წევრი სამუშაო სივრცეს ტოვებს, გასაღები ჩერდება.

ლიმიტები

ერთ გასაღებზე წუთში 120 გამოძახებამდე. ლიმიტის გადაჭარბებისას პასუხი იქნება 429, RATE_LIMITED და retryAfterSec: დაელოდეთ ამდენ წამს და ხელახლა გამოიძახეთ.

გვერდები

GET /projects ერთდროულად 100 პროექტამდე აბრუნებს: limit განსაზღვრავს რაოდენობას, offset საწყის პოზიციას, total კი სრულ რაოდენობას.

იდენტიფიკატორები

პროექტის გასაღები მოდის GET /projects-იდან, კლიენტის id GET /clients-იდან, გარიგების id კი კლიენტის ბარათიდან, GET /clients/{id}, ველში deals[].id.

კლიენტს არაფერი ეგზავნება

არცერთი გამოძახება კლიენტს არაფერს უგზავნის: POST /brochures აბრუნებს ბმულს, რომელსაც აგენტი თავად აგზავნის. ფასები დეველოპერისაა, დეველოპერის ვალუტაში.

უარები

უარი არის JSON მუდმივი code-ით. იხელმძღვანელეთ კოდით და არასოდეს შეტყობინების ტექსტით.

{ "code": "plan_required" }
სტატუსიკოდირას ნიშნავს
401key_requiredAuthorization სათაური გასაღებით არ არის.
401key_invalidგასაღები უცნობია ან გაუქმებულია.
403key_scopeგასაღებს REST API-ზე წვდომა არ აქვს. შექმენით ახალი, მონიშნული REST API-ით.
403plan_requiredსამუშაო სივრცე აღარ არის Agency პაკეტზე.
403key_member_goneგასაღების შემქმნელი სამუშაო სივრციდან გავიდა. შექმენით ახალი გასაღები.
404not_foundვერ მოიძებნა, ან ამ წევრს მისი ნახვის უფლება არ აქვს.
429RATE_LIMITEDამ წუთში ძალიან ბევრი გამოძახებაა. დაელოდეთ retryAfterSec წამს.
400place_unknown, whatsapp_invalid, …ველი დასაშვებ ფარგლებს გარეთაა ან მნიშვნელობა არასწორია. კოდი ამ ველს ასახელებს.

ცნობარი

ყოველი გამოძახება ველებითა და მაგალითით, როგორც OpenAPI დოკუმენტშია.

საბაზისო მისამართი
https://realton.ai/api/v1

კატალოგი

GET/projectsSearch the catalog

Projects that fit, newest first, with their price from. Up to 100 a page.

პარამეტრები

სახელიტიპირა არის
q
მოთხოვნაში
string ≤ 120Words of a project's or a developer's name.
place
მოთხოვნაში
string ≤ 80A city or an emirate, by name or slug: Dubai, Batumi, Limassol.
area
მოთხოვნაში
string ≤ 80An area, by name or slug: Dubai Islands, JVC.
beds
მოთხოვნაში
integer 0–9Bedrooms: 0 is a studio, 4 is four and more.
maxPrice
მოთხოვნაში
numberThe most the client would pay, in currency.
currency
მოთხოვნაში
stringThe currency of maxPrice.
handoverBy
მოთხოვნაში
integer 2025–2045The latest handover year.
lang
მოთხოვნაში
en | heThe language of place and area names.
limit
მოთხოვნაში
integer 1–100How many projects in this page.
offset
მოთხოვნაში
integerHow many to skip: the next page starts at offset + limit.

პასუხი 200

სახელიტიპირა არის
totalსავალდებულოintegerHow many projects fit, across all pages.
offsetსავალდებულოintegerThe offset of this page.
catalogDateსავალდებულოstringThe day the catalog was last built, YYYY-MM-DD.
projectsსავალდებულოarray

თითოეული მათგანი

სახელიტიპირა არის
keystringThe project key, for GET /projects/{key} and POST /brochures.
namestringThe project's name.
developerstring | nullThe developer's name.
marketae | cy | ge | om | saae, cy, ge, om or sa.
placestring | nullThe city or emirate.
areastring | nullThe area.
stageOFF_PLAN | UNDER_CONSTRUCTION | READYOFF_PLAN, UNDER_CONSTRUCTION or READY.
handoverstring | nullWhen it is handed over, as the developer says it: Q4 2028.
priceFromnumber | nullThe lowest price, in currency.
currencystringThe developer's currency: AED, EUR, USD, OMR, SAR.
bedroomsarrayThe bedroom counts it has; 0 is a studio.
commissionPctnumber | nullThe agent's commission, in percent.
photostring | nullA photo of it.
მაგალითი
{
  "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}One project in full

Unit types with sizes and prices, payment plans, amenities, the gallery and what is nearby.

პარამეტრები

სახელიტიპირა არის
keyსავალდებულო
მისამართში
stringThe project key from GET /projects.
lang
მოთხოვნაში
en | heThe language of names, plans and amenities.

პასუხი 200

სახელიტიპირა არის
entryobjectIts catalog line: the same figures as GET /projects, with title for the name and slugs for place and area.
placeNamestring | nullThe city or emirate.
areaNamestring | nullThe area.
unitTypesarrayEach unit type: label, beds, available (from the inventory), sizeSqft, sizeSqm, priceFrom, currency, pricePerArea, areaUnit.
plansarrayPayment plans: each with its steps (label, timing, percent, phase) and its share before and after handover.
dldPctnumber | nullDubai's registration fee on booking, in percent; null elsewhere.
amenitiesarrayWhat the project offers.
galleryobjectcount, and images with their url.
nearbyarrayPlaces near it: category, name, km.
curl
curl -X GET "https://realton.ai/api/v1/projects/{key}" \
  -H "Authorization: Bearer $REALTON_API_KEY"

კლიენტები

GET/clientsYour clients

An agent's own clients; an owner's or an admin's, the agency's. Last active first.

პარამეტრები

სახელიტიპირა არის
q
მოთხოვნაში
string ≤ 80A name, a number or an email to look for.

პასუხი 200

სახელიტიპირა არის
clientsსავალდებულოarray

თითოეული მათგანი

სახელიტიპირა არის
idstringThe client id.
namestring | nullTheir name.
whatsappstring | nullTheir number.
emailstring | nullTheir email.
languagestring | nullThe language they speak.
sourcestringWhere they came from.
stageNEW | CONTACTED | VIEWING | EOI | BOOKED | WON | LOSTThe stage of their most advanced open deal.
projectstring | nullThe project of that deal.
lastActivityAtstringThe last thing that happened with them, ISO date-time.
ownerUserIdstringThe member they belong to.
openTasksintegerTheir open tasks.
curl
curl -X GET "https://realton.ai/api/v1/clients" \
  -H "Authorization: Bearer $REALTON_API_KEY"
POST/clientsA new client

A name and at least one way to reach them is the usual; a name alone is accepted.

სხეული

სახელიტიპირა არის
nameსავალდებულოstring ≤ 120Their full name.
whatsappstring ≤ 30A number with its country code, +971 50 555 0147.
emailstring ≤ 200An email address.
languagestring ≤ 5The language they speak, a two-letter code: en, ar, he, ru…
მაგალითი
{
  "name": "Elena Petrova",
  "whatsapp": "+971505550147",
  "language": "ru"
}

პასუხი 201

სახელიტიპირა არის
idstringThe client id.
namestring | nullTheir name.
languagestring | nullThe language they speak.
whatsappstring | nullTheir number, E.164.
emailstring | nullTheir email.
ownerUserIdstringThe member they belong to.
updatedAtstringISO date-time.
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}A client's card

Their details, what they are looking for, and their deals with each deal's id for PATCH /deals/{id}.

პარამეტრები

სახელიტიპირა არის
idსავალდებულო
მისამართში
stringThe client id from GET /clients.
lang
მოთხოვნაში
en | heThe language of place names.

პასუხი 200

სახელიტიპირა არის
idstringThe client id.
namestring | nullTheir name.
whatsappstring | nullTheir number.
emailstring | nullTheir email.
languagestring | nullThe language they speak.
requirementsobjectWhat they are looking for: places, bedrooms, budget, handover.
ownerNamestring | nullThe member they belong to.
dealsarrayTheir deals: 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}/notesA note on a client's card

Free text on the client's timeline, as the member.

პარამეტრები

სახელიტიპირა არის
idსავალდებულო
მისამართში
stringThe client id.

სხეული

სახელიტიპირა არის
textსავალდებულოstring ≤ 4000The note.
მაგალითი
{
  "text": "Wants a sea view, budget AED 2M, moving in 2028."
}

პასუხი 201

სახელიტიპირა არის
idსავალდებულოstringThe note id.
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/tasksYour tasks

The member's own tasks, with how many there are in each scope.

პარამეტრები

სახელიტიპირა არის
scope
მოთხოვნაში
open | overdue | today | upcoming | someday | doneopen is every task not done.

პასუხი 200

სახელიტიპირა არის
tasksსავალდებულოarray
countsსავალდებულოobjectHow many tasks in overdue, today, upcoming, someday and done.

თითოეული მათგანი

სახელიტიპირა არის
idstringThe task id.
titlestringWhat to do.
notestring | nullMore words about it.
dueAtstring | nullWhen, ISO date-time.
dueKindAT | DAY | NONEAT, DAY or NONE.
doneAtstring | nullWhen it was done.
scopeoverdue | today | upcoming | someday | doneWhere it stands now, in the member's time zone.
contactobject | nullThe client it is for: id and name.
dealIdstring | nullThe deal it belongs to.
curl
curl -X GET "https://realton.ai/api/v1/tasks" \
  -H "Authorization: Bearer $REALTON_API_KEY"
POST/tasksA new task

A task at a time, on a day, or with no date; for a client when clientId is given.

სხეული

სახელიტიპირა არის
titleსავალდებულოstring ≤ 200What to do.
notestring ≤ 2000More words about it.
dueAtstring ≤ 40When: an ISO date-time with its offset, 2026-10-25T11:00:00+04:00. With dueKind DAY, any time on that day.
dueKindAT | DAY | NONEAT for a time, DAY for a whole day, NONE for no date.
clientIdstringThe client the task is for.
მაგალითი
{
  "title": "Call Elena about Soma Residences",
  "dueAt": "2026-10-25T11:00:00+04:00",
  "dueKind": "AT",
  "clientId": "cm2x8k1qz0001abcdeffghijk"
}

პასუხი 201

სახელიტიპირა არის
idstringThe task id.
titlestringWhat to do.
notestring | nullMore words about it.
dueAtstring | nullWhen, ISO date-time.
dueKindAT | DAY | NONEAT, DAY or NONE.
doneAtstring | nullWhen it was done.
scopeoverdue | today | upcoming | someday | doneWhere it stands now, in the member's time zone.
contactobject | nullThe client it is for: id and name.
dealIdstring | nullThe deal it belongs to.
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}Move a deal's stage

A deal's id is on its client's card (GET /clients/{id}, deals[].id).

პარამეტრები

სახელიტიპირა არის
idსავალდებულო
მისამართში
stringThe deal id.

სხეული

სახელიტიპირა არის
stageსავალდებულოNEW | CONTACTED | VIEWING | EOI | BOOKED | WON | LOSTThe new stage.
lostReasonstring ≤ 200Why it was lost; read only with 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/brochuresA brochure link

A brochure of a project in your brand, with open tracking, for the agent to send. Realton does not send it.

სხეული

სახელიტიპირა არის
projectსავალდებულოstringThe project key.
clientIdstringThe client it is for: their opens show on their card.
langსავალდებულოen | heThe language of the brochure.
მაგალითი
{
  "project": "studio:soma-residences",
  "clientId": "cm2x8k1qz0001abcdeffghijk",
  "lang": "en"
}

პასუხი 201

სახელიტიპირა არის
idსავალდებულოstringThe link id.
urlსავალდებულოstringThe address to send: it opens the brochure in the agency's brand.
projectსავალდებულოstringThe project name.
langსავალდებულოstringThe language of the brochure.
clientსავალდებულოstring | nullThe client's name, when it is for one.
მაგალითი
{
  "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"}'