Error responses
Every non-2xx response uses one structured envelope:
message is written to be actionable — surface it directly. Include request_id in any bug report.
Retryable vs not: auto-retry (respect
Retry-After) rate_limited · unavailable · video_not_ready; do not retry without changing the request invalid_argument · not_found · conflict.
HTTP status codes
Rate limits
X-RateLimit-Limit / -Remaining / -Resetheaders on every response.- Search: 5 QPS/user.
- Rolling 2-hour concurrent-indexing cap.
- Always respect
Retry-Afteron429/503.
