DarakPlatform
Use casesDocsGuidesPricing
DocsGuides
Guides

Start here

  • Quickstart
  • Authentication

AI & MCP

  • Connect an AI assistant
  • Build with Darak and AI

About the data

  • What a listing is
  • Coverage and freshness

Building with it

  • Searching and filtering
  • Webhooks
  • Keeping a copy in sync

Operating

  • Limits and quotas
  • Pagination
  • Retrying safely
  • Errors
  • Versioning

Policies

  • Terms in practice

API reference →

Quickstart

  1. Get an API key (dk_live_…) from your Darak account.
  2. Make a request:
curl "https://api.darak.app/v1/listings?city=riyadh&listing_type=rent&limit=5" \
  -H "Authorization: Bearer $DARAK_API_KEY"

Or with an official SDK, which adds types, paging and retries. Both cover every endpoint here and are generated from this spec.

// npm install @darak-app/sdk
import { Darak } from "@darak-app/sdk";

const darak = new Darak(); // reads DARAK_API_KEY
const page = await darak.listings.search({ city: "riyadh", listing_type: "rent", limit: 5 });
# pip install darak
from darak import Darak

darak = Darak()  # reads DARAK_API_KEY
page = darak.listings.search(city="riyadh", listing_type="rent", limit=5)
  1. Use GET /cities and GET /cities/{city}/neighborhoods to find the city slugs and neighborhood ids that filters accept, and GET /enums for allowed values.

All responses are JSON. Single objects come back as { "data": { … } }, lists as { "data": [ … ], "pagination": { … } }.

Where things are. The OpenAPI document is at /v1/openapi.json — no key needed — and generates both SDKs, so you can generate your own client from it too. @darak-app/sdk is on npm and darak on PyPI. Changes are announced in the changelog, which has an RSS feed, and availability is on the status page. If something is wrong, look the call up yourself with GET /organization/request-logs?request_id=… — it carries the status, the error and the parameter at fault — or email [email protected] quoting the request_id.