Bring Your Own Key (BYOK)

Updated: today · 4 min read

Store your organization's own API keys for model providers on the Model providers page in Settings. Localization requests for that provider's models then go straight to the provider on your key, and the provider bills you for them. Available on the Enterprise plan.

Supported providers: Anthropic, OpenAI, Google, and Mistral AI.

Which requests use your key#

Only localization runs on your key. Everything else stays on Lingo.dev's key.

RequestKey
Localization: the localize API, localization jobs, the Playground, and every localization step an engine runsYour key, if you have one for that model's provider
Quality gateLingo.dev's key
AI reviewersLingo.dev's key
Engine suggestionsLingo.dev's key

Billing#

When a request runs on your key, the provider bills you for those tokens.

Who can manage keys#

Two gates control the Model providers page:

  1. Entitlement: the BYOK feature must be enabled for the organization (Enterprise plan). The page always appears in Settings. Without the entitlement, it says "Your own provider keys are not on your plan", and you can't save a key.
  2. Permission: adding, replacing, switching on or off, and removing a key need the Manage settings (org:manage_settings) permission in the member's role. Without RBAC, every member is an Owner and has it.

Every member can see which providers have a key and whether it is in use. Keys can't be changed with an organization API key. Sign in as a person instead.

Adding a key#

  1. Open Settings → Model providers.
  2. Click Add key next to the provider.
  3. Paste the API key and save.

Lingo.dev checks the key with the provider when you save it. If the provider does not accept it, the key isn't saved. Check it in your provider account and paste it again.

Key visibility

A saved key is never shown again. The page only shows the last four characters and when the key was updated. To change it, use Replace and paste a new key.

Using a provider's models#

Your key is used when an engine calls a model from that provider. To run a provider's model on your key, set that model in the engine's model config.

SituationWhat happens
You have a key for the model's provider, and it is onThe request runs on your key
No key for that providerThe request runs on Lingo.dev's key and your credits, as before
The key is offThe request runs on Lingo.dev's key and your credits
The provider refuses the model on your keyThe request is retried on Lingo.dev's key and your credits

A missing key or a key that is off never stops your localization. If the provider refuses the model only after it has started answering, the request can fail instead. To avoid that, give your key access to the model, or choose another model.

When your key is refused#

These failures stop the request. It does not move to Lingo.dev's key, and it does not move to the next model in the engine's model config. The error names the provider and what to fix.

SituationWhat to do
The provider rate limits your keyRetry in a few minutes, or raise the key's rate limits with the provider
Your provider account is out of credits or quotaAdd credits or raise the quota with the provider, then retry
The provider rejects your key, for example because it was revokedReplace the key on Settings → Model providers, then retry
Lingo.dev can't read the stored keySave the key again on Settings → Model providers, then retry

These are your own limits and your own account, so moving the traffic to Lingo.dev's key would hide the problem from you.

Turning a key off#

Switch the key off to stop using it without deleting it. The page shows Off, and that provider's models run on Lingo.dev's key and your credits until you switch the key back on.

If your plan no longer includes your own keys, a stored key shows Stored, not in use. That provider's models run on Lingo.dev's key and your credits. The stored key is kept until you remove it.

Removing a key#

Click Remove key. The key is deleted from Lingo.dev, and that provider's models go back to Lingo.dev's key and your credits.

Revoke it at the provider

Removing a key from Lingo.dev does not revoke it. The key stays valid at the provider until you revoke it there.

Next Steps#