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

# Introduction

> Programmatic access to your recording channels.

The Capture API lets your own systems do with channels what you do with them in UP.Capture: give a channel its recording settings, run it, and follow its recordings. Every operation acts in a space, and its page says which permission your API key needs there; **Check access** tells you what a key may do before you try.

## Engine version

The engine is the part of Capture that reads a channel's live source and writes its recordings, and its version decides which recording settings and channel settings a channel can have. Those settings are free-form fields whose shape follows the engine version; [Engine Version](/capture/capture-api/engine-version) explains this and documents the schemas of each version.

## How errors come back

Every failure is a *problem document* (RFC 9457), sent as `application/problem+json`:

```json theme={null}
{
  "type": "https://api.up.telestream.com/capture/problems/channel-not-activatable",
  "title": "failed precondition",
  "status": 409,
  "detail": "channel must be in the 'inactive' state to be activated",
  "instance": "/capture/v1/2b6d3a1e-8c4f-4b7a-9e1d-5f0c7a3b9d21/channels/3f1c0b7a-6d5e-4c8b-9a2f-1e0d7c6b5a49/activate",
  "trace_id": "53eef580003859fb859feb990cf79075"
}
```

Branch on `type`, not on `title`: a type URI never changes meaning and always comes with the same status, while the title is there for people to read. When a request is refused because of its content, `detail` says what was wrong, in words meant for a person rather than a program. A `503` means something the request depends on is temporarily unavailable; it carries a `Retry-After` header saying how many seconds to wait.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.