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

# Get all offers

`POST /trading/offers`

## Request

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

Retrieve all available offers across the workspace for a given asset pair.
Always operates in open scope — no provider or account selection required.
Returns a mix of indicative rates and committed quotes as applicable per provider.

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

If no slippageBps is provided, it defaults to 50 bps (0.5%).
Slippage and settlement configuration do not affect the returned rate.

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

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

- CreateOffersRequest
  - `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)
  - `baseAmount` string, required: The amount to get offers for
  - `slippageBps` integer: Slippage tolerance in basis points (bps) for defi quotes - 1 is 0.01% and 10000 is 100%. If not set, defaults to 50 bps (0.5%).
  - `settlement` DVPSettlement: Source/Destination accounts for the quote (must have for defi quotes)
    - `type` 'DVP', required
    - `sourceAccount` union, required
      - PlatformAccount
        - `type` 'VAULT_ACCOUNT' | 'CONNECTED_ACCOUNT' | 'FIAT_ACCOUNT', required
        - `accountId` string, required
      - ExternalAccount
        - `type` 'EXTERNAL', required
        - `senderInformation` union: Additional data for the external account, depending on the type used.
          - ExternalAccountMobileMoney
            - `type` 'MOBILE_MONEY_RAIL', required
            - `mobilePhoneNumber` string, required: Mobile phone number in E.164 format
            - `provider` 'M_PESA' | 'AIRTEL' | 'MTN' | 'TIGO' | 'ORANGE', required
            - `email` string, email, required
            - `successRedirectUrl` string: URL to redirect the end user back to after they complete the payment on the bank/mobile provider page (e.g., the merchant checkout page)
          - ExternalAccountLocalBankAfrica
            - `successRedirectUrl` string: URL to redirect the end user back to after they complete the payment on the bank/mobile provider page (e.g., the merchant checkout page)
    - `destinationAccount` union, required
      - InternalReference
        - `type` 'VAULT_ACCOUNT' | 'EXCHANGE_ACCOUNT' | 'UNMANAGED_WALLET' | 'FIAT_ACCOUNT' | 'CONNECTED_ACCOUNT', required
        - `accountId` string, required
      - OneTimeAddressReference
        - `type` 'ONE_TIME_ADDRESS', required
        - `address` string, required
        - `tag` string
  - `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 `201`

Offers response

- OffersResponse
  - `offers` Offer[], required: List of offers returned for the requested asset pair.
    - union
      - RateOffer
        - `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.
        - `offerType` 'RATE', required: The type of offer — RATE for indicative pricing.
      - QuoteOffer: A committed executable quote for a trading 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.
        - `id` string, required: The unique identifier of the quote.
        - `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)
        - `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)
        - `baseAmount` string, required: The amount of the base asset.
        - `quoteAmount` string, required: The amount of the quote asset.
        - `priceImpact` number: The estimated price impact as a decimal fraction.
        - `quoteMinAmount` string: The minimum guaranteed amount of the quote asset.
        - `isSlippageApplied` boolean: Indicates if slippage was applied to the quote.
        - `executionSteps` QuoteExecutionStep[]: Ordered list of execution steps for the quote.
          - `type` 'APPROVE' | 'PERMIT' | 'CONTRACT_CALL' | 'EXECUTE' | 'SETTLEMENT' | 'DELIVERY', required
          - `fee` union
            - object
              - …
            - object
              - …
        - `generalFees` Fee[]: General fees associated with the quote.
          - union
            - object
              - …
            - object
              - …
        - `side` 'BUY' | 'SELL', required: BUY: receive base / pay quote; SELL: give base / receive quote.
        - `expiresAt` string, required: The expiration time of the quote in ISO 8601 format, taken verbatim from the provider. This is not safety-margined by the server — integrators must apply their own margin if one is needed.
        - `requiredParticipantsIdentificationOnOrder` string: A JSON Schema Draft-7 document in string format describing the fields required when creating an order so clients can validate their order payload before sending.
        - `type` 'COMMITTED' | 'INDICATIVE', required: The type of the quote.
        - `offerType` 'QUOTE', required: The type of offer — QUOTE for executable committed quotes.
  - `errors` ScopeItemFailure[], required: Partial failures encountered while requesting offers. Empty when all offer 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)
