fshy / Compute / Inference / Storage
OpenRouter
openrouter.ai · Compute, Inference, Storage · 3 records · JSON
- OpenRouter Computecaveatemailno cardDrequest-rate
- OpenRouter :free model ids Inferencecaveatemailno cardDrequest-rate
- OpenRouter Files API (workspace files) Storagefails: egressinstitutionno cardRper-object-cap
OpenRouter Compute
caveatemailno cardDrequest-rate
| Free tier | 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; recurring-daily-request-allowance |
|---|---|
| Price | none stated |
| Per-object cap | not applicable |
| Retention | not applicable |
| Egress | not stated |
| Identity | email not published |
| Limits |
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 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. |
| Interface | rest inferred from the tooling the provider documents; not probed |
| Tooling | not stated |
| Composes with | 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. |
| Reliability | no reliability event recorded |
| 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. |
| Evidence rung | documented |
| Checked | 2026-10-22 (live); stale on 2026-11-21 |
| Parsed numbers |
|
Evidence (3)
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | openrouter.ai/docs/api-reference/limits | free usage limits table: 'Less than 10 | 20 | 50' and 'At least 10 | 20 | 1000' for requests per minute and per day, quoted |
| 2026-10-22 | openrouter.ai/docs/faq | '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 |
| 2026-10-22 | openrouter.ai/docs/guides/routing/model-variants/free | '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 |
More fields (1)
{
"wave2": {
"class": "capacity-shape",
"free_tier_kind": "recurring-daily-request-allowance",
"shape": {
"vcpu": null,
"ram_gib": null,
"gpu_class": null,
"gpu_count": null
}
}
}Unknown or withheld values (9)
$.egress.meteredegress-unknown$.egress.termsnot-stated$.identity_cost.detailprocess$.per_object_cap.notesprocess$.per_object_cap.statednot-applicable$.reliability_notenone-observed$.retention.notesprocess$.retention.statednot-applicable$.toolingnot-stated
OpenRouter :free model ids Inference
caveatemailno cardDrequest-rate
| Free tier | free-model request caps stated for model IDs ending in :free, selected by all-time credits purchased unit requests; metered on request-count; 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 |
|---|---|
| Price | none stated |
| Per-object cap | not applicable: an inference endpoint stores nothing for the caller |
| Retention | not applicable |
| Egress | the response is the payload; no separate egress term is published |
| Identity | email an account and an API key. An unauthenticated call returns 401 'No cookie auth credentials found' |
| Limits |
|
| Binding | request-rate |
| Interface | rest |
| Tooling | any OpenAI-compatible client; curl against POST {base}/chat/completions |
| Composes with | 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 |
| Reliability | no reliability event; the endpoint was never reached with a key |
| Notes | That distinction is the most misread thing about this provider. |
| Evidence rung | documented 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. |
| Checked | 2026-10-23 (live); stale on 2026-11-22 |
Evidence (2)
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | openrouter.ai/docs/api-reference/limits | 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 |
| 2026-10-22 | probe:https://openrouter.ai/api/v1/chat/completions | 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 |
Unknown or withheld values (2)
$.notespartly-held$.retention.statednot-applicable
OpenRouter Files API (workspace files) Storage
fails: egressinstitutionno cardRper-object-cap
| Free tier | 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 |
|---|---|
| Price | none stated |
| Per-object cap | per-object-cap 100 MiB (104857600 bytes) |
| Retention | Keep your own copy of every file you upload.' Only model-created/promoted files are downloadable. Retention: indefinite. |
| Egress | Files API has 'no separate charge' and files 'do not expire' — but read-gated by design. |
| Identity | institution 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 |
| Limits |
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. |
| Binding | per-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota |
| Interface | rest rest |
| Tooling | POST /api/v1/files (multipart), GET /api/v1/files, GET /api/v1/files/{id}/content. Global endpoint only (eu./us. return 403). |
| Composes with | 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. |
| Reliability | Beta; in-region endpoints return 403. Downloaded files must be created by a sandbox/model, not uploaded by you. |
| 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.' |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
| Parsed numbers |
|
Evidence (2)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | openrouter.ai/docs/guides/features/files-api | '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' |
| 2026-10-21 | openrouter.ai/docs/api/api-reference/files/upload-a-file | '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' |
More fields (1)
{
"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"
}
}Unknown or withheld values (4)
$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.per_object_cap.notesnot-extracted$.retention.notesnot-extracted