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

# Introduction

> Move, share, and manage files across every location connected to Byteport — over a single HTTP API.

The Byteport API is a thin HTTP layer over your connected storage providers. Every endpoint speaks JSON, accepts the same path syntax as the dashboard, and returns predictable responses you can wire straight into a pipeline.

## Base URL

All requests are made against a single host.

```http theme={null}
https://api.byteport.com
```

## Authentication

Every request must include an `Authorization` header carrying a bearer token. Replace `bp_xxxxxxxxx` with the API key issued from your workspace settings.

```http theme={null}
Authorization: Bearer bp_xxxxxxxxx
```

<Note>
  Treat your API key like a password. Rotate it from the dashboard immediately if you suspect it has been exposed.
</Note>

## User-Agent

All API requests must include a `User-Agent` header. Requests without this header are rejected with a `403`. Most HTTP clients, every Byteport SDK, and the CLI set it automatically — if you are making raw HTTP requests, set it yourself:

```http theme={null}
User-Agent: my-app/1.0
```

## Response codes

Byteport follows standard HTTP semantics. A successful request returns `2xx`; client errors return `4xx` with a JSON body describing what went wrong.

| Code  | Meaning                                                       |
| ----- | ------------------------------------------------------------- |
| `200` | Request completed successfully.                               |
| `201` | Resource created successfully.                                |
| `202` | Request accepted; the operation is running asynchronously.    |
| `204` | Request succeeded; no response body.                          |
| `400` | The request body or query parameters were invalid.            |
| `401` | Missing or invalid API key.                                   |
| `403` | The `User-Agent` header is missing, or the key lacks access.  |
| `404` | The location or file referenced in the request was not found. |
| `429` | Rate limit exceeded — back off and retry.                     |
| `5xx` | Byteport encountered an internal error.                       |

Error responses share a consistent shape:

```json theme={null}
{
  "error": 400,
  "message": "Source location matched more than one path."
}
```

## Rate limits

Rate limits are applied per API key. When you exceed the limit, Byteport returns `429 Too Many Requests` and a `Retry-After` header indicating when to try again. Long-running operations (Transfers, Preview) count as a single request regardless of how many files they touch.

<Card title="Need higher limits?" icon="gauge-high" href="mailto:support@byteport.io">
  Reach out and we'll raise your quota.
</Card>
