Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ratiofx.com/llms.txt

Use this file to discover all available pages before exploring further.

Rate limits

TierRequests per secondBurstApplies to
Standard10 req/s20 req burstDefault for all partners
Premium50 req/s100 req burstHigh-volume partners (configured during onboarding)
When you exceed your rate limit, the API returns HTTP 429 with a Retry-After header indicating how many seconds to wait before retrying.
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Too many requests",
    "timestamp": "2026-02-27T10:00:00Z",
    "request_id": "req_abc123"
  }
}

Error response format

All errors follow a consistent JSON structure:
{
  "error": {
    "code": "QUOTE_EXPIRED",
    "message": "Quote has expired; please re-request",
    "corridor": "USD-IDR",
    "timestamp": "2026-02-27T10:05:00Z",
    "request_id": "req_abc123"
  }
}
code
string
Machine-readable error code.
message
string
Human-readable description of the error.
corridor
string
Affected corridor, if applicable (e.g. USD-IDR).
timestamp
string
ISO 8601 server timestamp.
request_id
string
Unique request identifier. Include this when escalating to support.

FX Engine errors

These errors originate from the FX Engine and indicate conditions specific to quote and execution flows.
HTTPCodeDescriptionRetry guidance
400BELOW_MIN_TRANSACTION_SIZEAmount is below the corridor minimumNo — increase the amount
400DIRECTION_BLOCKEDTrade direction not permitted under the current system stateWait for state recovery
400ARB_CHECK_FAILEDQuote failed internal arbitrage validationRe-request a new quote
400QUOTE_EXPIREDFirm quote has expired before executionRequest a new firm quote
422NO_VIABLE_RFQ_QUOTENo acceptable external quote availableReduce size or wait
422CROSS_LEG_INSUFFICIENTInsufficient cross-corridor liquidityReduce size
503ORACLE_STALEOracle price data is outdatedWait a few seconds, then retry
503ORACLE_DEVIATIONOracle sources have diverged beyond thresholdWait for convergence
503QUOTE_HALTEDSystem is in HALT state; no new quotes acceptedMonitor /v1/system/state

General API errors

HTTPCodeDescriptionRetry guidance
401UNAUTHORIZEDMissing or invalid Bearer tokenNo — check your credentials
403FORBIDDENInsufficient permissions for this resourceNo — request access from your account manager
404NOT_FOUNDResource does not existNo — verify the endpoint path
429RATE_LIMITEDToo many requestsYes — respect the Retry-After header
500INTERNAL_ERRORUnexpected server errorYes — use exponential backoff

Retry guidance

HTTP rangeRecommended action
400Do not retry with the same parameters. Fix the request or request a new quote.
422Reduce size, try a different corridor, or wait for liquidity to recover.
429Wait for the duration in the Retry-After header, then retry.
500Retry with exponential backoff: 1s → 2s → 4s → 8s. Contact support if the error persists.
503Wait 5–30 seconds. Check /v1/system/state before retrying.