Skip to main content

Overview

OpenRouter’s Bring Your Own Key (BYOK) lets you route OpenRouter requests for io.net models through your own io.net account. You keep OpenRouter’s unified API, SDKs, and routing, while inference is served and billed by io.net against your io.net credits — at io.net’s direct rates instead of a resale markup.

Why use it

  • Pay io.net’s rate on your own io.net balance — your account, your rate limits and quotas.
  • Low OpenRouter fee — BYOK is 0% for your first 1,000,000 requests each month (5% thereafter), charged to your OpenRouter credits.
  • No code changes — keep the OpenRouter SDKs and tooling you already use.
  • Pin io.net for the latency or throughput you want, with fallback control.

How it works

Prerequisites

1

An io.net account with an API key and credits

Create an API key in your io.net account and make sure the account has a positive credit balance — this is what pays for inference. See API Keys and Secrets and IO Intelligence Payments.
2

An OpenRouter account with credits

OpenRouter still needs a small credit balance to cover its BYOK fee. Add credits at openrouter.ai/settings/credits.

Set it up

1

Copy your io.net API key

From your io.net account, create or copy an API key. Keep it handy for the next step.
2

Register the key in OpenRouter

Open OpenRouter’s BYOK settings for io.net at openrouter.ai/settings/integrations and select io.net.
  • Click Add key and paste your io.net API key.
  • Place it in the Prioritized section so OpenRouter uses it first.
  • Make sure the key’s toggle is enabled.
Enable “Always use for this provider” if you want requests to fail rather than silently fall back to OpenRouter’s shared io.net capacity.
3

Allow the io.net provider

Check openrouter.ai/settings/privacy and confirm io.net is not in your ignored providers list.
Give the new key about a minute to take effect before testing.

Make a request

Call OpenRouter as usual and pin the io.net provider so your BYOK key is used:
curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "z-ai/glm-5.2",
    "messages": [{ "role": "user", "content": "Hello!" }],
    "provider": { "only": ["io-net"], "allow_fallbacks": false },
    "usage": { "include": true }
  }'
Available io.net models on OpenRouter: z-ai/glm-5.2, qwen/qwen3.6-27b. Browse the live list on the io.net provider page.

Confirm BYOK is being used

The response usage block tells you whether your key served the request:
"usage": { "is_byok": true, "cost": 0 }
is_byok: true means the request went through your io.net key. If you see is_byok: false, OpenRouter served it from its shared io.net capacity instead — see Troubleshooting.

Pricing

  • Inference is billed by io.net to your io.net credits, at io.net’s rates.
  • OpenRouter charges a BYOK fee from your OpenRouter credits: 0% for the first 1M BYOK requests per month, 5% thereafter.

Troubleshooting

Your OpenRouter account has no balance. BYOK still needs OpenRouter credits to cover its fee — add credits at openrouter.ai/settings/credits.
io.net is in your OpenRouter ignored providers list. Un-ignore it at openrouter.ai/settings/privacy.
OpenRouter served the request from shared capacity instead of your key. Re-check that the BYOK key is Prioritized + enabled on the correct OpenRouter account, and allow ~1 minute for changes to propagate.
Your io.net key is invalid or the io.net account is out of credits. Recreate the key or top up your io.net balance.

Reference