peinture applies a small number of protective limits. They exist to keep the service stable, not to meter usage.
Login throttling
Repeated failed logins are throttled: after a few failures for a given account and client, each further attempt is delayed with an exponential backoff (up to a few minutes) before the credentials are even checked. A throttled attempt returns unauthorized (1001). Successful logins are never delayed. Only auth.login is throttled; refresh, personal-access-token, and image calls are not.
Batch limits
The POST /rpc endpoint accepts JSON-RPC batches (an array of request objects), bounded as follows:
- at most 20 requests per batch — a larger batch is rejected before it is parsed;
- at most 4 requests execute concurrently;
- each method is capped at 10 seconds, so the worst-case batch completes well within the request timeout.
The single-method alias routes (POST /rpc/{method}) do not accept batches — send a batch to POST /rpc.
Body size
POST /rpcand the authentication endpoints cap the request body at 1 MiB — more than enough for metadata and control-plane calls.POST /api/v1/images(upload) allows a much larger body (the configured upload maximum, 100 MB by default). An oversized body returns413 Request Entity Too Large.
There are no per-second request quotas on the read/write methods; be a considerate client.