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

# Enums

> All enumerated values used in the API

## BuildingType

| Value          | Description                                           |
| -------------- | ----------------------------------------------------- |
| `CONDO`        | Condominium                                           |
| `CO_OP`        | Co-operative                                          |
| `CONDOP`       | Condop: a co-op that operates under condo-like rules  |
| `RENTAL`       | Rental building                                       |
| `TOWNHOUSE`    | Townhouse                                             |
| `HOUSE`        | Single-family house                                   |
| `SINGLEFAMILY` | Single-family dwelling                                |
| `TWOFAMILY`    | Two-family house                                      |
| `THREEFAMILY`  | Three-family house                                    |
| `FOURFAMILY`   | Four-family dwelling                                  |
| `MULTI_FAMILY` | Multi-family house                                    |
| `MIXED_USE`    | Mixed-use building                                    |
| `HYBRID`       | Mixed ownership/structure type reported by the source |
| `COMMERCIAL`   | Commercial building                                   |
| `UNKNOWN`      | Type not reported by the source                       |

<Note>
  `MULTIFAMILY` (no underscore) is accepted as an input alias for `MULTI_FAMILY` on
  the `buildingType` and `excludeBuildingType` filters. Responses always return the
  canonical spelling `MULTI_FAMILY`.
</Note>

## ListingStatus

| Value         | Description                                            |
| ------------- | ------------------------------------------------------ |
| `ACTIVE`      | Currently available                                    |
| `IN_CONTRACT` | Under contract / offer accepted (*reserved; see note*) |
| `OFF_MARKET`  | No longer available                                    |

<Note>
  Borough currently emits **`ACTIVE`** and **`OFF_MARKET`** only. `IN_CONTRACT` is a
  reserved value that the data feed does not yet surface, so listings transition
  directly from `ACTIVE` to `OFF_MARKET` when they leave the market. Treat
  `IN_CONTRACT` as a forward-compatible value: match on it if present, but do not
  rely on it for in-contract detection today.
</Note>

## SaleType

| Value          | Description                                 |
| -------------- | ------------------------------------------- |
| `RESALE`       | Standard resale                             |
| `SPONSOR_UNIT` | New development / sponsor sale              |
| `FORECLOSURE`  | Foreclosure                                 |
| `RESTRICTED`   | Income- or age-restricted sale (HDFC-style) |
| `AUCTION`      | Sold at auction                             |
| `SHORT`        | Short sale                                  |
| `UNKNOWN`      | Not reported by the source                  |

## Sort

| Value         | Description               |
| ------------- | ------------------------- |
| `RECOMMENDED` | Default relevance ranking |
| `PRICE`       | Sort by price             |
| `LISTED_AT`   | Sort by listing date      |

## SortDirection

| Value  | Description                            |
| ------ | -------------------------------------- |
| `ASC`  | Ascending (low to high, oldest first)  |
| `DESC` | Descending (high to low, newest first) |

## PriceEvent

The `event` field returned by `/property/{id}/history` and `/market/rentals/trends`.

| Value            | Description     |
| ---------------- | --------------- |
| `LISTED`         | Initial listing |
| `PRICE_DROP`     | Price reduced   |
| `PRICE_INCREASE` | Price raised    |

## ErrorCode

| Value                 | HTTP Status | Description                    |
| --------------------- | ----------- | ------------------------------ |
| `INVALID_PARAMS`      | 400         | Invalid request parameters     |
| `MISSING_API_KEY`     | 401         | No API key provided            |
| `INVALID_API_KEY`     | 401         | Unrecognized API key           |
| `EXPIRED_API_KEY`     | 401         | Subscription expired           |
| `TIER_RESTRICTED`     | 403         | Higher tier required           |
| `QUOTA_EXCEEDED`      | 429         | Monthly quota exceeded         |
| `NOT_FOUND`           | 404         | Resource not found             |
| `WEBHOOK_NOT_FOUND`   | 404         | Webhook subscription not found |
| `RATE_LIMIT_EXCEEDED` | 429         | Rate limit exceeded            |
| `INTERNAL_ERROR`      | 500         | Unexpected error               |
| `UPSTREAM_ERROR`      | 502         | Data source error              |
| `SERVICE_DISABLED`    | 503         | API temporarily disabled       |

## WebhookEvent

| Value                     | Description             |
| ------------------------- | ----------------------- |
| `listing.created`         | New listing appeared    |
| `listing.price_decreased` | Price dropped >\$25     |
| `listing.price_increased` | Price raised >\$25      |
| `listing.status_changed`  | Status changed          |
| `listing.expired`         | Listing went off-market |
