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

# Overview

> Common patterns for all API endpoints

## Request headers

All API requests require authentication and may require a content type header
depending on the endpoint.

### Authorization

Every request must include your API key in the Authorization header:

```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```

See [Authentication](/developers/authentication) for how to obtain and manage
your API key.

### Content-Type

For endpoints that accept a request body:

| Body type    | Content-Type header   |
| ------------ | --------------------- |
| JSON data    | `application/json`    |
| File uploads | `multipart/form-data` |

GET and DELETE requests typically don't require a `Content-Type` header.

## Response format

All responses are JSON objects. The resource key varies by endpoint (`properties`, `files`, `records`, etc.).

## Errors

Most responses include an `errors` array. When validation or processing issues occur, each error object contains:

| Field     | Description                                      |
| --------- | ------------------------------------------------ |
| `message` | Human-readable description of the issue          |
| `field`   | The request field that caused the error (if any) |

```json theme={null}
{
  "errors": [{ "message": "Invalid UUID format", "field": "id" }]
}
```

Error responses return appropriate HTTP status codes (`400` for validation errors, `401` for authentication errors, `409` for conflicts).

## Pagination

List endpoints return 25 results per page. Use the `page` query parameter to
navigate:

```bash theme={null}
GET /api/v1/properties?page=2
```

Sample response:

```json theme={null}
{
  "errors": [],
  "properties": [...],
  "pageInfo": {
    "page": 2,
    "pageSize": 25,
    "totalCount": 250,
    "totalPages": 10
  }
}
```

The resource key varies by endpoint (`properties`, `files`, `records`, etc.).

## Rate limits

The API currently does not enforce rate limits, but please be a good steward
of our resources.
