ResponsesResponse Headers

Response Headers

Every header the transmute API sets or reads: request correlation, API version, rate limit, quota, warnings, paging, idempotency, and the header forms of request options.

Correlation

HeaderOnMeaning
X-Request-IdEvery responseCorrelation id (req_<ulid>), echoed from your inbound X-Request-Id if you send one. Also present as requestId in error bodies. Quote this to support — it's how we find a request in our body-free logs.

API version

HeaderOnMeaning
X-Api-VersionEvery response on the /v1 API-key routes, including auth, rate-limit and quota rejectionsThe API version the request was served under: your X-Api-Version request header if you sent one, else your API key's pin, else the current version (2026-06-01). See Migrating from SR2025 to SR2026.

Rate limit (per-second token bucket)

Set on every authenticated response — see Rate Limits & Quotas:

HeaderMeaning
RateLimit-LimitRequests allowed in the current window
RateLimit-RemainingRequests remaining
RateLimit-ResetSeconds until the window resets
Retry-AfterOn 429 only — seconds to wait

Monthly quota

Set on the four metered routes (POST /v1/convert, /v1/normalize, /v1/validate, /v1/enrich):

HeaderMeaning
X-Quota-LimitThe pool this key draws from: your plan's monthly included conversions (live keys) or the one-time 250-request test allowance (test keys)
X-Quota-RemainingRemaining in that pool before this request, clamped at 0

Conversion metadata

HeaderOnMeaning
X-Transmute-WarningsBare-document responsesCount of warnings that couldn't ride in the body
X-Transmute-Warnings-LinkBare-document responsesLink to the warning registry
X-Transmute-PagesPaged text/plain MT outputNumber of MT pages concatenated in the response

Listing and streaming

HeaderOnMeaning
X-Transmute-Job-StatusGET /v1/jobs/{id}/itemsThe job's status (queued, processing, completed, failed, partial, expired), because the NDJSON item stream has no envelope to carry it. See Batch & Jobs.
X-Next-CursorGET /v1/history CSV exportsCursor for the next page; absent on the last page. JSON responses carry next_cursor in the body instead. See Request History.

Idempotency

HeaderMeaning
Idempotency-Replayed: trueThis response came from the 24-hour replay cache — it was not re-executed and not billed. Possible on POST /v1/convert, /v1/convert/batch, /v1/normalize, /v1/validate and /v1/enrich. See Idempotency.

Request headers you can send

HeaderMeaning
Authorization: Bearer ...Your API key or OAuth token
Idempotency-KeyOpt-in safe retries (1–255 chars)
X-Request-IdYour own correlation id, echoed back
X-Api-VersionPin date-versioned behaviour for this request (today: the default Standards Release). Supported value: 2026-06-01. An unknown value is invalid-input. Wins over the key's pin. Not read on POST /v1/oauth/token.
Acceptapplication/json (envelope, default), application/xml / text/plain (bare document)

Header forms of request options

When you send a raw message body instead of a JSON envelope, these headers carry the options. They have the lowest precedence: a JSON envelope option and the matching query parameter both win over the header.

HeaderQuery equivalentRoutesMeaning
X-Transmute-FromfromPOST /v1/convert, /v1/normalize, /v1/validate, /v1/verify, /v1/anonymizeSource format id (for example mt940); omit to auto-detect
X-Transmute-TotoPOST /v1/convert, /v1/verifyTarget format id
X-Transmute-To-VersiontoVersionPOST /v1/convertTarget message version
X-Transmute-SR-VersionsrVersionPOST /v1/convert, /v1/normalize, /v1/validate, GET /v1/samplesStandards Release (SR2025, SR2026); an explicit value always wins over the API version's default
X-Transmute-EnvelopeenvelopePOST /v1/convert (none, apphdr, fin), POST /v1/normalize (none, include)Message-envelope handling: which header block to emit on convert, or whether to include the source envelope in normalized JSON
X-Transmute-TracetracePOST /v1/converttrue attaches the mapping trace; needs a JSON response
X-Transmute-VerifyverifyPOST /v1/converttrue attaches the round-trip loss report; needs a JSON response
X-Transmute-Anonymize-SaltnonePOST /v1/anonymizeYour salt (16 to 256 characters). Header only; never accepted as a query parameter, so it never appears in a URL