Two POST endpoints to start and monitor imports. An API key is required. Imports run asynchronously — after /start, poll status with /latest-log.
POST /rest-api/import/start → import-in-queue.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'
/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.<updated> (unchanged value skips the feed).<last_update> on changed offers.POST /start. On cooldown or an in-progress import, wait and retry./latest-log and fix offers with errors.API-KEY (recommended)apikey query or form parameter. A key in the URL ends up in access logs and browser history — switch to the API-KEY header; support will be switched off after notice.Every authentication error returns HTTP 401 with body {"status":"error","message":"…"}:
| message | When |
|---|---|
API key is missing in request | Missing or empty API key |
API key could not be found | Unknown key |
API key is inactive | Disabled key |
API key is expired | Expired key |
User is inactive | User account is disabled |
User account is expired | User account has expired |
POST /rest-api/import/start| message | Meaning |
|---|---|
import-in-queue | Accepted; import is queued or already waiting |
import-is-allowed-between-the-time | Outside the 08:00–20:59 window (Bulgarian time) |
import-in-progress | An import is already running |
import-request-cooldown-is-time-given | Less than 30 minutes have passed since the last import — manual or automatic |
error-while-importing | No feed configured for the agency |
error: Agency not found | Key is not linked to an agency |
{"error":"Agency not found"}. Check the response body, not just the status code.POST /rest-api/import/latest-logmessage 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" } }]
}
"0" is success or success_with_warnings (some offers have errors). errors groups the errors by type and count, and is absent when there are none.logResult is an array with a single message: ["…"].<updated>): XML specificationresult_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.
Let Realistimo track for you instead
😃 Install the app and we'll notify you first when a suitable listing appears.
Stay updated on what's new in real estate, statistics, and news from Realistimo, without spam: