Skip to main content

Documentation Index

Fetch the complete documentation index at: https://qwady.wiki/llms.txt

Use this file to discover all available pages before exploring further.

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, market, health, and photos) 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

Search

Search rental and sale listings with 20+ filters

Property

Get listing details, price history, fees, and open houses

Building

Building data, listings, quality scores, and HPD violations

Photos

Deliver supported listing and building images through /v1/photos/{key}

Market

Market snapshots, trends, and area comparisons

Areas

List all 349 NYC neighborhoods, boroughs, and sub-boroughs

Streaming

Live SSE streams for cached + live listing data (Pro+)

Watchers

Persistent real-time monitoring of listings, buildings, and searches (Business+)

Webhooks

Webhook subscriptions for listing change notifications (Business+)

Error handling

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