Every failure returns the same shape. We never include internal detail — no stack traces, no database messages.
{
"message": "A core needs between 1 and 5 images.",
"status": 400
}| Code | When |
|---|---|
| 400 | Validation failed, or an image URL could not be fetched or is not an image. |
| 401 | The API key is missing, malformed, revoked, or its organization was deleted. |
| 404 | The core or job does not exist, or belongs to another organization. |
| 409 | The core has no ready taste profile yet, so it cannot be searched. Poll the core until coreStatus is "ready", then retry. |
| 413 | The request body exceeded the 10MB limit. |
| 429 | Rate limit exceeded — 120 requests per minute per key, 5 core creations per minute per organization, or 20 product searches per minute per organization. |
| 500 | Something went wrong on our side. No internal detail is ever returned. |