> 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 Cursor

> Configure BeatAPI as a custom model provider for supported Cursor chat requests, with clear limits for Cursor Tab.

# Using BeatAPI in Cursor

Cursor is an AI code editor. Its model settings accept an OpenAI-compatible endpoint, so BeatAPI can be supplied as a custom provider without any extension.

## Prerequisites

1. **Cursor installed.**
2. **A BeatAPI API key** — create one in [Dashboard → API Keys](https://beatapi.io/dashboard/apikeys).

## Step 1: Open model settings

Open Settings — the gear icon at the top right, or `Cmd+Shift+J` on macOS, `Ctrl+Shift+J` on Windows and Linux — then choose **Models** in the sidebar.

## Step 2: Point it at BeatAPI

Find the **OpenAI API Key** section and enable **Override OpenAI Base URL**, then enter:

| Setting  | Value                       |
| -------- | --------------------------- |
| API Key  | Your BeatAPI API key        |
| Base URL | `https://api.beatapi.io/v1` |

Save the settings, then send a small supported chat request and check the matching record in BeatAPI usage.

> **Note**
>
> Use `https://api.beatapi.io/v1` as shown above. An extra endpoint path can send requests to the wrong URL; inspect the request and BeatAPI usage if the test fails.

> **Note**
>
> Cursor's OpenAI base-URL override can also affect its built-in models. Turn it off when returning to Cursor-managed models. See [Cursor's staff explanation](https://forum.cursor.com/t/include-openrouter-support-within-api-keys-supported-services/5347/10) and check the latest behavior before using both routes in one workflow.

## Step 3: Add the models you want

Cursor keeps its own model list, and an entry in that list does not prove the model works with a custom key. Cursor's [bring your own API key guide](https://prod.cursor.com/help/models-and-usage/api-keys) limits OpenAI custom keys to supported, standard non-reasoning chat models. Check which models Cursor currently allows, choose an exact ID available to your BeatAPI account through `GET /v1/models`, and send a small chat request before relying on the integration. Do not assume that a Claude model or a reasoning model will work through Cursor's OpenAI key override just because BeatAPI exposes an OpenAI-compatible endpoint.

Custom keys apply to supported chat requests; Cursor Tab completion continues to use Cursor's built-in model. A successful custom model setup does not mean every Cursor feature uses BeatAPI. Verify the actual request in your BeatAPI usage.

## Step 4: Use it

* **Chat** — `Cmd+L` / `Ctrl+L`, then ask a question or describe a task.
* **Inline edit** — select code and press `Cmd+K` / `Ctrl+K`; check whether the selected model and current Cursor version route this request through your custom key.
* **Tab completion** — continues to use Cursor's built-in model, not the BeatAPI custom provider.

Reference files with `@filename` and directories with `@folder` so the model sees the right context instead of guessing from the open buffer.

## FAQ

### Cursor cannot reach BeatAPI

1. Base URL must be exactly `https://api.beatapi.io/v1`.
2. The key must be active — check [Dashboard → API Keys](https://beatapi.io/dashboard/apikeys).
3. Behind a corporate proxy, allow `api.beatapi.io`.

### A model in the list does not work

Cursor's list is its own. Only the IDs the account actually serves will answer; see the [pricing page](https://beatapi.io/pricing) for the current catalogue.

### 402 insufficient_credits

Insufficient balance: the balance is zero or below the price of the request. Top up from the dashboard.

### 429 rate_limit_exceeded

The key exceeded its request rate. Check the BeatAPI usage for this key and select a supported model or adjust the key's allowance in the dashboard. Cursor Tab completion does not use this custom provider.

### Responses are slow

For supported chat requests, try a lighter model, keep selections tight, and prefer `@file` references over pasting large blocks.

Cursor's current [bring your own API key guide](https://prod.cursor.com/help/models-and-usage/api-keys) describes which requests can use a custom key. Check it again if Cursor changes its model routing.

## Support

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