Platform
Get started

Casafari is the AI agent-native real estate data intelligence platform. The most complete property index in Europe: a deduplicated, cleaned property graph of residential and commercial property, for sale and for rent, in 16 countries.The most complete property index in Europe: a deduplicated, cleaned property graph.

How the graph is built

Property Sourcing · REST API

Next page of a search

GEThttps://platform.casafari.com/v1/property-sourcing/searches/{cursor}
API key100 units per page1 parameter

Send Authorization: Bearer $CASAFARI_API_KEY: a platform API key or OAuth access token; see platform sign-in. Costs 100 units per page (1 unit = EUR 0.04).

Over MCP: none; this product is REST only.

Description

The next page of a search: follow the next URL a search returned. A cursor carries its search, is bound to the account that ran it and is valid for one hour; nothing is stored. A forged, altered, expired or another account's cursor is 404 not_found. One search reaches at most 1,000 results (100 on Free). 100 units per page.

Path parameters

cursorstringrequired
The cur_... cursor at the end of a next URL.

Example request

Placeholders only: replace the token and the values with your own.

curl
curl "https://platform.casafari.com/v1/property-sourcing/searches/cur_SAMPLE" \
  -H "Authorization: Bearer $CASAFARI_API_KEY"

Responses

200 The next page of properties.

Type: object.

Show the response shape (21 fields)
resultsobject[]
10 properties
idstring
Opaque property id, prop_....
typestringnullable
Property type.
operationstring
sale rent
priceobject
3 properties
amountnumbernullable
Asking price; null when the price is on request.
currencystringnullable
ISO 4217 currency code.
per_sqmnumbernullable
Asking price per m².
bedroomsnumbernullable
living_area_sqmnumbernullable
locationobject
3 properties
idintegernullable
Location id.
namestringnullable
Location name.
coordinatesobjectnullable
Latitude and longitude.
2 properties
latnumber
lonnumber
first_seenstringnullable
When the property came on the market for this operation.
listings_countintegernullable
How many listings advertise it; known on a property read with expand=listings, null in search results.
matched_tagsstring[]nullable
The phrases of a plain-language search this property matched; null for structured searches.
totalintegernullable
How many properties match, when known.
nextstringnullable
URL of the next page (valid one hour), or null.
Example with sample values (ids and figures are illustrative)
JSON
{
  "results": [],
  "total": 312,
  "next": null
}

400 The search already reached its depth limit (`page_depth_exceeded`).

Type: object.

Show the response shape (10 fields)
typestring
The problem's documentation URL.
titlestring
statusinteger
detailstring
What happened and how to fix it.
instancestring
codestring
e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
request_idstring
errorsobject[]
One entry per field to fix.
2 properties
fieldstring
messagestring

401 Missing or unknown API key or token.

Type: object.

Show the response shape (10 fields)
typestring
The problem's documentation URL.
titlestring
statusinteger
detailstring
What happened and how to fix it.
instancestring
codestring
e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
request_idstring
errorsobject[]
One entry per field to fix.
2 properties
fieldstring
messagestring

402 No units left to fund the call (`payment_required`).

Type: object.

Show the response shape (10 fields)
typestring
The problem's documentation URL.
titlestring
statusinteger
detailstring
What happened and how to fix it.
instancestring
codestring
e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
request_idstring
errorsobject[]
One entry per field to fix.
2 properties
fieldstring
messagestring

404 Unknown, altered, expired or another account's cursor (`not_found`). Run the search again.

Type: object.

Show the response shape (10 fields)
typestring
The problem's documentation URL.
titlestring
statusinteger
detailstring
What happened and how to fix it.
instancestring
codestring
e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
request_idstring
errorsobject[]
One entry per field to fix.
2 properties
fieldstring
messagestring

429 A request limit of the plan was reached (`request_limit_reached`).

Type: object.

Show the response shape (10 fields)
typestring
The problem's documentation URL.
titlestring
statusinteger
detailstring
What happened and how to fix it.
instancestring
codestring
e.g. invalid_request, payment_required, not_entitled, not_found, page_depth_exceeded, request_limit_reached.
request_idstring
errorsobject[]
One entry per field to fix.
2 properties
fieldstring
messagestring

Tip: add .md to any URL to read it as Markdown.