Skip to main content
All public API errors return a consistent JSON envelope. The doc_url links to the section on this page for the returned code:
Every response also includes a Request-Id header. Include it when contacting support@replo.app about a failed request.

invalid_request

Status: 400. The request body or query parameters are malformed, or the Replo-Api-Version header is missing or unsupported. The message explains what failed validation; fix the request and retry.

invalid_credentials

Status: 401. The API token is missing or invalid. Send your public API key as a bearer token in the Authorization header. If the key was revoked, create a new one from your Replo Settings.

forbidden

Status: 403. The request is authenticated but was rejected outright. Note that a key missing a required scope does not get this response: scope and access failures surface as not_found so responses never confirm private resource IDs.

not_found

Status: 404. The resource doesn’t exist, the key lacks a required scope, or the key’s creator lost access. Replo returns the same status for all three cases, so API responses do not confirm private resource IDs. If a known resource returns 404, check the key’s scopes in your Replo Settings and its creator’s current project access.

conflict

Status: 409. The resource is in a state that conflicts with the request, such as a session with a pending interaction. Resolve the conflicting state and retry.

rate_limit_exceeded

Status: 429. Too many requests. Wait for the number of seconds in the Retry-After header before retrying.

internal_error

Status: 500. Something failed on Replo’s side. Retry the request; if it keeps failing, contact support@replo.app with the Request-Id header value.

service_unavailable

Status: 503. A temporary outage. Retry with exponential backoff.