---
title: "Get rates"
method: POST
path: "/trading/rates"
tags: ["Trading"]
---

# Get rates

`POST /trading/rates`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/trading/rates`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/trading/rates/post.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve indicative exchange rate from specified providers for a given asset pair.
Rates are non-executable price signals intended for discovery and display purposes.

If `side` is omitted it defaults to `SELL`. Use `side: BOTH` to get rates for each side the provider supports in a single call; providers that support only one side return that side only. Every returned rate carries a concrete `BUY` or `SELL` side, never `BOTH`.

Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.

For detailed information about error codes and troubleshooting, please refer to our [API Error Codes documentation](https://developers.fireblocks.com/reference/api-error-codes).

## Headers

- `Idempotency-Key` string

## Request body

- RatesRequest
  - `scope` ScopeItem[], required: One or more providers/accounts to request rates from. At least one scope item is required.
    - `providerId` string, required: The ID of the provider associated with the account.
    - `accountId` string: The ID of the account associated with the provider.
  - `baseAssetId` string, required: The source asset identifier.
  - `quoteAssetId` string, required: The target asset identifier.
  - `baseAmount` string: The amount to convert from
  - `side` 'BUY' | 'SELL' | 'BOTH': Side to price on a quote, rate or offer request. BUY: receive base / pay quote; SELL: give base / receive quote; BOTH: request pricing for both sides at once. Providers that support only one of the sides return entries for that side only. BOTH is accepted on requests only, never on order execution requests, and responses never return it: every returned quote, rate or offer carries a concrete BUY or SELL. When omitted, defaults to SELL.

## Response `200`

Rate response

- RatesResponse
  - `rates` Rate[], required: List of indicative rates returned for the requested asset pair.
    - `via` union, required: Response-only counterpart of AccessType. Used by the `via` field of response schemas (Quote, Rate, OrderDetails, OrderSummary — and therefore QuoteOffer, RateOffer and Offer) so that the PROVIDER variant can expose `subProviders` without that field ever becoming reachable from a request body. Request schemas (CreateOrderRequest.via) keep using AccessType.
      - AccountAccessResponse
        - `type` 'PROVIDER_ACCOUNT', required: Indicates this uses account-based access
        - `providerId` string: The ID of the provider
        - `accountId` string, required: The ID of the account
      - DirectAccessResponse: Response-only counterpart of DirectAccess. Adds the server-populated `subProviders` field. Never use this schema in a request body — requests must keep using DirectAccess (via AccessType).
        - `type` 'PROVIDER', required: Indicates this uses direct provider access
        - `providerId` string, required: The ID of the provider
        - `subProviders` string[]: The underlying providers or tools that this direct-access route is composed of, in execution order. Response-only: this field is populated by the server and is never accepted from client requests.
    - `baseAssetId` string, required: The source asset identifier
    - `baseAssetRail` 'BLOCKCHAIN' | 'INTERNAL' | 'SWIFT' | 'IBAN' | 'US_WIRE' | 'ACH' | 'SEPA' | 'SPEI' | 'PIX' | 'LBT' | 'MOMO' | 'CHAPS' | 'PAYID' | 'INTERAC' | 'INTERNAL_TRANSFER' | 'CIPS' | 'NEQUI' | 'FPS_UK' | 'FPS_HK' | 'INSTA_PAY' | 'PESONET': Transfer rail: * **BLOCKCHAIN** - Transfer over the public blockchain * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts or same api key) * **SWIFT** - International wire transfer * **IBAN** - International Bank Account Number transfer * **US_WIRE** - Domestic wire transfer within the United States (e.g. FedWire) * **ACH** - Automated Clearing House transfer, typically takes longer but not as expensive as wire transfers * **SEPA** - Euro transfers within the SEPA zone * **SPEI** - Mexican interbank electronic payment system * **PIX** - Brazilian instant payment system * **LBT** - Local bank transfers * **MOMO** - Mobile money transfers (e.g. M-Pesa) * **CHAPS** - The Clearing House Automated Payment System (CHAPS) is a real-time gross settlement payment system used for transactions in the United Kingdom * **PAYID** - PayID payment identifier system (Australia) * **INTERAC** - Interac electronic funds transfer (Canada) * **INTERNAL_TRANSFER** - Internal transfer between accounts * **CIPS** - Cross-Border Interbank Payment System (China) * **NEQUI** - Nequi mobile payment (Colombia) * **FPS_UK** - UK Faster Payments (GBP) * **FPS_HK** - Hong Kong Faster Payment System (HKD) * **INSTA_PAY** - InstaPay instant payment (Philippines) * **PESONET** - PesoNet batch payment (Philippines)
    - `quoteAssetId` string, required: The target asset identifier
    - `quoteAssetRail` 'BLOCKCHAIN' | 'INTERNAL' | 'SWIFT' | 'IBAN' | 'US_WIRE' | 'ACH' | 'SEPA' | 'SPEI' | 'PIX' | 'LBT' | 'MOMO' | 'CHAPS' | 'PAYID' | 'INTERAC' | 'INTERNAL_TRANSFER' | 'CIPS' | 'NEQUI' | 'FPS_UK' | 'FPS_HK' | 'INSTA_PAY' | 'PESONET': Transfer rail: * **BLOCKCHAIN** - Transfer over the public blockchain * **INTERNAL** - Internal transfer within the same account (e.g. sub-accounts or same api key) * **SWIFT** - International wire transfer * **IBAN** - International Bank Account Number transfer * **US_WIRE** - Domestic wire transfer within the United States (e.g. FedWire) * **ACH** - Automated Clearing House transfer, typically takes longer but not as expensive as wire transfers * **SEPA** - Euro transfers within the SEPA zone * **SPEI** - Mexican interbank electronic payment system * **PIX** - Brazilian instant payment system * **LBT** - Local bank transfers * **MOMO** - Mobile money transfers (e.g. M-Pesa) * **CHAPS** - The Clearing House Automated Payment System (CHAPS) is a real-time gross settlement payment system used for transactions in the United Kingdom * **PAYID** - PayID payment identifier system (Australia) * **INTERAC** - Interac electronic funds transfer (Canada) * **INTERNAL_TRANSFER** - Internal transfer between accounts * **CIPS** - Cross-Border Interbank Payment System (China) * **NEQUI** - Nequi mobile payment (Colombia) * **FPS_UK** - UK Faster Payments (GBP) * **FPS_HK** - Hong Kong Faster Payment System (HKD) * **INSTA_PAY** - InstaPay instant payment (Philippines) * **PESONET** - PesoNet batch payment (Philippines)
    - `rate` string, required: The indicative exchange rate — the number of units of the quote asset that equal 1 unit of the base asset. For example, if base is BTC and quote is USD, a rate of 75000 means 1 BTC = 75,000 USD.
    - `side` 'BUY' | 'SELL': BUY: receive base / pay quote; SELL: give base / receive quote.
  - `errors` ScopeItemFailure[], required: Partial failures encountered while requesting rates. Empty when all rate requests succeed.
    - `providerId` string, required: Identifier of the provider for which the request failed.
    - `accountId` string: Identifier of the account for which the request failed (optional).
    - `error` TradingErrorSchema, required
      - `message` string, required
      - `code` number, required
      - `descriptor` string

## Other responses

- `400`: Bad request: invalid input parameters, malformed request body, or validation failure.
- `401`: Unauthorized. Missing / invalid JWT token in Authorization header.
- `403`: Forbidden: insufficient permissions, disabled feature, or restricted access.
- `429`: Rate limit exceeded: slow down and retry later.
- `5XX`: Internal error while processing the request.
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
