Cloudflare Workers AI
@cf/openai/gpt-oss-120b
Context window131K tokens
Free budget~18-45M tokens/mo
Rate limitsnot published
Key is account_id:token info
Cloudflare Workers AI authenticates with a combined credential in the form "account_id:token", not a bare token.
Needs token room info
This route can spend hidden reasoning tokens before visible output. Avoid tiny max_tokens values or the request can finish by length with empty content.
Groq
openai/gpt-oss-120b
Context window131K tokens
Free budget~6M tokens/mo
Requests / min30 RPM
Requests / day1K RPD
Tokens / min8K TPM
Tokens / day200K TPD
Ollama Cloud
gpt-oss:120b
Context window131K tokens
Free budget~10-20M tokens/mo
Rate limitsnot published
OVH AI Endpoints
gpt-oss-120b
Context window131K tokens
Free budgetfree · 2/min per IP tokens/mo
Requests / min2 RPM
Anonymous tier is 2 req/min warning
OVH AI Endpoints anonymous mode is documented at 2 req/min per IP per model (observed even stricter across models). The 400 req/min authenticated tier requires a Public Cloud project with a payment method, so the catalog ships the keyless path. Treat as a breadth/fallback tier, not a throughput tier.
No API key required info
Routes anonymously — the catalog ships a keyless sentinel row and calls work with no account or key.
ElectronHub
gpt-oss-120b
Context window128K tokens
Free budget$0.25/week shared recurring credit tokens/mo
Rate limitsnot published
Shared weekly free credits info
ElectronHub Free renews $0.25 each week (Sunday 21:00 UTC), shared across eligible non-premium models; unused weekly credit does not roll over. These are credit-backed routes, not the separate daily :free aliases. Paid top-ups are optional and not included in this allowance. Text inference was tested; other capability flags come from the provider roster.
The :free aliases need phone verification info
ElectronHub's zero-credit ":free" aliases answered 403 "To prevent abuse and high traffic on free models, phone verification is required" on September 18, 2026. The ordinary ids this catalog carries are NOT affected and were re-tested working the same day, so the :free aliases are simply not worth adding. ElectronHub's recurring grant is $0.25 credited every Sunday at 21:00 UTC plus a separate daily Neutrino allowance.
CLōD
GPT OSS 120B
Free budgetfree · shared daily allowance tokens/mo
Rate limitsnot published
Shared daily free requests info
CLōD grants 100 requests per day across eligible free models, automatically replenished, with no card required. This is daily, not monthly, and not a separate grant per model. Use the exact friendly model IDs including spaces. Only four routes returned consistent upstream identities in live tests; Llama and Trinity aliases that substituted Gemma are excluded. Matching response IDs do not independently verify the served weights. Context and tool support are not claimed without provider-specific evidence.
Get this model the moment it changes
Limits move, models get replaced, better ones launch. Premium routers see this page's data live. Free routers see last month's.
Go live · $19/yr →Use it
FreeLLMAPI is a self-hosted router you run yourself. Install it, paste in your free Cloudflare Workers AI key, and @cf/openai/gpt-oss-120b answers on an OpenAI-compatible endpoint at http://localhost:3001/v1. No credit card, no hosted middleman: your prompts and your provider keys never leave your machine.
Install the router (macOS, Linux, WSL)
curl -fsSL https://freellmapi.co/install.sh | bashInstall the router (Windows PowerShell)
iwr -useb https://freellmapi.co/install.ps1 | iexCall @cf/openai/gpt-oss-120b with curl
curl http://localhost:3001/v1/chat/completions \
-H "Authorization: Bearer freellmapi-your-unified-key" \
-H "Content-Type: application/json" \
-d '{
"model": "@cf/openai/gpt-oss-120b",
"messages": [{"role": "user", "content": "Say hi in five words."}]
}'The same request in Python (openai)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:3001/v1",
api_key="freellmapi-your-unified-key",
)
resp = client.chat.completions.create(
model="@cf/openai/gpt-oss-120b",
messages=[{"role": "user", "content": "Say hi in five words."}],
)
print(resp.choices[0].message.content)The router answers on /v1/chat/completions and every other OpenAI surface, plus the Anthropic Messages API, so existing clients need only a new base_url. Swap the model id for auto and the router picks the best free model that is still under its limits. Full reference: docs/api.md.