# Unblock free-model rate limits with your own OpenRouter key

> Hitting 429s or the daily cap on :free models? Add your own OpenRouter key so free models run on your OpenRouter quota instead of the shared pool.


# Unblock free-model rate limits with your own OpenRouter key

Free models are popular, so they run out. If `anyrouter/free` or a `:free` model keeps returning `429`, the fastest fix is to add your own OpenRouter key. Your free-model requests then run on your own OpenRouter account first, and they stop counting against AnyRouter's daily free-tier cap.

## Why free models return 429

There are two different limits, and they need different fixes:

| What you see | Cause | Fix |
|---|---|---|
| `429` `free_tier_daily_limit_exceeded` | You used your daily free-tier allowance: **10 requests/day** on Free, **1,000 requests/day** on Go and up. Resets at 00:00 UTC. | Add your own key (this guide), subscribe to Go, or add credits. |
| `429` from the upstream provider | The provider's free capacity is busy. Free capacity is shared by many callers, so it runs out at peak times. | Add your own key so the request runs on your own provider quota. |

`anyrouter/free` and every `:free` model share one daily allowance per account. Requests served through your own BYOK key don't count toward it, even for `:free` models. See [Free Tier](/features/free-tier) and [Rate Limits](/features/rate-limits#free-tier-daily-cap) for the full details.

## Add your OpenRouter key

::::steps

:::step{title="Create an OpenRouter key"}
Sign in at [openrouter.ai](https://openrouter.ai), open **[openrouter.ai/keys](https://openrouter.ai/keys)**, and click **Create Key**. Copy it right away. OpenRouter keys start with `sk-or-`.
:::

:::step{title="Add it to AnyRouter"}
Open **[Dashboard → BYOK](https://anyrouter.dev/dashboard/byok)**. Find **OpenRouter** under **Available**, click **Add key**, paste the key into the **API key** field, and click **Save**.
:::

:::step{title="Wait for the live check"}
AnyRouter calls OpenRouter once before it stores the key. If the key is wrong, the dialog shows OpenRouter's error and nothing is saved. Once saved, the key is encrypted at rest and never shown again.
:::

::::

You don't need to set a base URL. The default (`https://openrouter.ai/api/v1`) is filled in for you.

## How routing uses your key

When a request needs a model your OpenRouter key can serve, AnyRouter tries **your key first**, before the shared pool and before your AnyRouter credits. If your key is rate limited or fails, AnyRouter sets it aside for a short time and moves on to the next option.

Two settings change this:

- **Always use.** Turn this on for the key and AnyRouter uses only your key for matching models. It never falls back to the shared pool or to credits. If your key fails, the request fails.
- **More than one key.** Add several OpenRouter keys and pick a strategy (Fallback, Round Robin, Weighted, or Random) on the OpenRouter card.

The full order is on [How AnyRouter Chooses a Credential](/features/credential-selection).

## What it costs

- **AnyRouter charges nothing** for requests served by your key. No markup, no per-request fee, and no credits are deducted.
- **`:free` models stay free.** They run under OpenRouter's own limits for free models on your account.
- **Paid models bill your OpenRouter account** at OpenRouter's price. If you don't want that, call only `:free` models or set a spending limit on the key in OpenRouter.

## Check that it works

Call a `:free` model with your AnyRouter key:

```bash
curl https://anyrouter.dev/api/v1/chat/completions \
  -H "Authorization: Bearer $ANYROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nvidia/nemotron-nano-9b-v2:free",
    "messages": [{ "role": "user", "content": "Say hello in one sentence." }]
  }'
```

Then open **[Dashboard → Logs](https://anyrouter.dev/dashboard/logs)**. The newest row's **Provider** column shows which upstream served the request, and **Cost** shows $0. The set of free models changes over time, so pick any current `:free` model from the [model catalog](https://anyrouter.dev/models) if this one isn't listed.

## Donate your key to the shared pool

If your OpenRouter key has spare capacity, you can share it. On the key in **Dashboard → BYOK**, turn on **Donate to pool**. Other users' requests can then run on your key, and you earn credits for each request it serves. Your own requests always come first, and you can turn it off at any time.

On the Free plan, donating an eligible key also unlocks the shared pool's free models for you, the same as subscribing to Go. Check that OpenRouter's terms allow sharing your key before you donate. See [Share a Key to the Shared Pool](/features/shared-pool) for rewards and limits.

## Troubleshooting

:::details{summary="The key won't save"}
The live check failed. Check that you copied the whole key, including the `sk-or-` prefix, and that the key isn't disabled in OpenRouter. The dialog shows OpenRouter's exact error.
:::

:::details{summary="I still get free_tier_daily_limit_exceeded"}
That request wasn't served by your key. Check that the model you call is one your OpenRouter key can reach, and that the key is enabled and healthy on the OpenRouter card in **Dashboard → BYOK**. Pin a specific `:free` model that OpenRouter serves, then check the **Provider** column in [Dashboard → Logs](https://anyrouter.dev/dashboard/logs).
:::

:::details{summary="I get a 429 from OpenRouter"}
Your own OpenRouter free-model limit is used up. Wait for OpenRouter's limit to reset, add a second key, or add a key from another provider with a free tier. See [Free capacity with your own keys](/guides/free-capacity-with-your-own-keys).
:::

:::details{summary="401 upstream_401"}
OpenRouter rejected the key. It may be revoked or deleted. Create a new key in OpenRouter, add it in **Dashboard → BYOK**, and delete the old one.
:::

:::details{summary="I was charged on OpenRouter"}
You called a paid model, which bills your OpenRouter account. Use `:free` model ids only, or set a credit limit on the key in OpenRouter.
:::


## Related

- [Free Tier](/docs/features/free-tier.md)
- [Bring Your Own Key (BYOK)](/docs/features/byok.md)
- [How AnyRouter Chooses a Credential](/docs/features/credential-selection.md)
- [Share a Key to the Shared Pool](/docs/features/shared-pool.md)
- [Rate Limits](/docs/features/rate-limits.md)
- [Free capacity with your own keys](/docs/guides/free-capacity-with-your-own-keys.md)
