Skip to main content

Base URL

All API requests use the following base URL:
https://borough.qwady.app/v1

Authentication

Include your API key in the Authorization header:
Authorization: Bearer BOROUGH-...
Free-tier endpoints (search, areas) work without authentication but are subject to stricter rate limits. See Authentication for details.

Response format

Every endpoint returns a consistent JSON envelope:
{
  "data": { ... },
  "meta": {
    "dataAge": "2026-02-15T14:28:00Z",
    "source": "cached"
  }
}
Some freshness-sensitive endpoints also include freshnessThreshold and refreshTriggered in meta when a tier-based refresh decision is part of the response. Paginated endpoints include additional fields in meta:
{
  "data": [ ... ],
  "meta": {
    "total": 342,
    "page": 1,
    "perPage": 25,
    "dataAge": "2026-02-15T14:25:00Z",
    "source": "cached",
    "links": {
      "self": "/v1/search/rentals?page=1&perPage=25",
      "first": "/v1/search/rentals?page=1&perPage=25",
      "last": "/v1/search/rentals?page=14&perPage=25",
      "next": "/v1/search/rentals?page=2&perPage=25"
    }
  }
}

Endpoint groups

Error handling

All errors follow a consistent format. See Errors for the full reference.
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Listing not found",
    "status": 404
  }
}