OneProvider
Clients and SDKs

Factory

Add OneProvider to Factory Droid as a custom Anthropic-compatible model in ~/.factory/settings.json and assign it to your droids. Config example inside.

Factory Droid is a coding-agent CLI. Add OneProvider as a custom Anthropic-compatible model in ~/.factory/settings.json.

All models, capabilities, and prices Documentation index for AI agents: https://oneprovider.dev/docs/llms.txt Before you start: a key from your cabinet Open your cabinet: the Telegram bot @oneprovider_robot (Account) or app.oneprovider.dev . Press “Issue a key”, give it a name (for example, this client) and a spend limit, and copy the key. You top up the balance in the same place. More about the cabinet and keys .

Configure

Factory Droid reads bring-your-own-key models from ~/.factory/settings.json — there is no web UI for providers. Add a model to the customModels array; keep baseUrl without /v1, because the anthropic provider appends /v1/messages itself.

json
{
"customModels": [
{
"model": "claude-sonnet-5-5",
"displayName": "OneProvider claude-sonnet-5-5",
"baseUrl": "https://api.oneprovider.dev",
"apiKey": "sk-your-key-here",
"provider": "anthropic",
"maxOutputTokens": 8192
}
]
}

Add more entries with a different model for other Claude models. Then run /model in droid and pick the model under Custom models.

Assign models to droids

Every Factory droid has a default model. Use claude-sonnet-5-5 as the practical default or claude-opus-5-5 for architecture-heavy work.

Token accounting Factory’s built-in usage dashboard reconciles with the same per-request usage the API returns. If numbers drift, check that the provider is tagged as the same OneProvider key across all droids.

Which model to choose

Add one customModels entry per model. claude-sonnet-5-5 is the practical default for droids; use claude-opus-5-5 for architecture-heavy work and claude-haiku-5-5 for fast, cheap droids. Keep provider as "anthropic". Ids are on the models page , rates on the pricing page .

Common errors and fixes

404

baseUrl must be https://api.oneprovider.dev without /v1: the anthropic provider appends /v1/messages itself.

401

The key in the entry is truncated or has a stray quote. Paste the whole key.

The model is missing in /model

Save ~/.factory/settings.json (valid JSON, no smart quotes) and reopen droid; custom entries appear under Custom models.

429 “Insufficient balance”

Balance or key limit is used up. Top up the cabinet.

FAQ

Is there a web UI for providers?

No. Bring-your-own-key models are configured only in ~/.factory/settings.json.

Can I add several models?

Yes, add one object per model to the array; the same key works for all.

Where do I see cost?

In the dashboard Usage page for the key.

Quick answers

Which base URL do I use?

Claude Code and Anthropic SDKs use https://api.oneprovider.dev. OpenAI SDKs and OpenAI-compatible clients use https://api.oneprovider.dev/v1. One key works behind both; the model list is on the models page ; rates are on the pricing page .

How do I authenticate?

Send the raw sk-… key in x-api-key or Authorization: Bearer: one of them, never both. Keep the key in an environment variable, not in a file that gets committed. More on authentication .

Where do I get a key?

Open your cabinet in the Telegram bot @oneprovider_robot or at app.oneprovider.dev, top up the balance and press “Issue a key”. Each key can carry its own spend limit. Cabinet & API keys .

What do 401, 404 and 429 mean?

401: the key is missing, mistyped or sent in the wrong header; paste the whole key without quotes or spaces. 404: usually a wrong base URL, for example a missing or doubled /v1. 429 with “Insufficient balance”: the cabinet balance or the key’s spend limit is used up, so top up instead of retrying; any other 429 is a rate limit, so wait for Retry-After. Details: error codes and troubleshooting .

Why do streams cut off or reset?

VPN and VLESS proxies often buffer SSE or break HTTP/2 negotiation. OneProvider has no regional restrictions and does not buffer streams, so turn the proxy off and retry.

Where do I ask if this is not enough?

Message @Oneproviderhelpbot on Telegram or open “Support” in the web cabinet, with the HTTP status code and the exact error message. How support works .

Last updated: 2026-10-05 Found a bug? @Oneproviderhelpbot