Skip to content

Conventions

Rate limits and quotas

Limits are per token. Every response says where you stand, so you can slow down before you hit a 429.

The numbers

LimitValue
Requests per minute, per token120
Requests per day, per token (default)10,000
Items per pagedefault 25, at most 100
OAuth: registrations per address30 per 10 minutes
OAuth: registrations for the whole platform1,000 per hour
OAuth: token requests per address120 per minute

The headers

HeaderMeaning
X-Request-IdId of this request, quote it in a support mail.
X-RateLimit-LimitRequests allowed per minute for this token.
X-RateLimit-RemainingRequests left in the current minute.
X-RateLimit-ResetUnix seconds at which the minute window resets.
Retry-AfterOn a 429: how many seconds to wait.

Over the limit? You get 429 rate_limited with Retry-After in seconds. For the daily quota that is the time until midnight in Amsterdam, when the quota starts again.

Caching and ETag

Public responses (the agenda) are the same for everyone and carry an ETag and a Cache-Control with max-age. Send the ETag back in If-None-Match; when nothing changed you get 304 without a body. Responses about your own organisation or your token are private, no-store.

bash
curl -s -i "https://api.partyppl.nl/v1/genres" \
  -H "Authorization: Bearer $PPL_TOKEN" \
  -H 'If-None-Match: "<etag>"'

Making more tokens to get around the limits is not allowed. If you really need more, mail api@partyppl.nl: the daily quota can be raised per token.

Updated