# API overview

live-layer's REST API lets you read and write agent / conversation data programmatically.

> [!WARNING]
> v1 API is read-mostly: list/read agents, list/read conversations, fetch transcripts. Mutating endpoints (creating agents, publishing) are coming. The dashboard remains the primary authoring surface for now.

## Base URL

```
https://api.livelayer.app/v1
```

## Authentication

All requests require an API key in the `Authorization` header.

```http title="auth-header.http"
Authorization: Bearer ll_live_abc123...
```

Generate keys in **Dashboard → Settings → API Keys**. Keys scope to your organization. Treat them like passwords — rotate if exposed.

## Conventions

- All requests are HTTPS.
- All response bodies are JSON.
- Timestamps are ISO 8601 strings.
- IDs are prefixed by entity type (`agt_`, `conv_`, `vis_`).
- Errors return a JSON body: `{ "error": { "code": "...", "message": "..." } }`.
- Pagination uses cursor-based `?cursor=...&limit=...`; responses include `has_more` and `next_cursor`.

## Endpoints (v1)

### `GET /agents`

List agents in your organization.

### `GET /agents/{id}`

Read a single agent.

### `GET /conversations`

List conversations across all agents.

### `GET /conversations/{id}`

Read a conversation including transcript.

### `GET /visitors`

List visitors who have interacted with your agents.

## Rate limits

- 100 requests / minute per API key.
- 429 responses include `Retry-After` in seconds.

## Read next

- [Webhook events](/docs/reference/webhook-events) — push notifications instead of polling.
