> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.beatapi.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.beatapi.io/_mcp/server.

# Using BeatAPI in ChatBox

> Configure ChatBox against BeatAPI through its OpenAI, Claude, or Gemini provider type.

# Using BeatAPI in ChatBox

ChatBox is a cross-platform desktop chat client. BeatAPI serves the OpenAI, Anthropic, and Gemini request formats, so ChatBox works through whichever of its three provider types matches the model you want.

## Prerequisites

1. **ChatBox installed** — Windows, macOS, Linux, or the web build.
2. **A BeatAPI API key** — create one in [Dashboard → API Keys](https://beatapi.io/dashboard/apikeys).

## Step 1: Open the configuration

On first launch a setup wizard appears — click **Use your own API Key or local model**.

If ChatBox is already configured, open settings with the gear icon at the bottom left, or `Ctrl+,` (`Cmd+,` on macOS).

## Step 2: Choose a provider type and fill in the host

The API Host differs per provider type, because each client appends a different path. Getting this wrong is the most common failure.

| Provider type | API Host                    | Use it for                                             |
| ------------- | --------------------------- | ------------------------------------------------------ |
| OpenAI API    | `https://api.beatapi.io`    | GPT, DeepSeek, GLM, Kimi, MiniMax, Qwen, MiMo, Hunyuan |
| Claude API    | `https://api.beatapi.io/v1` | The Claude models                                      |
| Gemini API    | `https://api.beatapi.io/`   | The Gemini models                                      |

The API Key is the same BeatAPI key in all three cases.

> **Note**
>
> Every model on the account answers on every format, so the provider type is a matter of which shape ChatBox sends, not of which models you can reach. The three hosts differ only because the OpenAI type appends `/v1/chat/completions`, the Claude type appends `/messages`, and the Gemini type appends `v1beta/models/...`. Each combination above resolves to a real BeatAPI endpoint.

## Step 3: Pick a model

Select the model from the dropdown, or type its ID if the list has not refreshed.

| Model ID                    | Provider type | Choose it for                          |
| --------------------------- | ------------- | -------------------------------------- |
| `gpt-6-astra`               | OpenAI API    | The newest OpenAI generation           |
| `gpt-5.6-terra`             | OpenAI API    | Balanced everyday chat                 |
| `claude-fable-5-1`          | Claude API    | The newest Claude generation           |
| `claude-haiku-4-5-20251001` | Claude API    | Fast and inexpensive                   |
| `gemini-3.7-flash`          | Gemini API    | Fast, multimodal                       |
| `deepseek-v4-pro-0813`      | OpenAI API    | Strong reasoning at a low rate         |
| `glm-5.3-flash`             | OpenAI API    | The cheapest tier for high-volume chat |

The full catalogue is on the [Text API](/text-api) pages and the [pricing page](https://beatapi.io/pricing).

### Optional parameters

| Parameter   | Effect            | Suggested                     |
| ----------- | ----------------- | ----------------------------- |
| Temperature | Output randomness | `0.7` creative, `0.3` precise |
| Max Tokens  | Output length cap | 2000–4000                     |
| Top P       | Nucleus sampling  | `0.9`                         |

Setting Max Tokens is the simplest cost control there is: output is the expensive half of most conversations.

## FAQ

### ChatBox cannot connect

1. Re-check the API Host against the table above — the `/v1` differs per provider type.
2. Confirm the key is active in [Dashboard → API Keys](https://beatapi.io/dashboard/apikeys).

### BeatAPI models do not appear in the list

Type the model ID directly into the model field. IDs are case-sensitive and are listed on the [pricing page](https://beatapi.io/pricing).

### Errors during a conversation

| Status        | Meaning                                                                                            | What to do                                                                         |
| ------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `401`         | `missing_api_key` or `invalid_api_key`: the key is missing, wrong, expired, disabled, or exhausted | Re-copy the key from the dashboard                                                 |
| `402`         | `insufficient_credits`: the balance is zero or below the price                                     | Top up                                                                             |
| `404`         | Wrong model ID, or the host does not match the provider type                                       | Check both against the tables above                                                |
| `429`         | Request rate exceeded                                                                              | Wait; the allowance rises with lifetime top-ups                                    |
| `500` / `503` | Temporary problem on our side (`internal_error`, `processing_*`)                                   | Retry with backoff, keeping the `request_id`. See [Errors](/errors#text-endpoints) |

### Checking usage and spend

The dashboard shows calls, tokens, and cost per API key; the same figures come from [`GET /v1/usage`](/quick-guide).

## Support

Open a support ticket from the [dashboard](https://beatapi.io/dashboard) and include the `request_id` from the failing response.