Skip to main content

OpenRouter Alternatives: Free Models, Fees, and When to Switch

OpenRouter's free models cap at 50 requests a day until a one-time $10 top-up; Vercel, Requesty, Cloudflare, LiteLLM, or direct free tiers each fix one problem.

LaoZhang AI TeamPublished16 min read
On this page
OpenRouter alternatives cover: 50 free requests a day until $10 is bought and a 5.5% top-up fee, beside Requesty at 200 requests a day, Vercel AI Gateway at 0% markup, self-hosted LiteLLM under MIT, and Groq at 1,000 requests a day

As of September 27, 2026, OpenRouter's free models are still free, but they are gated by request count rather than tokens: 20 requests a minute for everyone, and 50 requests a day until your account has bought $10 of credits in total, after which the daily cap rises to 1,000. The platform's fee is 5.5% (minimum $0.80) charged when you top up, not per token. So before comparing alternatives, name what actually broke. If it was the 50-a-day wall, the cheapest fix is usually the one-time $10, not a migration. If it was the fee, a provider's training policy, a rejected card, or the wish to run your own gateway, each of those points to a different class of product, and the classes are not interchangeable.

What broke on OpenRouterSmallest change that fixes itIf that is not acceptable
50 requests a day on :free modelsBuy $10 of credits once; the free cap becomes 1,000 a dayRequesty's free tier (200 requests a day, no card), or a direct free tier such as Groq or Gemini
5.5% fee on every top-upUse your own provider keys through OpenRouter (BYOK); no fee up to $25,000 a month of list-price usageVercel AI Gateway (no markup), Cloudflare AI Gateway with your own keys, or self-hosted LiteLLM
The free provider trains on your promptsTurn off "may train" for free models in OpenRouter's privacy settings and accept fewer endpointsGroq's free plan, or any paid route with a retention policy you have read
Card or region rejected at checkoutNone inside OpenRouterA gateway or provider that accepts your payment method; the paid options are listed below
You want to own the gatewayNoneLiteLLM (MIT) or Portkey's open-source build, with your own provider keys

Below, each row gets its rule, the fees go on one basis, and a switch sample moves the same OpenAI SDK call across OpenRouter, Vercel, Requesty, Cloudflare, LiteLLM, Gemini, and Groq.

How OpenRouter's free models are actually limited

"Free" on OpenRouter means two things. A model ID ending in :free is a free variant of a specific model, served by a provider that offers it at no token price. openrouter/free is the Free Models Router: it picks a free model at random from the ones currently available, filtering for the capabilities your request needs (image input, tool calling, structured outputs). Its docs are explicit that you cannot control which model answers; if you need a particular one, use its :free variant instead. The model field in the response tells you which model was selected.

Both paths share the same platform limits, from the limits page:

Credits purchased, all timeRequests per minuteRequests per day
Less than $102050
$10 or more201,000

Four details matter more than the table. First, the tier is selected by all-time purchases, so $10 once is enough, and the higher ceiling is granted from $9 to absorb fees. Second, additional accounts or API keys do not help; OpenRouter says it governs capacity globally. Third, a negative balance can produce 402 errors even on free models, so a paid experiment that overran can silently break your free usage. Fourth, the daily counter is readable: GET https://openrouter.ai/api/v1/key returns free_model_daily_requests with used, limit, and remaining for the current UTC day. The per-minute limit is not reported there.

The free router page also lists the operational caveats: free models may have lower rate limits than paid ones, availability varies and some are temporarily unavailable, and latency rises at peak. None of that is a hidden charge; it is what "as available" looks like in practice.

The roster changes weekly. As of September 27, 2026, the free collection includes openai/gpt-oss-120b:free and NVIDIA Nemotron 3 Ultra (free), among others. Filter the model list for :free rather than maintaining a list of names.

The data policy that removes free endpoints

Every endpoint on OpenRouter carries a structured logging and training policy from its provider. Your account settings let you block routing to providers that may train on your data, and there are separate toggles for paid and free models. When OpenRouter cannot establish a provider's policy, it assumes the endpoint both retains and trains. Some free endpoints are open about it: the free-models collection shows a notice for Poolside's Laguna S 2.1 free variant that inputs and outputs may be used to train and improve the model.

The practical consequence, as setup guides from TypingMind and GPT Breeze report, is that turning off training for free models can leave a request with "No endpoints found matching your data policy" because every free provider for that model trains. That is the correct behavior, not a bug: the free supply that meets your policy is simply smaller.

Keep this separate from OpenRouter's own logging. The provider-training setting, in OpenRouter's words, has no bearing on what OpenRouter itself does with prompts; its own prompt logging is off by default and opt-in. EU or US in-region routing exists but is enterprise-only, by request. If you need to verify what a specific route retains, the method in LLM API Data Retention vs Zero Data Retention: A Route-Level Audit applies to OpenRouter endpoints and to the alternatives below.

Where the fee lands, and what $10 really costs

OpenRouter passes through provider token prices without markup and charges its fee at purchase: 5.5% with a $0.80 minimum on card top-ups through Stripe, 5% on crypto. Because of the minimum, small top-ups pay a higher effective rate:

Top-upFee ruleFeeChargedEffective rate
$10max(5.5% × $10 = $0.55, $0.80)$0.80$10.808.0%
$1005.5% × $100$5.50$105.505.5%
Ten top-ups of $10$0.80 each$8.00$108.008.0%

So the "one-time $10" that unlocks 1,000 free requests a day actually costs $10.80 on a card, and you keep $10 of credits to spend on paid models. Three terms of the credit system change the calculation for some readers: OpenRouter reserves the right to expire unused credits one year after purchase; refunds of unused credits are only possible within 24 hours, with the platform fee non-refundable; crypto purchases are never refundable. New accounts also get a small free allowance to test the platform, with no published amount.

BYOK is the fee-free path inside OpenRouter. Pay-as-you-go accounts get a $25,000-a-month allowance of list-price inference through their own provider keys with no BYOK fee; above that, 5% of what the same model would cost on OpenRouter, deducted from credits. BYOK requests are also not gated by the free-model daily counter. What you give up is OpenRouter's pooled provider limits, since the rate limits become your provider's.

The alternatives charge in different places, so compare on one basis. For $100 of usage at provider list prices:

RouteWhere the fee is chargedYou pay for $100 of list-price usageInputs that move the number
OpenRouter credits5.5% ($0.80 minimum) at top-up$105.50 as one top-up; $108.00 as ten $10 top-upsTop-up size; crypto is 5%
OpenRouter BYOK0 up to $25,000 a month list price, then 5%$100 on the provider's billProvider rate limits are yours
Requesty pay-as-you-go5% on tokens$105No minimum spend
Vercel AI GatewayNo markup, no platform fee on tokens$100Card processing fees are yours; needs a Vercel team
Cloudflare AI Gateway, Unified Billing5% on credits purchased$105$100 with your own provider keys instead
LiteLLM self-hostedNo gateway fee$100 plus a server and your timeYou operate it

Fee on $100 of list-price usage: OpenRouter credits cost $105.50 as one top-up or $108.00 as ten $10 top-ups, Requesty and Cloudflare Unified Billing $105, OpenRouter BYOK, Vercel AI Gateway and self-hosted LiteLLM $100

Requesty's page uses the same example in reverse: a model that costs $10 per 1M tokens from OpenAI costs $10.50 through Requesty. The percentage looks like OpenRouter's, but it applies to every token, so it cannot be avoided by topping up in larger amounts.

Four kinds of alternative, and what each one is for

Products sold as OpenRouter alternatives solve different problems. Sorting them by what they charge for makes the choice much shorter.

Hosted routers that resell tokens

Requesty is the closest like-for-like replacement. Its free tier gives access to its free models at 200 requests a day with no credit card, and the free plan lists routing, caching, fallbacks, spend tracking, and EU data residency. Pay-as-you-go is provider cost plus 5% with no minimum spend, BYOK included; the base URL is https://router.requesty.ai/v1. Which models count as "free models" on Requesty is not stated on the pricing page, so check the catalog before assuming a specific model is included.

For other hosted routers sold as OpenRouter alternatives (NanoGPT, CometAPI, Crazyrouter, and similar), ask the same three questions before moving traffic: where is the fee charged, what is the free cap measured in, and what is the training policy of the free endpoints.

Zero-markup gateways

Vercel AI Gateway charges no markup and no platform fee on tokens, on both tiers and with BYOK. The pricing page (updated September 8, 2026) lists a $5-a-month included credit on the free tier, usable only on free-tier-eligible models with lower per-model rate limits; your free credits start on your first request. Two conditions trip people up: the team must add a valid payment method before using free credits (the error is 403 with customer_verification_required), and buying any credits moves the team to the paid tier, after which the monthly free credit no longer applies. The paid tier has no AI Gateway rate limits of its own, only the providers' limits, and it is the only tier with BYOK; when a BYOK request fails and Vercel retries with its own credentials, that fallback is billed to your balance. Purchased credits expire after one year. The OpenAI-compatible base URL is https://ai-gateway.vercel.sh/v1, with GET /v1/models and GET /v1/credits for the catalog and balance.

Cloudflare AI Gateway is free in a different sense: the gateway itself (analytics, caching, rate limiting) costs nothing, and you call providers with your own provider keys. If you prefer one bill, Unified Billing passes through provider rates plus a 5% fee on credits purchased, so $100 of credits settles at $105. The only free model supply behind it is Workers AI, which includes 10,000 Neurons a day on Free and Paid Workers plans; Neurons are Cloudflare's own unit, not tokens, and some newer models require a paid billing method. The OpenAI-compatible route is https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/compat/chat/completions with provider/model IDs such as workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast; a default gateway is created on your first request. Cloudflare's docs now mark that endpoint as deprecated for single-model chat in favor of api.cloudflare.com/client/v4/accounts/{account_id}/ai/v1/chat/completions, but it continues to work and is still required for dynamic routes.

Self-hosted proxies

LiteLLM Proxy is MIT-licensed except for its enterprise/ directory. It exposes an OpenAI-compatible server for 100+ LLMs, tracks spend, and sets budgets per virtual key or user. The docker quick start uses docker-compose.quickstart.yml, requires a LITELLM_MASTER_KEY, and listens on port 4000; models are declared in config.yaml under model_list, with keys referenced as api_key: os.environ/GROQ_API_KEY so no secret lives in the file. "Free" here means no gateway fee. You still need provider keys, and you pay for the machine and the maintenance.

Portkey's Developer plan is free forever with 10,000 recorded logs a month (3-day log retention, 30-day metrics; requests over the limit still pass but are not logged), and its open-source gateway can be self-hosted. It sits over your own provider keys; it is not a source of free models.

Direct provider free tiers

Going direct removes the gateway entirely, and it is where most of the remaining genuinely free capacity lives:

  • Gemini API offers free input and output tokens on a set of models (Gemini 3.8 Flash and other Flash and Flash-Lite models, 2.5 Pro, Gemma 4, but no Pro preview and no image or video models), with content on the free plan used to improve Google's products. Rate limits are per project and now visible only in AI Studio, with daily resets at midnight Pacific. Apps served to users in the EEA, Switzerland, or the UK must use the paid services. The OpenAI-compatible base URL is https://generativelanguage.googleapis.com/v1beta/openai/. The model-by-model detail is in Gemini API Free Tier 2026: Limits, Free Models, and API Keys.
  • Groq publishes its free-plan limits per organization: for openai/gpt-oss-120b, 30 requests a minute, 1,000 a day, 8,000 tokens a minute, and 200,000 tokens a day. Overruns return 429 with a retry-after header. Groq's services agreement says it does not use inputs or outputs beyond providing the service. Base URL: https://api.groq.com/openai/v1.
  • Mistral has a free mode with included monthly usage, but the amounts and per-model limits are shown only in your own account's limits page.
  • Hugging Face Inference Providers gives free accounts $0.10 of credits a month, a sandbox rather than a workload. NVIDIA gives Developer Program members free prototyping access to its API endpoints with no published limits. Together AI lists one model, Ternary Bonsai 27B, at $0.00 per token.

Two names to strike from any free shortlist: GitHub Models was fully retired on July 30, 2026, including its inference API. Cerebras has no permanent free tier; it offers a $5 trial that requires a verified payment method first. Anthropic and OpenAI give at most small one-time or eligibility-based credits, and DeepSeek has no free tier at all, though deepseek-flash at $0.15 per 1M input and $0.60 per 1M output tokens off-peak is cheap enough to be a first paid step (details in DeepSeek API Peak Hours: Current Prices and When to Wait). SambaNova's free tier is 20 requests a day and Cohere's trial keys allow 1,000 calls a month, both evaluation-sized. If your real question is which direct free key to start with, Best Free AI API Provider: Pick by Limits, Data Use, and Region makes that choice by constraint.

If the trigger is a card that is declined or a country OpenRouter no longer bills (since May 2026 it has stopped payment processing for accounts tied to Russia, according to the account email reproduced on Habr), no free tier fixes it, and the honest options are paid. laozhang.ai is an OpenAI-compatible gateway at https://api.laozhang.ai/v1 (Anthropic and Gemini native formats are also supported), operated by YingTu Technology Pte. Ltd. in Singapore, with pay-as-you-go balance and no prompt content stored by default. Registration requires a Gmail address and is subject to allowlist review, so it is not an instant signup, and it has no free tier; treat it as a paid route alongside the others in the fee table.

Switching: same SDK, different base URL and model ID

Every route above speaks the OpenAI Chat Completions format, so the switch is two values: the base URL and the model ID. Keys come from environment variables, and the model ID format differs per gateway, which is where most first attempts fail.

python
import os
from openai import OpenAI

# (base_url, env var holding the key, model id format)
TARGETS = {
    "openrouter": ("https://openrouter.ai/api/v1", "OPENROUTER_API_KEY",
                   "openai/gpt-oss-120b:free"),          # or "openrouter/free"
    "vercel":     ("https://ai-gateway.vercel.sh/v1", "VERCEL_AI_GATEWAY_KEY",
                   "provider/model"),                    # copy the id from Vercel's catalog
    "requesty":   ("https://router.requesty.ai/v1", "REQUESTY_API_KEY",
                   "provider/model"),                    # copy the id from Requesty's catalog
    "cloudflare": (f"https://gateway.ai.cloudflare.com/v1/{os.environ['CF_ACCOUNT_ID']}/default/compat",
                   "CF_API_TOKEN",                        # key for the provider named in the model id
                   "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast"),
    "litellm":    ("http://0.0.0.0:4000", "LITELLM_MASTER_KEY",
                   "your-alias-from-config.yaml"),
    "gemini":     ("https://generativelanguage.googleapis.com/v1beta/openai/", "GEMINI_API_KEY",
                   "gemini-3.8-flash"),                  # bare id, no provider prefix
    "groq":       ("https://api.groq.com/openai/v1", "GROQ_API_KEY",
                   "openai/gpt-oss-120b"),               # Groq's own id, not an OpenRouter id
}

target = os.environ.get("LLM_TARGET", "openrouter")
base_url, key_var, model = TARGETS[target]

client = OpenAI(base_url=base_url, api_key=os.environ[key_var])
resp = client.chat.completions.create(
    model=model,
    messages=[{"role": "user", "content": "Reply with the single word: ready"}],
    max_tokens=16,
)
print(target, "->", resp.model, "->", resp.choices[0].message.content)

Three things to notice. resp.model is what tells you which free model openrouter/free actually chose. The Cloudflare base URL embeds your account ID, and its docs say you switch providers by changing the model and apiKey parameters, so the key you pass belongs to the provider named in the model ID (a Cloudflare API token for Workers AI models, an OpenAI key for openai/... models). Gemini and Groq use bare model IDs, while the three gateways use provider/model, and openai/gpt-oss-120b on Groq is a Groq ID, not an OpenRouter one, even though it looks the same. If a tool rather than your code sets the base URL, OpenAI Base URL Override: Which Setting Wins and What to Paste covers which setting wins.

To read the OpenRouter free-request counter before your app hits the wall:

bash
curl -s https://openrouter.ai/api/v1/key \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  | jq '.data.free_model_daily_requests'
# {"used": 37, "limit": 50, "remaining": 13}   (example values)

limit is 50 or 1,000 depending on your all-time purchases. Accounts and endpoints exempt from free-model limits, and BYOK requests, are not gated by the counter, so remaining reflects the tier policy rather than an enforced ceiling for them.

Reading the errors: 429, 402, and "no endpoints"

OpenRouter's error codes separate the two families of limit, and the alternatives have their own signatures.

OpenRouter error triage: 429 with X-RateLimit headers is the free-model platform cap, 429 with provider_code is an upstream provider limit, 402 is about credits, and No endpoints means your data policy excluded every provider

  • 429 from OpenRouter with X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers means a platform limit: the free-model per-minute or per-day cap, or DDoS protection. Check the counter above; the fix is to wait, buy the $10, or switch to the paid variant of the model, which has no platform-level request cap.
  • 429 from the upstream provider carries the provider's original code in error.metadata.provider_code. OpenRouter already retried other providers for the same model before returning it; adding fallback models or relaxing provider preferences widens the pool. A rate limit hit mid-stream arrives as an SSE chunk with finish_reason: "error" rather than an HTTP status.
  • 402 is about credits, not rate. error.metadata.limit_source says which: openrouter_credits (balance cannot cover the request, or a negative balance, which also blocks free models), openrouter_key_limit (a per-key cap you set), or openrouter_in_flight_budget (too many paid requests settling at once; wait for Retry-After). The in-flight budget does not apply to free models or to BYOK requests.
  • "No endpoints found matching your data policy" means your privacy settings excluded every provider for that model. For a free model, the relevant toggle is the free-model training setting.
  • Vercel 403 customer_verification_required means the team has no valid payment method yet; Vercel 429 on the free tier is a per-model limit that buying credits removes.
  • Groq 429 includes retry-after; honor it rather than hammering, since limits are per organization.

When the free route should stop

The free path is designed for experimentation and low volume, and the numbers above give you the thresholds:

  • You need more than 50 requests a day but fewer than 1,000, and one specific :free model is acceptable: pay the $10.80 once. No migration is cheaper, and you keep $10 of credits.
  • You need a specific model to answer every time: use its paid variant. The free router's random selection and the free variants' variable availability are documented behavior, not something a different gateway fixes. Compare per-token prices for your input and output mix in AI API Price Comparison: Cheapest Model by Input and Output Mix.
  • You send other people's data: stop using free endpoints that train, either by turning the free-model training toggle off and accepting the smaller pool, or by moving that traffic to a paid route whose retention terms you have read.
  • You run an agent tool (Cline, Roo Code, Claude Code): count requests, not tokens. One task can fire dozens of calls, so 50 a day disappears in an afternoon and even 1,000 is a budget to watch. The routing setup for Claude Code specifically is in Claude Code with OpenRouter and DeepSeek: Setup, Routes, and First-Error Fixes.
  • You use a roleplay front end such as Janitor AI or SillyTavern: each message the app sends is one request, so the free cap is 50 messages a day, or 1,000 after the $10. Requesty's 200 a day and Groq's 1,000 a day on openai/gpt-oss-120b are the direct comparisons.

FAQ

Is the OpenRouter API still free?

Yes, for models with a :free variant and for the openrouter/free router, within 20 requests a minute and 50 a day (1,000 a day once you have bought $10 of credits in total). Paid models cost the provider's list price plus a 5.5% fee at top-up. There is no free plan for paid models beyond a small unpublished trial allowance.

Does a second OpenRouter account reset the free limit?

No. OpenRouter states that additional accounts or API keys do not affect rate limits because capacity is governed globally. The supported way to raise the daily cap is the one-time $10 purchase.

Are OpenRouter's free models any good?

The free variant serves the same model under a free endpoint, so quality is the model's; openai/gpt-oss-120b:free and NVIDIA Nemotron 3 Ultra (free) were in the collection as of September 27, 2026. What differs is service: lower rate limits, variable availability, higher latency at peak, and, for the router, a random choice you can only observe afterward in the model field. For anything that must answer consistently, the paid variant or a direct provider is the right tool.

Is there a European alternative to OpenRouter?

Requesty lists EU data residency on every plan including the free tier. OpenRouter offers EU in-region routing only to enterprise customers by request, and Vercel's zero-data-retention controls are documented for its Pro and Enterprise plans. For a direct provider, Gemini's free quota is usable by a developer in Europe, but an app served to EEA, Swiss, or UK users must run on the paid services.

Is self-hosting LiteLLM really free?

The software is, under the MIT license (except the enterprise/ directory). You still pay every provider for tokens at their prices and you pay for the machine that runs the proxy. What you save is the gateway's cut, which for OpenRouter is 5.5% at top-up and for Requesty 5% on tokens.

More in API Guides