> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.truvo.com/llms.txt.

# API reference

The Truvo API uses JSON request and response bodies, standard HTTP status codes, and bearer-key authentication. If you're new to it, start with the [Quickstart](/guides/quickstart).

> **Note**
>
> The reference pages don't have descriptions or examples yet. The [Quickstart](/guides/quickstart) shows a complete request.

## Base URL

```text
https://api.truvo.com/v1/
```

The sandbox and live use the same base URL. Your key picks the environment.

## Authentication

Send your key in the `Authorization` header as a bearer token. Sandbox keys start with `trv_sandbox_`, and live keys start with `trv_live_`. See [Keys and environments](/guides/authentication).

## Request keys

Starting a quote request, creating a webhook subscription, rotating its secret, sending a test event, replaying a delivery, and the three sandbox commands require an `Idempotency-Key` header, so you can retry them without starting a second request. A key replays for at least 24 hours. Reads don't take a key. See [Retry safely with request keys](/guides/request-keys).

## Asynchronous quote requests

Starting a quote request returns `202` right away. Read the quote request until its status is final, and use `Prefer: wait=N` (0 to 20 seconds) to hold each read open. See [Get quote results](/guides/polling).

## Errors

Every error uses one envelope with a code, a message, the fields at fault, and a retry action. See [Errors](/guides/errors).