Tiers and Limits
What each tier reaches and how calls are counted
The tiers
Each tier reaches everything in the tiers below it. Sign up, subscribe or change tiers on the pricing page.
Every endpoint in the API Reference is marked with the lowest tier that reaches it.
How calls are counted
- One request is one call, whatever its size. A team's whole season of box scores is one call, and so is one game.
- The monthly count resets on the 1st of each month, at midnight UTC.
- The per-minute limit resets at the top of each clock minute.
- Refused requests are free. A request stopped by the per-minute limit, or by an endpoint above your tier, does not count toward your month.
When you hit a limit
The API answers with status 429 and a Retry-After header: the number of seconds until the limit resets (the rest of the minute, or the time to the 1st of next month). Wait that long and retry.
Retry-After: 37
{"detail": "Rate limit: 10 requests per minute"}A call to an endpoint above your tier answers 403, with the tier it needs in the X-Pear-Required-Tier header.
Check your usage
GET /v1/account returns your tier, its limits, your calls so far this month and what each higher tier would add. In Python that is pear.account().
Change or cancel
Upgrades start right away; downgrades and cancellations take effect at the end of the period you already paid for. Both happen in the customer portal: POST /v1/account/portal (or pear.billing_portal()) returns a one-time link to it.