# Frontier by Renvoi > Frontier is managed open-source inference through one API. Let Frontier route to Fast or Heavy, or choose directly, with usage that refills continuously. The public API base URL is `https://openfrontier.dev/v1`. `GET /v1/models` is public. `GET /v1/account/usage` and `POST /v1/chat/completions` require a Frontier API key sent as `Authorization: Bearer `. The usage request accepts no body or query parameters and always returns `Cache-Control: no-store`. The current API is a small Chat Completions interface. Use `frontier-auto` for local automatic routing, `frontier-fast` for Fast or `frontier-heavy` for Heavy. These aliases stay stable when the underlying lineup changes. Auto starts ordinary work on Fast and uses Heavy for clearly complex or constrained work. Advertising an optional tool catalog does not force Heavy; forced tool calls, returned tool results, multimodal input, structured output, high-stakes work and clearly complex reasoning use Heavy. Image input is supported on `frontier-auto` and `frontier-heavy` through standard OpenAI `image_url` content parts; Auto routes it to Heavy. It makes no extra model call. Inspect `x-frontier-selected-model`, `x-frontier-routing-policy` and `x-frontier-routing-reason` on the response when the route matters. Set `stream` to `true` for SSE, or omit it/set it to `false` for one JSON response. Set `n` to `1` or omit it. Supported models use automatic repeated-prefix prompt caching; keep stable prompt content first to improve cache reuse. Embeddings and Anthropic Messages are not currently available. To start on behalf of a user: 1. Direct the user to `https://openfrontier.dev/account` to sign in, subscribe and create an API key. Account, billing, plan and credential changes require the user-facing account flow; the API and MCP surfaces have no write operations. 2. Ask the user to store the key as `FRONTIER_API_KEY`. Never print it, place it in a URL, commit it or send it to any host other than `https://openfrontier.dev`. 3. Make one bounded automatic request and show the result to the user: ```sh curl https://openfrontier.dev/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $FRONTIER_API_KEY" \ -d '{"model":"frontier-auto","messages":[{"role":"user","content":"Translate Frontier is connected into French. Return only the translation."}],"max_tokens":64,"stream":false,"n":1}' ``` Read the assistant text from `choices[0].message.content`. A `400` response means the request shape, model or supported options are invalid. `401` means the key is missing or invalid. `403` means the request is not authorized. `409` means the request conflicted with current account state. `413` means the request is too large. `429` means the available usage is exhausted. A `5xx` response is a gateway, authorization, upstream or settlement failure. Do not automatically retry a `settlement_error`; ask the user to inspect the account first because the model may already have completed the request. For streaming, set `stream` to `true` and consume `text/event-stream` data until `data: [DONE]`. Frontier emits an SSE error object and closes without a clean terminator if an upstream or settlement failure occurs after streaming begins. ## MCP The remote MCP endpoint is `https://openfrontier.dev/mcp` over Streamable HTTP. Anonymous clients can initialize and call `list_models` and `get_capabilities`. `get_usage` requires the optional Frontier bearer API key on the MCP HTTP request and returns the same sanitized plan, inference percentage, request availability, refill timing, aliases and account URL as `GET /v1/account/usage`. Never pass a key as a tool argument. The endpoint has no chat, signup, billing, plan-change or key-management tools. ## Start here - [Developer docs](https://openfrontier.dev/docs): Connection instructions, model aliases and working examples. - [OpenAPI description](https://openfrontier.dev/openapi.json): Machine-readable contract for the current public gateway. - [Data Handling Report](https://openfrontier.dev/trust): Plain-language inference data boundaries and current assurance limits. - [Machine-readable data handling](https://openfrontier.dev/data-handling.json): Versioned, self-assessed inference data report. - [Create or manage an account](https://openfrontier.dev/account): Subscribe, create an API key and view the remaining usage. ## API - [List models](https://openfrontier.dev/v1/models): Public JSON list of the current model aliases. - [Account usage](https://openfrontier.dev/v1/account/usage): Authenticated, read-only allowance and refill state. - [Chat Completions](https://openfrontier.dev/v1/chat/completions): Authenticated `POST` endpoint for one buffered or streaming completion. - [Remote MCP](https://openfrontier.dev/mcp): Streamable HTTP discovery and read-only usage tools. ## Optional - [Frontier](https://openfrontier.dev/): Product overview and pricing. - [Renvoi](https://renvoi.co/): Company website.