The limits
- Per account, per surface. Your REST API budget and your MCP budget are counted separately — heavy agent traffic can’t starve your direct API usage, and vice-versa.
- Per minute. Limits are enforced in a fixed 60-second window.
- Default: 300 requests per minute per account for each surface. Your account’s actual ceiling is always returned in the
X-RateLimit-Limitheader — read it rather than hard-coding a number.
Rate-limit headers
Every programmatic response carries your current budget:When you’re limited
Exceeding the budget returns429 Too Many Requests in the standard error envelope, with a Retry-After header (seconds to wait):
Retrying safely
- Honor
Retry-After. On a429, wait the number of seconds it specifies before retrying. - Back off exponentially on repeated
429or5xxresponses (for example 1s, 2s, 4s, with jitter). GETrequests are always safe to retry — they don’t change state.- Writes are not idempotent. Oviond does not support idempotency keys, so a
POST/PUT/DELETEthat timed out may or may not have applied. Before blindly retrying a write, re-fetch the resource (or list) to check whether the first attempt succeeded, to avoid creating duplicates. - Stay under the limit proactively by watching
X-RateLimit-Remainingand pacing bulk jobs, rather than sprinting into a429.