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

# API Overview

> The Culper REST API — pull your campaign's data into your own tools.

The Culper API is a **read-only, campaign-scoped REST API**. Every request is authenticated with
a campaign API key and can only ever read that campaign's data.

<Note>
  **Beta.** The **Walks** endpoints are live. **Lists**, **Outdoor (signs)**, and **SMS reporting**
  are documented here but not yet active — they'll switch on as they ship.
</Note>

## Base URL

```
https://theculpernetwork.com/api/v1
```

## Response shape

Every response is one of two envelopes:

<CodeGroup>
  ```json Success theme={null}
  { "ok": true, "data": { /* … */ }, "meta": { /* optional */ } }
  ```

  ```json Error theme={null}
  { "ok": false, "error": { "code": "not_found", "message": "Walk not found." } }
  ```
</CodeGroup>

## Error codes

| HTTP | `error.code`   | Meaning                                               |
| ---- | -------------- | ----------------------------------------------------- |
| 400  | `bad_request`  | Malformed input (e.g. an invalid id).                 |
| 401  | `unauthorized` | Missing or invalid API key.                           |
| 403  | `forbidden`    | The key lacks the required scope.                     |
| 404  | `not_found`    | Resource doesn't exist **or** isn't in your campaign. |
| 429  | `rate_limited` | Too many requests.                                    |
| 500  | `server_error` | Something went wrong on our end.                      |

## Conventions

* **Read-only.** Every endpoint is `GET`. The API never writes.
* **Campaign-scoped.** The campaign is inferred from your API key — you never pass a campaign id.
* **Pagination.** List endpoints accept `?limit` (default `50`, max `200`).
* **HTTPS only.** Requests over plain HTTP are rejected.
* **Versioned.** The current version is `v1` (in the path). Breaking changes ship as a new version.

<Card title="Authentication" icon="key" href="/api-reference/authentication">
  How to create and use your API key.
</Card>
