Realistimo app Follow properties more easily. Get the app from Google Play Google Play Realistimo app Follow properties more easily. Get the app from App Store App Store

Import / sync REST API

API to start and monitor imports. Feed format: XML specification.

Overview

Overview

Two POST endpoints to start and monitor imports. An API key is required. Imports run asynchronously — after /start, poll status with /latest-log.

Tutorial

Get started

  1. Public XML feed + agency → API key from [email protected].
  2. POST /rest-api/import/start → import-in-queue.
  3. Poll POST /rest-api/import/latest-log until completed.
curl -X POST 'https://realistimo.com/rest-api/import/start' \
  -H 'Accept: application/json' \
  -H 'API-KEY: YourApiKeyHere'

curl -X POST 'https://realistimo.com/rest-api/import/latest-log' \
  -H 'Accept: application/json' \
  -H 'API-KEY: YourApiKeyHere'
A test API key does not run an import: /start always returns {"message":"Import in queue"}, and /latest-log returns the same sample response, in which logResult and logOffers are JSON strings. Use it only to check the connection.
How-to

How to sync after feed changes

  1. Update the XML and set a new <updated> (unchanged value skips the feed).
  2. Bump <last_update> on changed offers.
  3. POST /start. On cooldown or an in-progress import, wait and retry.
  4. Poll /latest-log and fix offers with errors.
Reference

Authentication

Every authentication error returns HTTP 401 with body {"status":"error","message":"…"}:

messageWhen
API key is missing in requestMissing or empty API key
API key could not be foundUnknown key
API key is inactiveDisabled key
API key is expiredExpired key
User is inactiveUser account is disabled
User account is expiredUser account has expired

POST /rest-api/import/start

messageMeaning
import-in-queueAccepted; import is queued or already waiting
import-is-allowed-between-the-timeOutside the 08:00–20:59 window (Bulgarian time)
import-in-progressAn import is already running
import-request-cooldown-is-time-givenLess than 30 minutes have passed since the last import — manual or automatic
error-while-importingNo feed configured for the agency
error: Agency not foundKey is not linked to an agency
These responses come back with HTTP 200, including {"error":"Agency not found"}. Check the response body, not just the status code.

POST /rest-api/import/latest-log

message is the import status: pending | in_progress | completed (or null if none yet). When a log is available: logDate, logResult, logOffers (uuid, createdAt, errors, offerSourceData).

{
  "message": "completed",
  "logDate": "2024-09-18T01:51:14+03:00",
  "logResult": {
    "0": "success_with_warnings",
    "found_offers": 228,
    "published_found_offers_in_agency": 218,
    "imported_offers": 0,
    "published_offers": 0,
    "not_published": 10,
    "removed_offers": 0,
    "deleted_offers": 0,
    "updated_offers": 228,
    "errors": [{ "type": "…", "count": 10 }]
  },
  "logOffers": [{ "uuid": "…", "errors": [], "offerSourceData": { "offer_uid": "2080525" } }]
}
Reference

Limits

Callback (result_url)

After import, Realistimo makes a POST to the URL from the XML (result_url) with a JSON body like latest-log: message, logDate, logResult, logOffers. The request is sent once: on error or an unreachable URL it is not retried. If the callback doesn't arrive, check /latest-log.

See also

XML & support

The Real Estate Newsletter

Stay updated on what's new in real estate, statistics, and news from Realistimo, without spam:

You have successfully subscribed.
Please add an Email. Please add a valid Email. Please choose the profile Type. Please enter a city. Please select a city from the options in the dropdown list when filling in the field. There was a problem. Please try again later.
US AIzaSyBR3omDZNtlfDZ-DUvziDqXSz06vDg5mk4