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

# API Overview

> Base URL, authentication, and error shapes for the remote rollout API

The launch functionality available through the Web UI and CLI is largely available through an API.

The base URL for all endpoints is:

```text theme={"system"}
https://ofhuhcpkvzjlejydnvyd.supabase.co/functions/v1
```

## Authentication

Every request needs a Harbor API key sent as a bearer token. See
[Harbor Hub API Key](/core-concepts/hosted-harbor/api-key) for how to create one.

```http theme={"system"}
Authorization: Bearer sk-harbor-...
Content-Type: application/json
```

## Errors

All errors share one shape:

```json theme={"system"}
{
  "error": {
    "code": "validation_failed",
    "message": "config must contain at least one agent"
  }
}
```

| Code                              | Status | Meaning                                                                      |
| --------------------------------- | ------ | ---------------------------------------------------------------------------- |
| `bad_request`                     | 400    | Malformed request, or a missing/oversized `Idempotency-Key`                  |
| `validation_failed`               | 400    | The body parsed but broke a schema or server-side rule                       |
| `unauthorized`                    | 401    | Missing or invalid API key                                                   |
| `forbidden`                       | 403    | Not approved for remote rollouts, or not a member of the chosen organization |
| `not_found`                       | 404    | The job does not exist or is not visible to you                              |
| `method_not_allowed`              | 405    | HTTP method not supported on that path                                       |
| `replacement_required`            | 409    | A credential with this identity already exists; confirm the replacement      |
| `replacement_stale`               | 409    | The credential changed while you were confirming; re-read and retry          |
| `quota_exceeded`                  | 429    | You are over your hosted quota                                               |
| `server_error`                    | 500    | Internal failure                                                             |
| `agent_version_resolution_failed` | 503    | Could not resolve the latest agent version; retry                            |
