Tindreal API

For bots and developers

Tindreal has been built for machines from day one. Every listing has a stable address, clean data and an open interface.

REST API and OpenAPI live

JSON over HTTPS, pagination, filters and sorting. Codebooks are compatible with Sreality. Coordinates are deliberately blurred and rewards are never returned by the public API.

llms.txt live

A short description of the site and the API for language models and crawlers. Every page also links to a machine-readable version (<link rel="alternate" type="application/json">) and contains schema.org data (JSON-LD).

MCP server for AI assistants in development

The Model Context Protocol will let assistants (Claude, ChatGPT, Cursor and others) search listings and read their details directly through tools. The server will be available as a Streamable HTTP endpoint:

https://mcp.tindreal.cz/

In development. The address does not respond yet and the configuration below is planned – it will start working once the server is launched. Until then, use the REST API. Planned tools: listing search, listing detail, codebooks.

Claude Code

command line

claude mcp add --transport http tindreal https://mcp.tindreal.cz/

Claude (Desktop / web)

Settings → Connectors → Add custom connector

Name: Tindreal
Remote MCP server URL: https://mcp.tindreal.cz/

ChatGPT

Settings → Connectors (developer mode) → Create

Name: Tindreal
MCP server URL: https://mcp.tindreal.cz/
Authentication: none (public data)

Cursor

.cursor/mcp.json (or ~/.cursor/mcp.json)

{
  "mcpServers": {
    "tindreal": {
      "url": "https://mcp.tindreal.cz/"
    }
  }
}

Sreality-compatible import live

Real estate software vendors can use the same XML-RPC interface they are used to: POST https://api.tindreal.cz/import/sreality/RPC2. Sign-in, methods and codebooks follow the Sreality documentation; details are in the repository in docs/sreality-import.md. You create a key after signing in under Account → API keys.

Example calls

curl

curl "https://api.tindreal.cz/v1/listings?advert_function=1&advert_type=1&city=Praha&price_max=8000000&limit=10"
curl "https://api.tindreal.cz/v1/listings/100001"

JavaScript

const res = await fetch('https://api.tindreal.cz/v1/listings?advert_function=1&city=Brno&limit=5', {
  headers: { Accept: 'application/json' },
});
const { items, total } = await res.json();

Writing (key with the listings:write permission)

curl -X POST https://api.tindreal.cz/v1/listings \
  -H "X-API-Key: tr_live_..." -H "Content-Type: application/json" \
  -d '{"advert_function":1,"advert_type":1,"advert_subtype":4, ...}'

Rate limits

Limits apply per 60-second window, separately for the IP address and for the API key. Responses carry the RateLimit-Limit and RateLimit-Policy headers and, when the limit is exceeded, status 429 with Retry-After. The operator may change the exact values.

ClassEndpointsPer IP / minPer key / min
Public readsGET /v1/listings, /v1/codebooks, feeds120600
WritesPOST/PATCH/DELETE /v1/listings, webhooks12060
Import (XML-RPC)POST /import/sreality/RPC26060
Account (signed in)GET /v1/me/…, /v1/pro/…120120

Terms of use

Informative translation – the Czech version is binding. Česky

  • Public data is intended for searching and displaying listings, crediting the source (Tindreal) and linking to the listing page.
  • Do not circumvent rate limits, do not store shared keys in public repositories and do not attempt to sharpen a deliberately blurred location.
  • We do not publish sellers’ phone numbers or email addresses; contact takes place through a form.
  • Rewards for introducing a buyer are not public: Tindreal takes no cut and is not a party to the agreement (For professionals).
  • Trial operation (MVP): the interface may change; we announce changes in OpenAPI and in the feed.