Before creating an FX quote or conversion, use GET /fx/asset-pairs to discover which
pairs are available and what amount limits apply. This endpoint returns all supported
sell/buy combinations, including fiat-to-fiat, fiat-to-crypto, and crypto-to-crypto pairs.
Always validate pair availability before attempting a quote or conversion. Requesting a
quote for an unsupported pair returns a 400 error with an invalid_request_error type.
The currency or asset being sold. Pattern: ^[A-Z]{2,10}$
buyCurrency
AssetCode
The currency or asset being bought. Pattern: ^[A-Z]{2,10}$
minAmount
string
Minimum sell amount for this pair. Amounts below this are rejected.
maxAmount
string
Maximum sell amount for this pair. Amounts above this are rejected.
The minAmount and maxAmount values refer to the sell side of the pair. If you are
specifying a buyAmount when creating a quote, the system will validate that the
calculated sell amount falls within these bounds.
Use asset pair data to validate parameters before calling POST /fx/quotes:
Copy
def validate_fx_request(pairs, sell_currency, buy_currency, sell_amount): """Validate an FX request against available pairs.""" matching = [ p for p in pairs["items"] if p["sellCurrency"] == sell_currency and p["buyCurrency"] == buy_currency ] if not matching: raise ValueError( f"Pair {sell_currency}/{buy_currency} is not available" ) pair = matching[0] amount = float(sell_amount) if amount < float(pair["minAmount"]): raise ValueError( f"Amount {sell_amount} is below minimum {pair['minAmount']}" ) if amount > float(pair["maxAmount"]): raise ValueError( f"Amount {sell_amount} exceeds maximum {pair['maxAmount']}" ) return True
Cache asset pair data for short periods (e.g., 5 minutes) to reduce API calls. Pair
availability and limits change infrequently. Always re-fetch before high-value operations
or when a quote request fails unexpectedly.