Limits & fair use
Updated Aug 2026 · API v3The limits exist to keep the API healthy for everyone — normal use never touches them.
Rate limits
- Public API traffic: 60 requests/minute per client+user by default.
- On top of that, infrastructure-level per-IP limits apply — regular integrations never meet them.
- Hitting a limit answers
429with aRetry-Afterheader; theX-Rate-Limit-*headers tell you where you stand at any time.
Fair use
Beyond the hard per-minute limits there is a soft monthly guide:
3,000 requests/month (server-owned — read it live from
GET /v3/users/me/usage as fairUse.monthlyReference). It is a gauge, not
an enforcement: exceeding it changes a colour on your usage page at
my.pon.app, nothing else. Your live numbers (today, month, per token) are
there too.
The cheapest request is the one you don’t make.
Webhooks tell you when something changed; a conditional fetch afterwards is all you need. That keeps most integrations far below the guide.Resource quotas
Generous caps against runaway automation (422 QUOTA_EXCEEDED with
details.resource and details.limit):
| Resource | Limit |
|---|---|
| Own lists | 200 |
| Active items per list | 5,000 (LIST_FULL) |
| Images | 2,000 |
| Open invites per list | 50 |
| List memberships | 500 |
| Personal access tokens | 10 (TOKEN_LIMIT) |
| Webhooks | 5 (WEBHOOK_LIMIT) |
The error envelope
Every error, every endpoint, the same shape:
{ "errors": [ { "code": "LIST_FULL", "message": "…", "details": { "limit": 5000 } } ] }
Successful responses are always { "data": …, "meta": … }. Write paths are
idempotency-friendly — retrying a failed write is safe.