> ## Documentation Index
> Fetch the complete documentation index at: https://qwady.wiki/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Make your first API request in under 2 minutes

## 1. Get an API key

Subscribe to a plan on our [pricing page](/borough/tiers-and-pricing) to receive your API key. Keys use the format `BOROUGH-<uuid>`.

Free-tier search, areas, market, health, and photo endpoints work without authentication (IP-based rate limiting applies).

## 2. Make your first request

<CodeGroup>
  ```bash cURL theme={null}
  curl -H "Authorization: Bearer BOROUGH-your-key-here" \
    "https://borough.qwady.app/v1/search/rentals?areas=140&maxPrice=4000&minBeds=1"
  ```

  ```typescript SDK theme={null}
  import { BoroughClient } from "@borough/sdk";

  const borough = new BoroughClient("BOROUGH-your-key-here");

  const results = await borough.rentals.search({
    areas: "140",
    maxPrice: 4000,
    minBeds: 1,
  });

  for (const listing of results.data) {
    console.log(`${listing.address.street} - $${listing.price}/mo`);
  }
  ```

  ```python Python theme={null}
  import requests

  headers = {"Authorization": "Bearer BOROUGH-your-key-here"}
  params = {"areas": "140", "maxPrice": 4000, "minBeds": 1}

  response = requests.get(
      "https://borough.qwady.app/v1/search/rentals",
      headers=headers,
      params=params,
  )
  data = response.json()

  for listing in data["data"]:
      print(f"{listing['address']['street']} - ${listing['price']}/mo")
  ```
</CodeGroup>

## 3. Understand the response

Every response follows this envelope:

```json theme={null}
{
  "data": [...],
  "meta": {
    "total": 142,
    "page": 1,
    "perPage": 10,
    "dataAge": "2026-02-15T14:30:00Z",
    "source": "cached",
    "links": {
      "self": "https://borough.qwady.app/v1/search/rentals?areas=140&page=1&perPage=10",
      "first": "https://borough.qwady.app/v1/search/rentals?areas=140&page=1&perPage=10",
      "last": "https://borough.qwady.app/v1/search/rentals?areas=140&page=15&perPage=10",
      "prev": null,
      "next": "https://borough.qwady.app/v1/search/rentals?areas=140&page=2&perPage=10"
    }
  }
}
```

Key fields:

* **`data`**: The response payload (array for lists, object for single resources)
* **`meta.dataAge`**: When the data was last refreshed (ISO 8601)
* **`meta.source`**: How data was served: `cached`, `stale`, or `live`
* **`meta.links`**: Pagination navigation URLs

If the response includes a `leadPhotoKey`, you can fetch a first-party image URL through Borough at `/v1/photos/{key}`. See [Photo URLs](/borough/reference/photo-urls) for supported sizes.

## Next steps

* [Authentication](/borough/authentication): API key formats and header usage
* [Search Filters](/borough/guides/filtering): All available filter parameters
* [SDK Guide](/borough/sdk): Install and use the TypeScript SDK
