fshy

fshy / Compute / Inference / Storage

OpenRouter

openrouter.ai · Compute, Inference, Storage · 3 records · JSON

OpenRouter Compute

caveatemailno cardDrequest-rate

openrouter.ai/docs/api-reference/limits · inference API · compute/openrouter · JSON · compare

Free tierFree-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
Pricenone stated
Per-object capnot applicable
Retentionnot applicable
Egressnot stated
Identityemail not published
Limits
  • 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. source
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.
Bindingrequest-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.
Interfacerest inferred from the tooling the provider documents; not probed
Toolingnot stated
Composes withthe 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.
Reliabilityno reliability event recorded
NotesCorrects 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 rungdocumented
Checked2026-10-22 (live); stale on 2026-11-21
Parsed numbers
  • $.limits[0].value limit:request-rate 50.0 requests / day
Evidence (3)
datesourcewhat it proved
2026-10-22openrouter.ai/docs/api-reference/limitsfree usage limits table: 'Less than 10 | 20 | 50' and 'At least 10 | 20 | 1000' for requests per minute and per day, quoted
2026-10-22openrouter.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-22openrouter.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.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

OpenRouter :free model ids Inference

caveatemailno cardDrequest-rate

openrouter.ai/api/v1 · inference endpoint, keyed · inference/openrouter-free-ids · JSON · compare

Free tierfree-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
Pricenone stated
Per-object capnot applicable: an inference endpoint stores nothing for the caller
Retentionnot applicable
Egressthe response is the payload; no separate egress term is published
Identityemail an account and an API key. An unauthenticated call returns 401 'No cookie auth credentials found'
Limits
  • request-rate per-minute and per-day caps for :free ids, both selected by all-time credits purchased; the values did not render source
Bindingrequest-rate
Interfacerest
Toolingany OpenAI-compatible client; curl against POST {base}/chat/completions
Composes withpairs 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
Reliabilityno reliability event; the endpoint was never reached with a key
NotesThat distinction is the most misread thing about this provider.
Evidence rungdocumented 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.
Checked2026-10-23 (live); stale on 2026-11-22
Evidence (2)
datesourcewhat it proved
2026-10-22openrouter.ai/docs/api-reference/limitsfree-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-22probe:https://openrouter.ai/api/v1/chat/completionsinclusionai/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)
  • $.notes partly-held
  • $.retention.stated not-applicable

OpenRouter Files API (workspace files) Storage

fails: egressinstitutionno cardRper-object-cap

openrouter.ai · paas · storage/openrouter-files-api · JSON · compare

Free tier10 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
Pricenone stated
Per-object capper-object-cap 100 MiB (104857600 bytes)
RetentionKeep your own copy of every file you upload.' Only model-created/promoted files are downloadable. Retention: indefinite.
EgressFiles API has 'no separate charge' and files 'do not expire' — but read-gated by design.
Identityinstitution 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 per-object-cap 100 MiB source
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.
Bindingper-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
Interfacerest rest
ToolingPOST /api/v1/files (multipart), GET /api/v1/files, GET /api/v1/files/{id}/content. Global endpoint only (eu./us. return 403).
Composes with10 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.
ReliabilityBeta; in-region endpoints return 403. Downloaded files must be created by a sandbox/model, not uploaded by you.
Notes10 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 rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Parsed numbers
  • $.limits[0].value limit:per-object-cap 100.0 MiB
Evidence (2)
datesourcewhat it proved
2026-10-21openrouter.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-21openrouter.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_when process
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted