Rate limits
Ichnus is free for individual use, but the service has limits that keep it sustainable. This page explains the tiers, the free limits, program services for heavy use, and what happens when a limit is reached.
Usage tiers
- Individual free: the default tier for anyone using Ichnus in the app or a personal API project.
- Program service: a paid-at-cost tier for organizations with sustained heavy use, such as research labs or nonprofits running batch workloads.
- Contributor: not a billing tier, but active contributors to open eval tooling may qualify for a higher program allocation at no additional cost.
Free limits
Free usage is bounded by two limits:
- Corus fair use: a weekly balance for the Corus model, resetting every Monday. The current number is shown on your account page. When the balance runs out, Corus requests are served by Mantus instead.
- Request volume: a per-minute request ceiling for API projects, applied to all models. The ceiling prevents a single project from degrading the service for everyone.
Krus and Mantus have no weekly fair-use limits for individual app use. Their cost is low enough that individual use is effectively unlimited.
Program services at cost
Curos is a non-profit. Organizations that need more than the free limits can request a program service allocation, billed at cost: the actual cost of serving the requests, with no margin. Curos publishes its serving costs in the transparency report so the pricing is verifiable.
- Allocations cover API access for batch and programmatic workloads.
- Requests are reviewed by Curos staff; the review checks for compatible use, not creditworthiness.
- Unused allocation rolls over for 90 days.
- Researchers and nonprofits working on compatible projects can request a funded allocation, subject to the committee’s approval.
See the API keys page for how to apply.
What happens when you hit a limit
- Corus fair-use limit: your request is served by Mantus automatically. You can keep working without changing anything.
- Per-minute request ceiling: requests return a 429 response with a
retry_afterfield. The API reference shows the error shape. - Request too large: a single request that exceeds model capacity returns an invalid request error. Split the input into chunks and retry.
- Program service budget exhausted: batch jobs pause and resume when budget is replenished; nothing is lost.
Reducing your usage
- Use Krus for short, high-volume work; it is the least expensive to serve.
- Set
max_tokensandtemperaturewhere you do not need full-length, varied output. - Cache responses you reuse instead of regenerating them.
- Batch requests during off-peak hours, which the program service prices lower.