Translation API · Concept

Errors

Handle stable RFC 9457 Problem Details and correlate failures with Stepes support.

Public API failures use application/problem+json and the RFC 9457 Problem Details shape.

{
  "type": "https://apis.stepes.com/v2/errors/validation_failed",
  "title": "Request validation failed",
  "status": 422,
  "code": "validation_failed",
  "detail": "One or more request fields are invalid.",
  "instance": "/v2/projects",
  "request_id": "b09de4aa-3874-4991-b85c-0bc86e780511",
  "retryable": false
}

Stable Fields

Use code for application decisions. Do not parse title or detail. Validation failures may include an errors object keyed by request field.

Log the body request_id and the Stepes-Request-Id header. They identify the same request and should be included in support cases.

Status Categories

  • 400: malformed request or invalid cursor.
  • 401: invalid, expired, revoked, or disallowed API key.
  • 403: missing permission or the account is not enabled for the requested action.
  • 404: the requested resource was not found.
  • 409: idempotency conflict or invalid lifecycle transition.
  • 422: request shape or business validation failed.
  • 429: key rate limit exceeded.
  • 5xx: server or temporary processing failure.

Use retryable with HTTP status and the documented retry policy. Authentication errors deliberately do not disclose whether a particular key or account exists.

Related Reference