- a rate limit: calls per minute;
- a monthly quota: calls per calendar month (some agreements have none).
GET /v1/usage shows your limits and this month’s calls.
What counts as a call
A call is counted once it passes authentication, the rate limit and the quota, whatever it returns and however many records it carries:
Use
limit=100 and batch retrieve: a page of 100 records costs the same as a page of 1.
Rate limit
The rate limit counts calls in the current UTC calendar minute. Above it, calls get 429rate-limited with "violated_policies": ["minute"] and a Retry-After header with the seconds until the minute ends.
Refused calls are not billed, but they still count toward the current minute. Retrying immediately keeps you over the limit; wait for Retry-After.
There is also a limit of two concurrent searches per key. A third concurrent search waits up to a second, then gets 429 rate-limited with "violated_policies": ["concurrency"]. Run searches from a small worker pool rather than in parallel bursts.
Monthly quota
The quota counts calls in the current UTC calendar month. Once it is used up, calls get 429quota-exceeded with "violated_policies": ["month"] until the next month starts. Contact hello@pinakelai.com to raise it. When many requests arrive at the same moment the quota runs out, a few of them can still be served.
RateLimit headers
Every authenticated response reports your key’s limits and what remains, in the format of the IETF draft RateLimit header fields for HTTP (draft 11):
The headers follow a draft standard, so their exact syntax is outside the stability guarantee until the draft is final. Use them to pace yourself, and use
Retry-After on a 429 to decide when to retry. There are no X-RateLimit-* headers.
Python
Checking usage
calls counts this month’s calls for the key, per product. A usage call is itself counted. The customer portal at portal.pinakelai.com shows the same figures with history.
Edge protection
In front of the API, Pinakel’s edge limits very high request volumes per IP address and per key, and blocks clients that send malformed credentials repeatedly. These limits are far above normal use. Responses from the edge can be a 429 or 403 without a JSON body or rate-limit headers; back off and retry later.Planning your volume
Test keys have lower rate limits and are not billed.