costrouting

OpenRouter alternatives with free models: compare limits and guarantees

Compare OpenRouter free variants with Groq, Gemini, and Cloudflare Workers AI allowances. Learn what each free model router limits, what runs out first, and what no provider guarantees.

Four separate water tanks, each with its own refill clock, feeding a small router, with one empty tank whose valve stays closed rather than opening onto a paid tap.

If you are looking for OpenRouter alternatives with free models, the question behind the search is usually narrower than “which gateway is best”. You want requests that cost nothing, and you want to know how many of them you get before something fails. Each provider answers that differently, and none of them promises unlimited free use.

This comparison covers four free-access mechanisms: OpenRouter’s zero-price :free variants, Groq’s per-model renewable limits, Gemini’s project quotas, and Cloudflare Workers AI’s daily Neuron budget. Numbers below come from each provider’s own documentation, rechecked on 6 October 2026. They change, so reread the linked pages before you size a workload.

What OpenRouter does well

OpenRouter is a strong default, and it is fair to start there. One key reaches hundreds of models, the API works with the OpenAI SDK, and paid models sit next to free ones in the same catalog. Its free models router, openrouter/free, filters the free models that support your request’s requirements and picks one at random. Its model fallbacks let you pass a list of model IDs in priority order; if the first returns an error such as a rate limit or downtime, OpenRouter tries the next.

That convenience comes with three documented boundaries:

  • The free pool is small per account. OpenRouter’s limits page caps :free models at 20 requests per minute, plus 50 requests per day if the account has bought less than $10 of credits in total, or 1,000 per day after that.
  • A negative balance blocks free models. Below zero credits, requests return 402 Payment Required even on :free IDs.
  • Fallback lists bill the model that answered. The fallback documentation states that requests are priced using the model ultimately used. Put a paid model in the list and a rate-limited free request can become a paid one. The Auto Router likewise charges the standard rate of whichever model it selects.

OpenRouter itself positions the free router for learning, prototyping, and low-volume applications. Ficelle’s OpenRouter page keeps the key setup and failure codes in one place.

Four free mechanisms, side by side

ProviderWhat makes a call freeDocumented free limitWhat happens at the limit
OpenRouterZero-price :free model variant20 RPM; 50 or 1,000 requests per day depending on credits ever bought429 “Rate limit exceeded”; 402 if the balance is negative
GroqFree plan, limits set per modelopenai/gpt-oss-120b: 30 RPM, 1,000 RPD, 8,000 TPM, 200,000 TPD429 with a retry-after header
GeminiFree tier on selected models, such as Gemini 2.5 FlashNot published as fixed numbers; shown per project in AI StudioRequests fail until the window resets; daily quota resets at midnight Pacific
Cloudflare Workers AIDaily Neuron allocation on every Workers plan10,000 Neurons per day, reset at 00:00 UTCWorkers Free: requests fail. Workers Paid: $0.011 per 1,000 extra Neurons

Sources: OpenRouter limits, Groq rate limits, Gemini pricing and rate limits, Workers AI pricing.

The rows look similar but meter different things.

OpenRouter prices specific variants at zero. The :free ID is a separate catalog entry, and the daily counter is per account, so switching from one :free model to another does not give you a fresh 50. GET /api/v1/key returns free_model_daily_requests with the used, limit, and remaining values.

Groq publishes a separate row for each model, applied at the organization level. Its headers measure two windows: x-ratelimit-remaining-requests counts down the daily request limit, while x-ratelimit-remaining-tokens counts tokens in the current minute. With an 8,000 TPM ceiling, two 6,000-token prompts sent in the same minute will hit the token limit long before the 30 RPM limit.

Gemini applies limits per project, not per API key. Creating a second key in the same project does not create a second quota. Google also states that specified rate limits are not guaranteed. The pricing page marks free-tier content as used to improve Google’s products, so check the data terms before sending anything sensitive.

Cloudflare meters compute in Neurons rather than tokens, and each model consumes them at its own rate. There is no single “free tokens per day” number. The plan decides what exhaustion means: a Workers Free account stops, a Workers Paid account starts billing.

Allowance, trial, paid API: three different things

A “free” label in a list of providers can describe any of these:

  • A zero-price model. OpenRouter’s :free variants cost nothing per token but share the account’s daily request cap.
  • A renewable allowance. Groq, Gemini, and Cloudflare reset their free quotas on a schedule. They come back tomorrow; they do not grow with demand.
  • Trial credits. Cerebras documents finite credits after card verification, and access stops when they run out. That is a trial, not a free tier.
  • A paid API. Together’s billing documentation states that it has no free trial. Paid APIs are fine choices; they are just not alternatives for a free-only route.

There is a fifth state to check: live activation. A model in a catalog, or a provider in a router’s pack, says nothing about your account. Your key may lack access to a model, your Gemini project may sit in a region with different terms, or your Cloudflare account may be on Workers Paid with overage billing on. Confirm each account before counting it as free capacity.

A documented exhaustion scenario

Take an agent that sends one 6,000-token request every 20 seconds through OpenRouter, on an account that has never bought credits. That is three requests per minute, well inside the 20 RPM limit. At three per minute, the 50-request daily cap is gone in about 17 minutes. Every further :free call that UTC day returns 429.

Now add the other three providers as alternatives:

  1. Groq accepts the traffic only if it fits the token window. Three 6,000-token requests per minute is 18,000 tokens, above the 8,000 TPM row for openai/gpt-oss-120b. The second request each minute gets a 429 with retry-after, so the effective rate is one request per minute.
  2. Gemini absorbs some load, but only up to the per-project limits shown in AI Studio. A second key in the same project adds nothing.
  3. Cloudflare serves requests until the 10,000 daily Neurons run out at a model-dependent rate. On Workers Free the calls then fail; on Workers Paid they continue and are billed.

At some point in the day, every free route is exhausted at once. A free model router can spread requests across allowances; it cannot add capacity that none of the providers offer. The right outcome at that moment is an explicit error, not a quiet switch to a billed model. Provider breakage is the silent killer of AI agents covers the other failure modes, such as retired model IDs and capabilities that catalogs claim but models do not deliver.

How to choose a free-only route

  1. Write down the limit that binds first. For long prompts it is usually tokens per minute; for small, frequent calls, requests per day.
  2. Check quota scope. Account (OpenRouter), organization (Groq), project (Gemini), or account plan (Cloudflare). Extra keys inside the same scope do not add quota.
  3. Check reset time. OpenRouter’s free counter follows the UTC day, Gemini resets at midnight Pacific, and Cloudflare at 00:00 UTC.
  4. Check what overflow does. A failed request is recoverable. A billed request on Workers Paid, or a paid model in an OpenRouter fallback list, is not free.
  5. Verify the capability your agent needs. Make a real tool call or JSON request against each candidate model rather than trusting a catalog flag.
  6. Decide what happens when everything is exhausted. Queue, wait for the reset, or fail the task. Do not leave it to a retry loop that escalates to a paid model.

Where Ficelle fits

Ficelle is a local, OpenAI-compatible router for this free-only case. It runs on your machine at http://127.0.0.1:8646/v1, keeps provider keys local, and sends requests directly to the selected provider. It is not a hosted proxy. The routing core is source-available under the Business Source License 1.1, and OpenRouter ships in the free Core; Groq, Gemini, Cloudflare and the other providers in the comparison come with Pro’s maintained provider pack.

Strict-zero routing is the rule that matters here. Paid fallback is hardcoded off, and Ficelle refuses to start if configuration claims otherwise. When a model rate-limits, Ficelle applies a cooldown to that model or quota scope and can retry another configured, enabled candidate that meets the request requirements. If no eligible candidate can serve the request, it returns an error.

Ficelle does not make free quotas unlimited. It cannot stop a Workers Paid account from billing Neurons beyond the allocation, and pack membership does not prove your account can call a provider. Keep each upstream account within its free entitlement.

Free models are also not equal to paid ones on every task. In Ficelle’s free-versus-paid benchmark, GPT-5 won 10 of 20 polished-content tasks: paid models won 50% of long-form writing. Keep that work on a paid model or give it to a human editor.

If a free-only route is a hard requirement and you would rather not maintain four providers’ limits, scopes, and error codes yourself, see Ficelle Pro pricing.


Install Ficelle → One command. No account, and it can't charge you.