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

# API Reference

> Base URL, authentication, and error codes.

## Base URL

```
https://api.propertylayer.com
```

***

## Authentication

Pass your API key as a Bearer token in the `Authorization` header on every request:

```bash theme={null}
curl -X POST https://api.propertylayer.com/properties/area \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '...'
```

See [Authentication](https://docs.propertylayer.com/guides/authentication.md) for how to create and manage keys.

***

## Endpoints

| Method | Path | Description |
| - | - | - |
| `POST` | `/properties/area` | Find properties intersecting one or more polygons (returns UUIDs) |
| `POST` | `/properties/query` | Filter properties by field values (returns full records) |
| `GET` | `/properties/point` | Find properties containing a lat/lng point |
| `GET` | `/properties/address` | Find properties by street address |
| `GET` | `/properties/usage` | Current billing-period usage and plan limits |

**Typical workflow:** use `/area` to identify properties in a geography, then pass the returned UUIDs to `/query` with the `bpd_uuid in` filter to fetch full records in one call.

***

## Enrichments

The tax assessor record is the property record. Owner, address, structures, land, valuation history, taxes, exemptions and sale history come back as top-level sections on every property, with no flag to set. See [Data fields](https://docs.propertylayer.com/guides/data-fields.md).

Building footprints are opt-in:

| Flag | Adds | Reference |
| - | - | - |
| `include_buildings` | `building_footprints`, ORNL footprint geometry and height | [Data fields](https://docs.propertylayer.com/guides/data-fields.md#enrichments) |

It defaults to `false` and the key is omitted when not requested. On `GET` endpoints pass it as a query parameter; on `POST` endpoints pass it in the request body.

***

## Error codes

| Status | Meaning |
| - | - |
| `200 OK` | Request succeeded. |
| `400 Bad Request` | Invalid field or operator, or a malformed filter value. |
| `401 Unauthorized` | Missing or invalid API key. |
| `403 Forbidden` | No active subscription. |
| `422 Unprocessable Entity` | Request body failed schema validation, or an address geocoded too imprecisely to identify a property. |
| `429 Too Many Requests` | Monthly limit exceeded. See [Rate limits](https://docs.propertylayer.com/guides/rate-limits.md). |
| `500 Internal Server Error` | Unexpected error. Contact [support@propertylayer.com](mailto:support@propertylayer.com). |
| `504 Gateway Timeout` | Query timed out. Narrow your filters or reduce the search area. |

All error responses:

```json theme={null}
{ "detail": "Human-readable error message" }
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.