| 400 | invalid_request | The request doesn’t parse or a value is out of range: no keywords, limit over 50, a bad page range, no message, a malformed Idempotency-Key, a body that isn’t JSON. | Fix the request. field names the value. |
| 400 | unknown_dataset | A dataset id in datasets doesn’t exist. | Check the id against GET /api/v3/datasets. |
| 400 | invalid_filter | A filter the dataset doesn’t list, a value of the wrong type, filters for a dataset the search doesn’t cover, or a date given both at the top level and in filters. | Check the dataset’s filters on its Datasets page. |
| 401 | missing_api_key | No x-api-key header. | Send your key. See Authentication. |
| 401 | invalid_api_key | The key doesn’t exist or was deleted. | Create a key in the API Keys console. |
| 402 | quota_exhausted | A conversation message on a free plan whose monthly questions are used up. | Upgrade at rhizomeai.com, or wait for next month. |
| 403 | forbidden | The document’s dataset needs an enterprise plan, or a conversation’s Word, Excel or PowerPoint file needs a paid plan. | Contact support to upgrade. |
| 404 | not_found | No document, or no conversation in your account, has this id; or the path isn’t an API v3 endpoint. | Use a document_id from a search result, a conversation_id your account created, and a path from this reference. |
| 405 | method_not_allowed | The route doesn’t take this method. The Allow header names the ones it takes. | Use that method. |
| 409 | turn_in_flight | The conversation is still running its previous message. | Wait until polling it shows it finished, then send. |
| 409 | idempotency_key_in_use | A request with this Idempotency-Key is still being processed. | Retry shortly; you get that request’s result. |
| 413 | payload_too_large | The request body is over 1 MB. | Send a smaller body. |
| 422 | idempotency_key_reused | The Idempotency-Key was already used with a different message. | Use a new key for a new message. |
| 429 | rate_limited | The key sent 50 requests in the last minute. | Wait Retry-After seconds. See Rate Limits. |
| 429 | concurrent_search | Another search from your account is still running. | Wait for it to finish, or Retry-After seconds, then send this one. |
| 429 | concurrent_conversations | Your account has 3 conversations running, counting those on rhizomeai.com. | Wait for one to finish, or Retry-After seconds, then send this one. |
| 502 | upstream_error | A service the API depends on failed. | Retry later. |
| 503 | busy | Too many searches are running on the server. | Wait Retry-After seconds and retry. |
| 503 | upstream_error | Ranking the results failed. | Wait Retry-After seconds and retry. |
| 503 | timeout | Ranking the results ran out of time. | Wait Retry-After seconds and retry. |
| 504 | timeout | The search or the document read took too long. | Retry; for a search, fewer datasets or narrower keywords run faster. |
| 500 | internal_error | Something failed on our side. | Retry later; if it persists, send support the request_id. |