Documentation sections
Quotas and limits
Two limits apply: a monthly allowance of calls, which belongs to the account, and a number of requests a minute, which follows the credential a request carries. Reading what is left is never counted.
Monthly allowance, per account
The allowance belongs to the account, not to a key: the calls of all its keys count against one figure. It resets at the start of each calendar month in UTC. A refused call (a missing or invalid key, an unknown calculator, a body that does not parse) costs nothing, and a call the service fails after counting is given back.
| Plan | Calls a month | Keys | Batch endpoint |
|---|---|---|---|
| Free | 5 | 1 API key | No |
| Pro · $9 a month | 100 | 3 API keys | No |
| API · $19 a month | 10,000 | 5 API keys | Yes, up to 50 a request |
A spent allowance is 402, never 401 or 429; see Errors.
Usage
GET /api/py/v1/usage answers a key or a signed-in session with what the account has used this month and what is left, the overage state, and the calls attributed to each of its keys. Reading it is never counted, so a program can show its remaining calls as often as it likes, within the per-minute limit.
The daily series
Add ?days=N, a whole number from 1 to 90, and the answer gains daily: exactly N entries {date, calls}, oldest first, ending on today's UTC date. A day with no calls is listed with 0. Each day is the account's calls over all its keys, net of calls given back. Without days the answer is unchanged.
| Field | Description |
|---|---|
| tierstring | The account's plan: free, pro or api. |
| periodstring | The calendar month, YYYY-MM (UTC). |
| resetAtstring | When the allowance resets: the first instant of next month. |
| allowance, used, remaininginteger | The month's allowance, the calls counted against it net of releases, and what is left. |
| overageobject | Pay-as-you-go overage: whether the account is eligible, whether it is on, and its use and cap. |
| keysarray | Each key of the account: keyId, label, client, active, used, lastUsedAt. |
| rateLimitPerMinuteinteger | The per-minute limit for the credential the request carried. |
| daily{date, calls}[] | Only with ?days=N: the calls of each of the last N UTC days. |
Usage headers
Every metered response (a calculator call, a batch, a job submitted with a key) carries the same figures in headers a browser can read:
| Header | Meaning |
|---|---|
| X-Usage-Allowance | The account's monthly allowance. |
| X-Usage-Used | Calls counted this month, including this one. |
| X-Usage-Reset | When the allowance resets (ISO-8601, UTC): the first instant of next month. |
| X-Usage-Overage | Present only when pay-as-you-go overage was counted this month: how many calls. |
Requests a minute, per address
The per-minute limit follows the credential a request carries, not the plan. Over it, the API answers 429 with a Retry-After header. The device-grant endpoints are held to the no-credential rate whatever they carry.
| The request carries | Requests a minute |
|---|---|
| No credential | 30 |
| Signed-in session | 60 |
| API key | 120 |
Other limits
- A batch carries at most 50 calculations; see Batch.
- 3 simulation jobs queued or running at once, per caller; see Simulation jobs.