---
title: "Quickstart | Recovea"
description: "Point your SDK at api.recovea.ai. OpenAI-compatible and Anthropic-native on the same host."
canonical: "https://recovea.ai/docs/quickstart/"
source: "https://recovea.ai/docs/quickstart/"
---

Docs

# Swap one base URL.

Recovea speaks the OpenAI and Anthropic wire protocols. Your SDK, your models, and your request shape do not change.

## Before you start

- A Recovea workspace. [Start free](https://platform.recovea.ai/signup), then mint a key.
- Your own provider key, added once in the console. Your provider keys stay yours: sealed, bound to your workspace, never written to a log.

## OpenAI

Keep your provider account and your model names. Send the Recovea key as the SDK’s API key; the provider key stays in your workspace.

Python

```
from openai import OpenAI

client = OpenAI(
    api_key=RECOVEA_KEY,
    base_url="https://api.recovea.ai/v1",   # the only change
)
```

TypeScript

```
import OpenAI from "openai"

const client = new OpenAI({
  apiKey: RECOVEA_KEY,
  baseURL: "https://api.recovea.ai/v1",  // the only change
})
```

## Anthropic

Python

```
from anthropic import Anthropic

client = Anthropic(
    api_key=RECOVEA_KEY,
    base_url="https://api.recovea.ai",   # the only change
)
```

## Any OpenAI-compatible endpoint

Declare a destination in the console, connect its key, arm it.

Python

```
client = OpenAI(
    api_key=RECOVEA_KEY,
    base_url="https://api.recovea.ai/upstream/v1",
)
```

Metered and capped like the rest. The receipt carries the cost your destination reported, or none where it reports none.

## What happens next

The first call is metered as it returns: cost, tokens, model and route land on the console, and a receipt is written into the hash-chained ledger. Designed to fail open: if the gateway degrades, traffic goes straight to your provider. The only stop is a cap you armed.

When you are ready to stop spend rather than watch it, arm a cap and read [the refusal contract](https://recovea.ai/docs/products/cap/).
