Request limits
| Input | Limit |
|---|---|
| JSON body | 32 KiB |
| Images | 1–6 photos of one item |
| Image file size | 10 MiB each, 24 MiB combined |
| Image dimensions | 25 megapixels; 10,000 pixels per axis |
| Image formats | JPEG, PNG, WebP |
| Image URL | Public HTTPS; at most 4,096 characters |
| Hint | 500 UTF-8 bytes |
| Currency | USD |
| Idempotency key | 256 bytes; no surrounding whitespace |
| Retry protection | 24 hours from acceptance |
See Working with images for image hosting requirements. Local uploads in the playground have a separate 4 MiB per-file limit.
Processing time
Analyze is a synchronous operation that fetches images, identifies the item, and estimates its resale value before returning a result. Processing time varies by input and available evidence.
Allow a client timeout of approximately 100 seconds, as the playground does, rather than a short timeout suitable only for simple data reads. The analysis processing window is bounded to 75 seconds, with additional time for finalization. This is not a response-time guarantee.
If your client disconnects or times out, retry with the same idempotency key. Do not assume that a missing response means no credit was consumed.
Traffic limits
Analyze has sustained and burst limits for each account.
| Endpoint | Default sustained limit | Default burst limit |
|---|---|---|
| Analyze, per account | 2 requests per second | 5 requests |
Your Analyze limit is shared across every API key and Playground analysis for your account. Creating or rotating a key does not reset it. Your account may have adjusted limits; contact our team to confirm your account settings.
When a request is rate-limited, the API returns 429 rate_limited with Retry-After in seconds. Wait at least that long, then retry using bounded backoff with jitter. Preserve the same idempotency key and payload. If rate limiting is temporarily unavailable, requests return 503 rate_limit_unavailable with Retry-After.
Contact our team to adjust your account limits before scaling up.