---
title: "Get an estimated conversion rate"
method: GET
path: "/conversions/rate"
tags: ["Conversions"]
---

# Get an estimated conversion rate

`GET /conversions/rate`

Returns an estimated rate for an FX conversion between two currencies.

The rate, amount & fees are indicative only and the rate is not held - the rate applied when you create a conversion may differ.

### Rate Limiting
This API enforces a stricter rate limit - if you exceed it you will receive a `429 Too Many Requests` response. We recommend requesting a rate only when you need one rather than polling for rates.

### Rate Availability
Rates are briefly unavailable during a short daily window (~90 seconds) while FX trading closes. During this window you will receive a `400 Bad Request` response with a message indicating that rates are temporarily unavailable - retry shortly.

## Query parameters

- `sellCurrency` string, required
- `buyCurrency` string, required
- `amount` integer, required

## Headers

- `Account` string

## Response `200`

Estimated rate retrieved successfully

- ConversionRate — An estimated conversion rate
  - `sell` ConversionRateSell, required — The sell side of the conversion rate
    - `amount` integer, required — The gross amount that would be sold in minor units, before fees. When `fees` is present the fee would be charged on this amount and only the remainder converted.
    - `currency` string, required — The three-letter ISO-4217 currency code being sold
    - `fees` object, nullable — The FX fees charged on the conversion, in minor units of the currency. Returned once the conversion has been priced. The fee is charged on exactly one side of the conversion, so `sell.fees` and `buy.fees` are mutually exclusive. Exactly one is ever present, depending on which side the fee was charged.
      - `ryft` object, nullable — Ryft's FX fee, charged on the gross amount of whichever side carries the fee. Only present when the conversion is performed under your account.
        - `amount` integer — The fee amount in minor units of the currency
      - `platform` object, nullable — The platform's FX fee, including Ryft's FX fee. Only present when the conversion is performed on behalf of a Sub-Account.
        - `amount` integer — The platform's gross FX fee in minor units, charged on the gross amount of whichever side carries the fee. This is the full fee before Ryft's fee is taken out of it; the platform retains `amount` minus `ryftFee.amount`.
        - `ryftFee` ConversionFee
          - `amount` integer — The fee amount in minor units of the currency
  - `buy` ConversionRateBuy, required — The buy side of the conversion rate
    - `amount` integer, required — The gross amount that would be bought in minor units, before fees. This is the sell amount converted at `rate`, after any sell-side fee has been deducted from it. When `fees` is present, the net amount credited to the balance would be this amount minus that fee.
    - `currency` string, required — The three-letter ISO-4217 currency code being bought
    - `fees` object, nullable — The FX fees charged on the conversion, in minor units of the currency. Returned once the conversion has been priced. The fee is charged on exactly one side of the conversion, so `sell.fees` and `buy.fees` are mutually exclusive. Exactly one is ever present, depending on which side the fee was charged.
      - `ryft` object, nullable — Ryft's FX fee, charged on the gross amount of whichever side carries the fee. Only present when the conversion is performed under your account.
        - `amount` integer — The fee amount in minor units of the currency
      - `platform` object, nullable — The platform's FX fee, including Ryft's FX fee. Only present when the conversion is performed on behalf of a Sub-Account.
        - `amount` integer — The platform's gross FX fee in minor units, charged on the gross amount of whichever side carries the fee. This is the full fee before Ryft's fee is taken out of it; the platform retains `amount` minus `ryftFee.amount`.
        - `ryftFee` ConversionFee
          - `amount` integer — The fee amount in minor units of the currency
  - `rate` number, required — The gross exchange rate that would be applied, before fees. `buy.amount` is the converted sell amount at this rate, net of any sell-side fee.
  - `estimatedSettlementDate` string, nullable — The estimated date the conversion will settle (ISO date format). This is an estimate and may not exactly match the final settlement date.

## Other responses

- `400` — One or more inputs are invalid, or rates are temporarily unavailable while FX trading closes
- `403` — You do not have access to this resource
- `429` — Too many requests - you have exceeded the rate limit for this endpoint
- `500` — An unexpected error occurred when executing this request

---

[API](https://skmtc.net/ryftpay/apis/ryft-payment-api.md) · [All operations](https://skmtc.net/ryftpay/apis/ryft-payment-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ryftpay/ryft-payment-api/revisions/778890ee7e72/schema)
