rate-limits ships a schema, two illustrative examples on example.com, and a validator. What it does not ship is real provider data.
drafts/claude-openai-gemini-rate-limits.yaml holds a capture for Claude, OpenAI and Gemini behind an explicit banner:
UNVERIFIED WORKING DATA — DO NOT CONSUME
That banner is there for good reason. When the repo was prepared for publication the capture had, across 76 entries: 38 comma-formatted strings where the schema declared number, 49 missing two required fields, metric split three ways, and every Claude "Input Tokens" entry tagged domains: api.openai.com — Anthropic models pointing at OpenAI's host. The mechanical defects were fixed; the numbers were never verified against the providers' own documentation, and the model roster is stale.
The work
Do a sourced pass: for each provider, read the published rate-limit page and record url and source_date on every entry. That is what the schema added those fields for — a limit describing a real provider with no source date is an unverified claim, not a record.
Start with the three already captured, then the providers whose limits people actually hit: Stripe, GitHub, Twilio, Slack, Discord.
Two things to hold on to
Rate limits are tier-dependent and change without notice. The schema has tier for the first and source_date for the second. A record without both is worth less than no record.
Where the sourced data should live is a decision. Options: promote it out of drafts/ in this repo, or keep this repo schema-only and let providers publish their own — which is the actual goal, and the reason the property exists.
rate-limits ships a schema, two illustrative examples on
example.com, and a validator. What it does not ship is real provider data.drafts/claude-openai-gemini-rate-limits.yamlholds a capture for Claude, OpenAI and Gemini behind an explicit banner:That banner is there for good reason. When the repo was prepared for publication the capture had, across 76 entries: 38 comma-formatted strings where the schema declared
number, 49 missing two required fields,metricsplit three ways, and every Claude "Input Tokens" entry taggeddomains: api.openai.com— Anthropic models pointing at OpenAI's host. The mechanical defects were fixed; the numbers were never verified against the providers' own documentation, and the model roster is stale.The work
Do a sourced pass: for each provider, read the published rate-limit page and record
urlandsource_dateon every entry. That is what the schema added those fields for — a limit describing a real provider with no source date is an unverified claim, not a record.Start with the three already captured, then the providers whose limits people actually hit: Stripe, GitHub, Twilio, Slack, Discord.
Two things to hold on to
Rate limits are tier-dependent and change without notice. The schema has
tierfor the first andsource_datefor the second. A record without both is worth less than no record.Where the sourced data should live is a decision. Options: promote it out of
drafts/in this repo, or keep this repo schema-only and let providers publish their own — which is the actual goal, and the reason the property exists.