Daily quota
Each search takes 1 search from your daily quota. API access comes with Hound and Alpha.- The quota resets every day at 00:00 UTC.
usage.resetAtin/v1/megives the exact moment. - It is shared with the website: a search on dis.dog and a search through the API take from the same quota.
- Unused searches do not carry over to the next day.
- Paid plans are paid in crypto through OxaPay on the pricing page. A payment lasts 30 days and does not renew by itself; paying again for the same plan adds 30 days to its end. When it ends, the account is back on Pup.
What takes a search
The input is checked first, then the removals, and only then is a search taken: a refused call never costs anything. A
404 on a single-module route is an answer (“nothing there”), so it counts.
Rate limit
On Pup, two searches must be at least 3 seconds apart. The limit belongs to the account and applies to the website (Pup has no search access on the API). A search sent too early is refused with429 rate_limited, and retryAfterMs says how long to wait.
Hound and Alpha have no rate limit.
Headers
Every call that takes a search, and everyGET /v1/me, carries your quota in its headers:
The API answers browsers from any origin and exposes these three headers to them, so the playground shows them too.
Handling 429
A 429 says why in its body:
rate_limited (Pup only, so in practice on the website): wait retryAfterMs milliseconds, then try again. quota_exceeded: today’s searches are used up, and retrying before resetAt will not help.

