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

# REST API

> Trigger Capwrapper builds and deployments programmatically. Full reference for authentication, endpoints, rate limits, and error codes.

The Capwrapper REST API lets you trigger builds and deployments programmatically — without touching the dashboard. Use it to integrate app packaging into your CI/CD pipeline, automate releases on every merge, or build internal tooling on top of the same infrastructure that powers the dashboard.

All API requests go to:

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

## Authentication

Every request requires your API key passed as a Bearer token in the `Authorization` header.

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

You can find your API keys in the Capwrapper dashboard under **Settings > API Keys**. Generate a new key there if you don't have one yet.

<Warning>
  Treat your API key like a password. Do not commit it to version control or expose it in client-side code.
</Warning>

## Request and response format

All request bodies must be JSON. All responses are JSON. Set the `Content-Type` header on every request that sends a body.

```
Content-Type: application/json
```

## Available endpoints

| Method | Path                 | Description                              |
| ------ | -------------------- | ---------------------------------------- |
| `POST` | `/api/v1/builds`     | Create a new build job                   |
| `GET`  | `/api/v1/builds/:id` | Get build status and details             |
| `GET`  | `/api/v1/builds`     | List all your builds                     |
| `POST` | `/api/v1/deploys`    | Deploy a completed build to an app store |

See the [Builds API](/api/builds) and [Deploys API](/api/deploys) pages for full parameter and response documentation.

## Example authenticated request

```bash theme={null}
curl -X GET https://api.capwrapper.com/v1/builds \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

## Rate limiting

The API enforces rate limits per API key. If you exceed your limit, you will receive a `429 Too Many Requests` response. Check your current limits and usage in the **Settings > API Keys** section of the dashboard.

## Error responses

The API uses standard HTTP status codes to indicate success or failure.

| Code  | Meaning                                                 |
| ----- | ------------------------------------------------------- |
| `400` | Bad request — missing or invalid parameters             |
| `401` | Unauthorized — missing or invalid API key               |
| `404` | Not found — the requested resource does not exist       |
| `429` | Rate limited — you have exceeded your request quota     |
| `500` | Server error — something went wrong on Capwrapper's end |

Error responses include a JSON body with a `message` field describing the problem:

```json theme={null}
{
  "error": "unauthorized",
  "message": "Invalid or missing API key."
}
```
