API96Astro API

Credits and rate limits

How calls are charged, how limits work and the headers that report them.

Credits

Each successful call uses credits from your plan:

Compute classCredits per call
Light and standard1
Heavy3
Reports10
AI readingsMetered from the same credits: typically 60-170 (fast), 250-750 (balanced) or 1,500-4,000 (deep)
PDF of a report (POST /v1/jobs/pdf)The report's 10, plus 120

Every capability's cost is shown in the API reference and returned in meta.credits_used. An AI reading reserves its tier's ceiling before the call and is charged only what it used. Errors are never charged, and sandbox keys never use credits.

When credits run out

The API returns 429 quota_exhausted, never a silent failure or a surprise bill. You can:

  • buy a top-up from the dashboard;
  • upgrade your plan; the new allowance applies immediately;
  • wait for your monthly credits to renew;
  • turn on overage with a monthly spending cap (below), so live calls continue instead of stopping.

Project budgets

On the Business and Enterprise plans, each project can have a monthly credit budget: the most live credits its keys may use in a calendar month (UTC). It is checked at admission, under the same lock as your credits, so concurrent calls cannot overshoot it: a call that would take the project past its budget returns 429 project_budget_exceeded and is not charged. Other projects keep working, and the budget resets on the 1st of the month. Failed calls do not count, and sandbox calls never do. Raise or clear the budget under Projects in the dashboard; a call can still stop earlier with quota_exhausted or spend_cap_reached when the organization's credits or overage cap run out first.

Overage (opt-in, capped)

Overage is off unless the account owner turns it on under Billing. It needs an active paid plan and billing details, and a monthly cap of at least the price of the smallest top-up. The cap and the overage price exclude GST, like every price.

  • Order. Plan credits are used first, then top-ups, then overage. A top-up bought later is used before any more overage.
  • Price. Overage credits cost your plan's top-up rate per 1,000 credits (the cheapest top-up your plan can buy), shown in Billing.
  • Never past the cap. Before each live call the credits it may use are reserved against the cap's remaining room, so concurrent calls cannot overshoot it. A call that does not fit returns 429 spend_cap_reached; failed calls give their credits back.
  • Alerts. An email (and, on plans with webhooks, the overage.started, overage.threshold and overage.cap_reached events) when overage starts and at 50 %, 80 % and 100 % of the cap, each once a month.
  • Billing. Overage is billed with GST as soon as the cap is reached, and the rest after each monthly period ends; amounts under 1.00 are waived. You pay the bill from Billing within 7 days and the GST invoice is issued with the payment, with the line "Overage credits N at ₹x per 1,000". An unpaid bill past its due date pauses live calls (402 payment_required) until it is paid; the sandbox keeps working.
  • Sandbox keys never use overage.

Rate limits

Each plan has a rate limit in units per second, shared by every key of your organization (live and sandbox are counted apart); see pricing. A call counts units by its compute class, so the limit follows the work a call asks for:

CallUnits
Light and standard1
Heavy3
Reports10
AI readings10, on top of their per-key limit below
PDF of a report (POST /v1/jobs/pdf)10, the report's; the render itself is queued
Polling a job (GET /v1/jobs/{id})1

The limit is also the burst: on a 5-units-a-second plan you can make five light calls at once, or one heavy call and two light ones. The allowance refills continuously at the plan's rate. A call larger than the whole allowance (a 10-unit report on a 2-unit plan) is accepted when the allowance is full and then holds further calls back until it has refilled, so a 2-unit plan runs one report every 5 seconds.

Successful responses report the current state in units:

RateLimit-Limit: 10
RateLimit-Remaining: 7
RateLimit-Reset: 1

RateLimit-Remaining is the units you can spend now; RateLimit-Reset is the seconds until the allowance is full again. Exceeding the limit returns 429 rate_limited with these headers and a Retry-After header: the seconds until that call would fit.

The published rates are provisional: they will be revised once they have been measured on our production hardware.

If our calculation service is briefly overloaded you get 503 unavailable with retryable: true and a Retry-After header. It is never charged; retry after the time given.

Other limits

LimitApplies to
10 AI readings a minute, per keyLive and sandbox keys
500 calls a daySandbox keys, per organization
20 AI readings a day, fast tier onlySandbox keys, per organization
5 PDF jobs a daySandbox keys, per organization

The daily sandbox limits count the last 24 hours and return 429 quota_exhausted when reached.

On this page