You've configured a "Bring Your Own Key" (BYOK) integration for a provider like Google AI Studio, Anthropic, or OpenAI to use your own credits, but you're seeing unexpected charges on your OpenRouter account. There are two common reasons: OpenRouter's automatic provider fallback, or the BYOK platform fee that applies once you pass a monthly request allowance. Here's how each works, and how to tell which one you're hitting.
The Main Reason: Provider Fallback
Even when you intend to use your own key, OpenRouter's primary goal is to ensure your API requests succeed. If your key fails for any reason, OpenRouter will automatically try to complete the request using a different provider that supports the same model.
Here is the typical flow:
- You send a request to a model, for example,
anthropic/claude-sonnet-4.5. - The router first attempts to use your integrated BYOK key for that provider (e.g., your own Anthropic key).
- If your key fails (e.g., your key is rate-limited, has insufficient funds, or the provider has a temporary issue), the router will fallback and try another provider that also offers
claude-sonnet-4.5(e.g., Amazon Bedrock or Google Vertex). - This fallback request is fulfilled using your OpenRouter credits, resulting in a charge to your account.
What Does "Always use for this provider" Do?
The Always use for this provider toggle in the BYOK integration settings is often a source of confusion.
- What it does: It ensures that for a specific provider (e.g., Anthropic), OpenRouter will only use your key. It will not fall back to using OpenRouter's own key for that same provider.
- What it does NOT do: It does not prevent OpenRouter from falling back to a different provider if your key fails.
For example, if your Anthropic key fails, OpenRouter will not try to use its own Anthropic key. However, it may still try to fulfill the request using Google Vertex, which would use your OpenRouter credits.
How to Truly Prevent Fallbacks and Charges
If you want to ensure a request only uses your BYOK key and never falls back to another provider using OpenRouter credits, you must enforce this at the API request level.
Add the provider object to your API call and use the only parameter to specify your intended provider.
{
"model":"anthropic/claude-sonnet-4.5",
"messages":[
{
"role":"user",
"content":"Hello"
}
],
"provider":{
"only":[
"anthropic"
]
}
}By setting "only": ["anthropic"], you are telling OpenRouter: "Do not fall back to any other provider. If Anthropic fails, let the entire request fail." This is the most effective way to prevent unexpected charges to your OpenRouter balance when using BYOK.
The Other Reason: The BYOK Platform Fee
BYOK isn't always free. OpenRouter charges a 5% platform fee on the provider's cost for requests you make with your own key — but only after you pass a monthly allowance. The first 1,000,000 BYOK requests each calendar month are free of this fee. Once you go over, the 5% fee applies to each additional BYOK request for the rest of that month, and the counter resets at the start of the next month (UTC).
So if you're a lower-volume user seeing charges, this fee usually isn't the cause — you'd need to be over a million BYOK requests in the same month. The fee, when it applies, is billed from your OpenRouter credit balance, separate from what your own provider key is charged.
How to Tell Which One You're Hitting
Open your Activity page and look at the requests with unexpected charges:
- If the provider shown isn't the one your key is for (for example, your key is Anthropic but the request was served by Google Vertex), that's a fallback — use
provider.onlyas shown above to prevent it. - If the provider matches your key and you're doing very high volume, the charge is likely the 5% BYOK platform fee on requests past the monthly free allowance.