{"eid":"openrouter","name":"OpenRouter","domain":"openrouter.ai","resolved_by":"domain","topics":["compute","inference","storage"],"n_records":3,"best_vorder":1,"review":null,"aliases":["OpenRouter","OpenRouter :free model ids","OpenRouter Files API (workspace files)","openrouter.ai"],"records":[{"rid":"compute/openrouter","card":{"rid":"compute/openrouter","eid":"openrouter","topic":"compute","slug":"openrouter","provider":"OpenRouter","url":"https://openrouter.ai/docs/api-reference/limits","domain":"openrouter.ai","category":"inference API","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"request-rate","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":null,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T00:00:00.000Z","verified_basis":"live","checked_on":"2026-10-22","stale_on":"2026-11-21","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"Free-model requests are capped by a table keyed on lifetime credits purchased, not on account age: 'Less than 10' credits in all time gives 20 requests a min...","duplicate_of":null,"n_unknown":9},"record":{"topic":"compute","slug":"openrouter","provider":"OpenRouter","url":"https://openrouter.ai/docs/api-reference/limits","category":"inference API","free_tier":{"stated":"Free-model requests are capped by a table keyed on lifetime credits purchased, not on account age: 'Less than 10' credits in all time gives 20 requests a minute and 50 requests a day; 'At least 10' credits gives 20 a minute and 1,000 a day. So the no-card allowance is 50 requests a day, and the 1,000-a-day figure that circulates requires USD 10 of purchases, which converts the free lane into a payment relationship. The page also notes 'Making additional accounts or API keys will not affect your rate limits, as we govern capacity globally'.","unit":"requests","metered_on":"wall-clock","source_url":"https://openrouter.ai/docs/api-reference/limits","read_on":"2026-10-22","notes":"recurring-daily-request-allowance"},"per_object_cap":{"stated":"not applicable","bytes":null,"source_url":"https://openrouter.ai/docs/api-reference/limits","notes":null},"retention":{"stated":"not applicable","days":null,"source_url":"https://openrouter.ai/docs/api-reference/limits","notes":null},"egress":{"terms":"not stated","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://openrouter.ai/docs/api-reference/limits"},"interface":["rest"],"interface_detail":"inferred from the tooling the provider documents; not probed","tooling":"not stated","chaining":"the fallback array is where this silently becomes a paid lane: a pipeline that lists a paid model as fallback bills for every request the free model refuses, which is why the free router (openrouter/free) is the only safe chain.","limits":[{"kind":"request-rate","value":"50 requests a day binds and it is a request count, not a token count: a 1,000-item job takes 20 days on the no-card lane, and the 20 rpm cap means the day's 50 requests are spent in under three minutes of traffic.","source":"https://openrouter.ai/docs/api-reference/limits"}],"limits_note":"50 requests a day binds and it is a request count, not a token count: a 1,000-item job takes 20 days on the no-card lane, and the 20 rpm cap means the day's 50 requests are spent in under three minutes of traffic.","binding":"request-rate","binding_note":"50 requests a day binds and it is a request count, not a token count: a 1,000-item job takes 20 days on the no-card lane, and the 20 rpm cap means the day's 50 requests are spent in under three minutes of traffic.","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"no reliability event recorded","confidence":"documented","evidence":[{"url":"https://openrouter.ai/docs/api-reference/limits","date":"2026-10-22","proved":"free usage limits table: 'Less than 10 | 20 | 50' and 'At least 10 | 20 | 1000' for requests per minute and per day, quoted"},{"url":"https://openrouter.ai/docs/faq","date":"2026-10-22","proved":"'If you have purchased at least 10 credits, your free model rate limit will be 1000 requests per day. Otherwise, you will be rate limited to 50 free model API requests per day', quoted"},{"url":"https://openrouter.ai/docs/guides/routing/model-variants/free","date":"2026-10-22","proved":"'If you list a :free model in a models fallback array, OpenRouter tries the next model in the array when the free model is rate-limited... a fallback to a paid model incurs charges even though the first model was :free', quoted"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-22T00:00:00.000Z","notes":"Corrects a claim that is easy to make from the same page: the 1,000-requests-a-day figure is not the free tier, it is the post-purchase tier. The no-card ceiling is 50 a day, which is 1,500 a month and is a chat allowance. The dossier record openrouter-free-ids carries the endpoint and the 401 on an unauthenticated call; it does not carry this credit threshold, which is the number that decides whether the allowance is usable.","extras":{"wave2":{"class":"capacity-shape","free_tier_kind":"recurring-daily-request-allowance","shape":{"vcpu":null,"ram_gib":null,"gpu_class":null,"gpu_count":null}}}},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":20.0,"unit":"requests","per":"minute","currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":50.0,"unit":"requests","per":"day","currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.egress.metered","egress-unknown"],["$.egress.terms","not-stated"],["$.identity_cost.detail","process"],["$.per_object_cap.notes","process"],["$.per_object_cap.stated","not-applicable"],["$.reliability_note","none-observed"],["$.retention.notes","process"],["$.retention.stated","not-applicable"],["$.tooling","not-stated"]],"history":[],"drift":[]},{"rid":"inference/openrouter-free-ids","card":{"rid":"inference/openrouter-free-ids","eid":"openrouter","topic":"inference","slug":"openrouter-free-ids","provider":"OpenRouter :free model ids","url":"https://openrouter.ai/api/v1","domain":"openrouter.ai","category":"inference endpoint, keyed","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"documented","binding":"request-rate","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T04:32:22.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"free-model request caps stated for model IDs ending in :free, selected by all-time credits purchased","duplicate_of":null,"n_unknown":2},"record":{"topic":"inference","per_object_cap":{"stated":"not applicable: an inference endpoint stores nothing for the caller"},"retention":{"stated":"not applicable"},"egress":{"terms":"the response is the payload; no separate egress term is published","metered":false},"interface":["rest"],"tooling":"any OpenAI-compatible client; curl against POST {base}/chat/completions","chaining":"pairs with an agent after a key; the scarce link is the key plus the ':free' suffix, because a zero-priced id without the suffix is a different quota class","limits":[{"kind":"request-rate","value":"per-minute and per-day caps for :free ids, both selected by all-time credits purchased; the values did not render","source":"https://openrouter.ai/docs/api-reference/limits, read 2026-10-22"}],"slug":"openrouter-free-ids","provider":"OpenRouter :free model ids","url":"https://openrouter.ai/api/v1","category":"inference endpoint, keyed","free_tier":{"stated":"free-model request caps stated for model IDs ending in :free, selected by all-time credits purchased","unit":"requests","metered_on":"request-count","source_url":"https://openrouter.ai/docs/api-reference/limits","read_on":"2026-10-22","notes":"the two thresholds and their request caps render as empty cells in the served page, so the table's numbers could not be read today"},"endpoint":"https://openrouter.ai/api/v1/chat/completions","identity_cost":{"kind":"email","detail":"an account and an API key. An unauthenticated call returns 401 'No cookie auth credentials found'","country":null},"reliability_note":"no reliability event; the endpoint was never reached with a key","confidence":"documented","confidence_note":"the gating rule and the response fields are documented. The caps are not readable, so no number is carried. A key would move this to measured in one call. verified_at is the instant its evidence URLs were fetched on 2026-10-22, read from the fetch log, not typed.","evidence":[{"url":"https://openrouter.ai/docs/api-reference/limits","date":"2026-10-22","proved":"free-model limits apply only to IDs ending in :free; the tier is selected by all-time credits purchased; GET /api/v1/key reports free_model_daily_requests with a limit field; the per-minute cap is not reported there"},{"url":"probe:https://openrouter.ai/api/v1/chat/completions","date":"2026-10-22","proved":"inclusionai/ling-3.1-flash without a key returned 401 'No cookie auth credentials found' in both runs, which proves the endpoint exists and gates on a key"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-22T04:32:22.000Z","notes":"That distinction is the most misread thing about this provider.","binding":"request-rate"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.notes","partly-held"],["$.retention.stated","not-applicable"]],"history":[],"drift":[]},{"rid":"storage/openrouter-files-api","card":{"rid":"storage/openrouter-files-api","eid":"openrouter","topic":"storage","slug":"openrouter-files-api","provider":"OpenRouter Files API (workspace files)","url":"https://openrouter.ai","domain":"openrouter.ai","category":"paas","tier":null,"verdict":"fails-egress","vorder":5,"grp":"rejected","confidence":"reported","binding":"per-object-cap","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":104857600,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"10 GiB per workspace, stated verbatim: 'Each workspace can store up to 10 GiB in total. When the workspace is full, uploads return a 403 error.'","duplicate_of":null,"n_unknown":4},"record":{"topic":"storage","slug":"openrouter-files-api","provider":"OpenRouter Files API (workspace files)","url":"https://openrouter.ai","category":"paas","free_tier":{"stated":"10 GiB per workspace, stated verbatim: 'Each workspace can store up to 10 GiB in total. When the workspace is full, uploads return a 403 error.'","unit":"GiB","metered_on":"stored-bytes","source_url":"https://openrouter.ai/docs/guides/features/files-api","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"per-object-cap 100 MiB","bytes":104857600,"source_url":"https://openrouter.ai/docs/guides/features/files-api","notes":"not stated"},"retention":{"stated":"Keep your own copy of every file you upload.' Only model-created/promoted files are downloadable. Retention: indefinite.","source_url":"https://openrouter.ai/docs/guides/features/files-api","notes":"not stated"},"egress":{"terms":"Files API has 'no separate charge' and files 'do not expire' — but read-gated by design.","metered":false},"interface":["rest"],"interface_detail":"rest","tooling":"POST /api/v1/files (multipart), GET /api/v1/files, GET /api/v1/files/{id}/content. Global endpoint only (eu./us. return 403).","chaining":"10 GiB x unlimited workspaces is arithmetically a chain, but it is useless here: you cannot get your own uploaded bytes back, and the client needs storage, not a write-only sink. This is the cleanest 'storage you cannot retrieve is not storage' instance found this round.","limits":[{"kind":"per-object-cap","value":"per-object-cap 100 MiB","source":"https://openrouter.ai/docs/guides/features/files-api"}],"limits_note":"per-object-cap 100 MiB ('A larger file returns a 413 error'); 10 GiB per workspace; content-type sniffed from bytes and restricted to PDF/PNG/JPEG/GIF/WebP/DOCX/XLSX/PPTX/MP3/WAV/FLAC/OGG/UTF-8 text — arbitrary binaries are rejected at upload. **Upload-open / read-gated**: 'A request to GET /api/v1/files/{file_id}/content for an uploaded file returns a 400 error. Keep your own copy of every file you upload.' Only model-created/promoted files are downloadable. Retention: indefinite.","identity_cost":{"kind":"institution","detail":"derived from the record's prose, not from an identity field, and no signup was executed: t upload. **Upload-open / read-gated**: 'A request to GET /api/v1/files/{file_id}/content for an uploaded file returns a 400 error. Keep your own copy of every file you upload.' Only","country":null},"reliability_note":"Beta; in-region endpoints return 403. Downloaded files must be created by a sandbox/model, not uploaded by you.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://openrouter.ai/docs/guides/features/files-api","date":"2026-10-21","proved":"'The maximum file size is 100 MiB ... 413'; 'Each workspace can store up to 10 GiB in total'; 'Files that you upload cannot be downloaded directly'"},{"url":"https://openrouter.ai/docs/api/api-reference/files/upload-a-file","date":"2026-10-21","proved":"'Maximum file size: 100 MB; empty files are rejected ... must be a PDF, a PNG/JPEG/GIF/WebP image, a DOCX/XLSX/PPTX, an MP3/WAV/FLAC/OGG, or UTF-8 text'"}],"verdict":"fails-egress","verified_at":"2026-10-21T00:00:00.000Z","notes":"10 GiB per workspace, stated verbatim: 'Each workspace can store up to 10 GiB in total. When the workspace is full, uploads return a 403 error.'","extras":{"dead_end":{"failure_class":"quota","why":"10 GiB per workspace, stated verbatim: 'Each workspace can store up to 10 GiB in total. When the workspace is full, uploads return a 403 error.'","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"per-object-cap","binding_note":"the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":10.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-object-cap","num":100.0,"unit":"MiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"]],"history":[],"drift":[]}]}