API Console
Help

Revolut X Crypto Exchange REST API1.0.0

The Revolut X REST API helps you streamline your trading experience.

Before you get started

Learn more about the Revolut X Crypto Exchange REST API and its features — check the user guides. Read how to:

You can reach the guides at any time from the main navigation bar → Guides → Crypto Exchange.

You can retrieve public and authenticated market data, view your account data, and place and manage trading orders:

The base URL for all endpoints is:

https://revx.revolut.com/api/

The API has two types of endpoints that you can use:

  • Public endpoints:
  • Authenticated endpoints:
    • Market data: retrieve authenticated Revolut X market data and configuration.
    • Account data: retrieve balances, sub-accounts, trading volume, fee tiers, orders, fills, and trades associated with the provided API key.
    • Trading: place, cancel, and replace Revolut X orders.
    • RFQ trading: trade large blocks with the request-for-quote flow.

To see the reference for the specific endpoints and operations of this API, browse the menu on the left.

Authentication

Security scheme type:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Public market data

Retrieve public Revolut X market data and configuration.

Get order book

Retrieve the current public order book snapshot (bids and asks) for a specific trading pair.

Provide region to retrieve the order book for a specific region. The resolved region is returned in metadata.region.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Path parameters
symbol
stringrequired
Query parameters
limit
integer(int32)
region
string

Response

OK

The public Order Book snapshot for the given trading pair.

Body
object
data
objectrequired
metadata
objectrequired
get/2.0/public/order-book/{symbol}
curl -X GET "https://revx.revolut.com/api/2.0/public/order-book/BTC-USD?limit=50&region=EEA"

Response body samples

{
  "data": {
    "asks": [
      {
        "price": "4005.00",
        "quantity": "1.7000",
        "count": 3
      },
      {
        "price": "4010.00",
        "quantity": "2.1234",
        "count": 2
      }
    ],
    "bids": [
      {
        "price": "4000.00",
        "quantity": "0.25",
        "count": 1
      },
      {
        "price": "3995.00",
        "quantity": "4.4200",
        "count": 5
      }
    ]
  },
  "metadata": {
    "region": "UK",
    "timestamp": 1785313433816
  }
}

Get tickers

Retrieves the latest public market data snapshots for all supported currency pairs. The response includes the current best bid and ask prices, the calculated mid-price, the last traded price, and 24-hour market statistics for each active symbol.

Without a region or symbols, all available tickers are returned. Pass region to fetch tickers for a single region. Pass symbols to retrieve specific tickers.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Query parameters
symbols
array
region
string

Response

OK

The list of tickers.

Body
object

Public response containing ticker information for currency pairs.

data
arrayrequired
metadata
objectrequired
get/1.0/public/tickers
curl -X GET "https://revx.revolut.com/api/1.0/public/tickers?symbols=BTC-USD%2CETH-USD&region=EEA"

Response body samples

{
  "data": [
    {
      "symbol": "BTC/USD",
      "bid": "119950.00",
      "ask": "120050.00",
      "mid": "120000.00",
      "index_price": "119995.50",
      "last_price": "119980.00",
      "low_24h": "115000.00",
      "high_24h": "122500.00",
      "price_change_24h": "2480.00",
      "volume_24h": "135.42000000",
      "quote_volume_24h": "16250400.00",
      "region": "EEA"
    },
    {
      "symbol": "BTC/GBP",
      "bid": "89950.00",
      "ask": "90050.00",
      "mid": "90000.00",
      "index_price": "89995.50",
      "last_price": "89980.00",
      "low_24h": "87000.00",
      "high_24h": "92000.00",
      "price_change_24h": "1980.00",
      "volume_24h": "110.50000000",
      "quote_volume_24h": "9945000.00",
      "region": "UK"
    }
  ],
  "metadata": {
    "timestamp": 1785313433816
  }
}

Get OHLCV candles

Retrieve public historical market data (Open, High, Low, Close, Volume) for a specific symbol. If there is trading volume, the view is based on recent trades. If there is no volume, the view is based on the Mid Price (Bid/Ask average).

Provide region to retrieve candles for a specific region. The resolved region is returned in metadata.region.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Path parameters
symbol
stringrequired
Query parameters
interval
integer(int32)
since
integer(int64)
until
integer(int64)
region
string

Response

OK

List of OHLCV candles.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/public/candles/{symbol}
curl -X GET "https://revx.revolut.com/api/1.0/public/candles/BTC-USD?interval=5&since=1785309833816&until=1785313433816&region=EEA"

Response body samples

{
  "data": [
    {
      "start": 1785309833816,
      "open": "119800.00",
      "high": "120100.00",
      "low": "119700.00",
      "close": "120000.00",
      "volume": "0.25000000"
    },
    {
      "start": 1785310133816,
      "open": "120000.00",
      "high": "120250.00",
      "low": "119950.00",
      "close": "120150.00",
      "volume": "0.18000000"
    }
  ],
  "metadata": {
    "region": "EEA",
    "timestamp": 1785313433816
  }
}

Get trade history

Retrieve all public trade history. Omit symbol to retrieve trades for all trading pairs, or specify it to retrieve trades for one trading pair.

Without a region, trades from all regions are returned. Pass region to retrieve trades for a single region. Each returned trade includes the region it was executed in.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Query parameters
symbol
string
start_date
integer(int64)
end_date
integer(int64)
cursor
string
limit
integer(int32)
region
string

Response

OK

The list of public trades.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/public/trades/all
curl -X GET "https://revx.revolut.com/api/1.0/public/trades/all?symbol=BTC-USD&start_date=1785309833816&end_date=1785313433816&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=100&region=EEA"

Response body samples

{
  "data": [
    {
      "id": "3b2b202b-7668-43cf-a6c8-b3354e7f4c52",
      "symbol": "BTC/USD",
      "price": "119980.00",
      "quantity": "0.01000000",
      "side": "sell",
      "timestamp": 1785313433816,
      "region": "EEA"
    },
    {
      "id": "1e09b1f7-e2da-4b1e-92a0-4c2d4f3b0e1d",
      "symbol": "BTC/USD",
      "price": "120010.00",
      "quantity": "0.00500000",
      "side": "buy",
      "timestamp": 1785313433816,
      "region": "UK"
    }
  ],
  "metadata": {
    "timestamp": 1785313433816,
    "next_cursor": "ZGF0ZT0xNzU0Njg5MjE2MTI0O2lkPTFlMDliMWY3LWUyZGEtNGIxZS05MmEwLTRjMmQ0ZjNiMGUxZA=="
  }
}

Get currencies

Get public configuration for all currencies used on the exchange.

Provide region to filter currencies by a specific region.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Query parameters
region
string

Response

OK

Supported currencies with their details.

Body
object

Supported currencies, represented as an object containing other objects.

This outer object contains multiple key-value pairs, where each key is a currency code (e.g. BTC, ETH), and each corresponding value is an inner object containing details about that currency.

 < * > 

The inner object representing a single currency. It has the following schema:
ParameterDescription
symbolThe symbol of the currency.
nameThe full name of the currency.
scaleThe scale of the currency, that is, the number of decimal places used to express the currency's smallest unit.
For example, a scale of 8 means that the currency amount can be represented with precision up to eight decimal places, e.g. BTC: 0.00000001.
asset_typeThe type of the currency. Possible values are: fiat, crypto.
statusIndicates whether it is available for use.
<*>
object
get/1.0/public/configuration/currencies
curl -X GET "https://revx.revolut.com/api/1.0/public/configuration/currencies?region=EEA"

Response body samples

{
  "BTC": {
    "symbol": "BTC",
    "name": "Bitcoin",
    "scale": 8,
    "asset_type": "crypto",
    "status": "active"
  },
  "ETH": {
    "symbol": "ETH",
    "name": "Ethereum",
    "scale": 8,
    "asset_type": "crypto",
    "status": "active"
  }
}

Get currency pairs

Get public configuration for all traded currency pairs.

Provide region to filter pairs by a specific region.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Query parameters
region
string

Response

OK

Supported currency pairs with their details.

Body
object

Supported currency pairs, represented as an object containing other objects.

This outer object contains multiple key-value pairs, where each key is a currency pair code (e.g. BTC/USD, ETH/EUR), and each corresponding value is an inner object containing details about that currency pair.

 < * > 

The inner object representing a single currency pair. It has the following schema:
ParameterDescription
baseThe base currency.
quoteThe quote currency.
base_stepThe minimal step for changing the quantity in the base currency.
quote_stepThe minimal step for changing the amount in the quote currency.
min_order_sizeThe minimal order quantity (in the base currency) accepted by the exchange.
max_order_sizeThe maximal order quantity (in the base currency) accepted by the exchange.
min_order_size_quoteThe minimal order quantity (in the quote currency) accepted by the exchange.
statusThe status of the currency pair.
Indicates whether it is available for use.
Possible values are: active, inactive.
<*>
object
get/1.0/public/configuration/pairs
curl -X GET "https://revx.revolut.com/api/1.0/public/configuration/pairs?region=EEA"

Response body samples

{
  "BTC/USD": {
    "base": "BTC",
    "quote": "USD",
    "base_step": "0.0000001",
    "quote_step": "0.01",
    "min_order_size": "0.0000001",
    "max_order_size": "1000",
    "min_order_size_quote": "0.01",
    "status": "active"
  },
  "ETH/EUR": {
    "base": "ETH",
    "quote": "EUR",
    "base_step": "0.0000001",
    "quote_step": "0.01",
    "min_order_size": "0.00001",
    "max_order_size": "9000",
    "min_order_size_quote": "0.01",
    "status": "active"
  }
}

Market data

Retrieve authenticated Revolut X market data and configuration.

Get order book

Retrieve the current order book snapshot (bids and asks) for a specific trading pair.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
symbol
stringrequired
Query parameters
limit
integer(int32)

Response

OK

The Order Book snapshot for the given trading pair.

Body
object
data
objectrequired
metadata
objectrequired
get/1.0/order-book/{symbol}
curl -X GET "https://revx.revolut.com/api/1.0/order-book/BTC-USD?limit=50" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": {
    "asks": [
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "SELL",
        "p": "4005.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "1.7000",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "3",
        "ts": "CLOB",
        "pdt": 1785309833816
      },
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "SELL",
        "p": "4010.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "2.1234",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "2",
        "ts": "CLOB",
        "pdt": 1785309833816
      }
    ],
    "bids": [
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "BUYI",
        "p": "4000.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "0.25",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "1",
        "ts": "CLOB",
        "pdt": 1785309833816
      },
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "BUYI",
        "p": "3995.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "4.4200",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "5",
        "ts": "CLOB",
        "pdt": 1785309833816
      }
    ]
  },
  "metadata": {
    "timestamp": 1785313433816
  }
}

Get tickers

Retrieves the latest market data snapshots for all supported currency pairs. The response includes the current best bid and ask prices, the calculated mid-price, and the last traded price for each active symbol.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Query parameters
symbols
array

Response

OK

The list of tickers.

Body
object

Response containing ticker information for currency pairs.

data
arrayrequired
metadata
objectrequired
get/1.0/tickers
curl -X GET "https://revx.revolut.com/api/1.0/tickers?symbols=BTC-USD%2CETH-USD" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "symbol": "BTC/USD",
      "bid": "119950.00",
      "ask": "120050.00",
      "mid": "120000.00",
      "index_price": "119995.50",
      "last_price": "119980.00",
      "low_24h": "115000.00",
      "high_24h": "122500.00",
      "price_change_24h": "2480.00",
      "volume_24h": "135.42000000",
      "quote_volume_24h": "16250400.00"
    },
    {
      "symbol": "ETH/USD",
      "bid": "3998.00",
      "ask": "4002.00",
      "mid": "4000.00",
      "index_price": "4001.50",
      "last_price": "4001.00",
      "low_24h": "3850.00",
      "high_24h": "4120.00",
      "price_change_24h": "151.00",
      "volume_24h": "4250.00000000",
      "quote_volume_24h": "17000000.00"
    }
  ],
  "metadata": {
    "timestamp": 1785313433816
  }
}

Get OHLCV candles

Retrieve historical market data (Open, High, Low, Close, Volume) for a specific symbol. If there is trading volume, the view is based on recent trades. If there is no volume, the view is based on the Mid Price (Bid/Ask average).

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit500,000500,000 tokens / secondmax(5,000, candle count) tokens
Per-minute limit5,000,0005,000,000 tokens / minutemax(5,000, candle count) tokens

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
symbol
stringrequired
Query parameters
interval
integer(int32)
since
integer(int64)
until
integer(int64)

Response

OK

List of OHLCV candles.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/candles/{symbol}
curl -X GET "https://revx.revolut.com/api/1.0/candles/BTC-USD?interval=5&since=1785309833816&until=1785313433816" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "start": 1785309833816,
      "open": "119800.00",
      "high": "120100.00",
      "low": "119700.00",
      "close": "120000.00",
      "volume": "0.25000000"
    },
    {
      "start": 1785310133816,
      "open": "120000.00",
      "high": "120250.00",
      "low": "119950.00",
      "close": "120150.00",
      "volume": "0.18000000"
    }
  ],
  "metadata": {
    "timestamp": 1785313433816
  }
}

Get trade history

Retrieve a list of all trades for a specific symbol, not limited to the current client's activity.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / day in requested range
Per-minute limit1,0001,000 tokens / minute1 token / day in requested range

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
symbol
stringrequired
Query parameters
start_date
integer(int64)
end_date
integer(int64)
cursor
string
limit
integer(int32)

Response

OK

The list of trades.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/trades/all/{symbol}
curl -X GET "https://revx.revolut.com/api/1.0/trades/all/BTC-USD?start_date=1785309833816&end_date=1785313433816&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=1000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "tdt": 1785309833816,
      "aid": "BTC",
      "anm": "Bitcoin",
      "p": "120050.00",
      "pc": "USD",
      "pn": "MONE",
      "q": "0.00300000",
      "qc": "BTC",
      "qn": "UNIT",
      "ve": "REVX",
      "pdt": 1785309833816,
      "vp": "REVX",
      "tid": "80654a036323311cb0ea28462b42db6d",
      "s": "buy"
    }
  ],
  "metadata": {
    "timestamp": 1785313433816,
    "next_cursor": "ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
  }
}

Get currencies

Get configuration for active currencies available in the authenticated client's region.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired

Response

OK

Supported currencies with their details.

Body
object

Supported currencies, represented as an object containing other objects.

This outer object contains multiple key-value pairs, where each key is a currency code (e.g. BTC, ETH), and each corresponding value is an inner object containing details about that currency.

 < * > 

The inner object representing a single currency. It has the following schema:
ParameterDescription
symbolThe symbol of the currency.
nameThe full name of the currency.
scaleThe scale of the currency, that is, the number of decimal places used to express the currency's smallest unit.
For example, a scale of 8 means that the currency amount can be represented with precision up to eight decimal places, e.g. BTC: 0.00000001.
asset_typeThe type of the currency. Possible values are: fiat, crypto.
statusIndicates whether it is available for use.
<*>
object
get/1.0/configuration/currencies
curl -X GET "https://revx.revolut.com/api/1.0/configuration/currencies" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "BTC": {
    "symbol": "BTC",
    "name": "Bitcoin",
    "scale": 8,
    "asset_type": "crypto",
    "status": "active"
  },
  "ETH": {
    "symbol": "ETH",
    "name": "Ethereum",
    "scale": 8,
    "asset_type": "crypto",
    "status": "active"
  }
}

Get currency pairs

Get configuration for active traded currency pairs available in the authenticated client's region.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired

Response

OK

Supported currency pairs with their details.

Body
object

Supported currency pairs, represented as an object containing other objects.

This outer object contains multiple key-value pairs, where each key is a currency pair code (e.g. BTC/USD, ETH/EUR), and each corresponding value is an inner object containing details about that currency pair.

 < * > 

The inner object representing a single currency pair. It has the following schema:
ParameterDescription
baseThe base currency.
quoteThe quote currency.
base_stepThe minimal step for changing the quantity in the base currency.
quote_stepThe minimal step for changing the amount in the quote currency.
min_order_sizeThe minimal order quantity (in the base currency) accepted by the exchange.
max_order_sizeThe maximal order quantity (in the base currency) accepted by the exchange.
min_order_size_quoteThe minimal order quantity (in the quote currency) accepted by the exchange.
statusThe status of the currency pair.
Indicates whether it is available for use.
Possible values are: active, inactive.
<*>
object
get/1.0/configuration/pairs
curl -X GET "https://revx.revolut.com/api/1.0/configuration/pairs" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "BTC/USD": {
    "base": "BTC",
    "quote": "USD",
    "base_step": "0.0000001",
    "quote_step": "0.01",
    "min_order_size": "0.0000001",
    "max_order_size": "1000",
    "min_order_size_quote": "0.01",
    "status": "active"
  },
  "ETH/EUR": {
    "base": "ETH",
    "quote": "EUR",
    "base_step": "0.0000001",
    "quote_step": "0.01",
    "min_order_size": "0.00001",
    "max_order_size": "9000",
    "min_order_size_quote": "0.01",
    "status": "active"
  }
}

Account data

Retrieve balances, sub-accounts, trading volume, fee tiers, orders, fills, and trades associated with the provided API key.

Get balances

Get crypto exchange account balances for the requesting user. The user is resolved by the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired

Response

OK

The list of available balances.

Body
array of object
currency
stringrequired
available
string(decimal)required
staked
string(decimal)
reserved
string(decimal)required
total
string(decimal)required
get/1.0/balances
curl -X GET "https://revx.revolut.com/api/1.0/balances" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

[
  {
    "currency": "BTC",
    "available": "1.25000000",
    "reserved": "0.10000000",
    "total": "1.35000000"
  },
  {
    "currency": "ETH",
    "available": "10.00000000",
    "reserved": "0.00000000",
    "staked": "32.00000000",
    "total": "42.00000000"
  },
  {
    "currency": "USD",
    "available": "5400.50",
    "reserved": "100.00",
    "total": "5500.50"
  }
]

Get sub-accounts

List the Revolut X sub-accounts and the primary account of the authenticated user with their total balances converted to a requested currency, or to USD by default. The user context is resolved based on the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit1010 tokens / second1 token / request
Per-minute limit100100 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Query parameters
convert_to
string

Response

OK

The list of sub-accounts.

Body
object
data
objectrequired
metadata
objectrequired
get/1.0/sub-accounts
curl -X GET "https://revx.revolut.com/api/1.0/sub-accounts?convert_to=USD" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": {
    "sub_accounts": [
      {
        "name": "Primary",
        "total_balance": {
          "amount": "53200.50",
          "currency": "USD"
        },
        "created_date": 1733011200000,
        "updated_date": 1785313433816
      },
      {
        "name": "TradingBot",
        "total_balance": {
          "amount": "12500.00",
          "currency": "USD"
        },
        "created_date": 1774953600000,
        "updated_date": 1785223200000
      }
    ]
  },
  "metadata": {
    "timestamp": 1785313433816,
    "convert_to": "USD"
  }
}

Get active orders

Get active crypto exchange orders for the requesting user. The user is resolved by the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Query parameters
symbols
array
order_states
array
order_types
array
side
string
cursor
string
limit
integer(int32)

Response

OK

The list of active orders.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/orders/active
curl -X GET "https://revx.revolut.com/api/1.0/orders/active?symbols=BTC-USD%2CETH-USD&order_states=new%2Cpartially_filled&order_types=limit%2Cconditional&side=buy&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=100" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "id": "7a52e92e-8639-4fe1-abaa-68d3a2d5234b",
      "client_order_id": "984a4d8a-2a9b-4950-822f-2a40037f02bd",
      "symbol": "BTC/USD",
      "side": "buy",
      "type": "limit",
      "quantity": "0.002",
      "filled_quantity": "0",
      "leaves_quantity": "0.002",
      "price": "120000.00",
      "status": "new",
      "time_in_force": "gtc",
      "execution_instructions": [
        "allow_taker"
      ],
      "created_date": 1785309833816,
      "updated_date": 1785313433816
    }
  ],
  "metadata": {
    "timestamp": 1785313433816,
    "next_cursor": "ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
  }
}

Get historical orders

Get historical crypto exchange orders for the requesting user. The user is resolved by the provided API key.

TWAP slices are not returned in this list: a TWAP order appears as a single order of type=twap, without its individual slice orders. To get the slices, retrieve the TWAP order with get order details and use the linked_ids returned in the order details.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / day in requested range
Per-minute limit1,0001,000 tokens / minute1 token / day in requested range

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Query parameters
symbols
array
order_states
array
order_types
array
start_date
integer(int64)
end_date
integer(int64)
cursor
string
limit
integer(int32)

Response

OK

The list of historical orders.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/orders/historical
curl -X GET "https://revx.revolut.com/api/1.0/orders/historical?symbols=BTC-USD%2CETH-USD&order_states=filled%2Crejected&order_types=market%2Climit&start_date=1785309833816&end_date=1785313433816&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=1000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "id": "7a52e92e-8639-4fe1-abaa-68d3a2d5234b",
      "client_order_id": "984a4d8a-2a9b-4950-822f-2a40037f02bd",
      "symbol": "BTC/USD",
      "side": "buy",
      "type": "limit",
      "quantity": "0.002",
      "filled_quantity": "0",
      "leaves_quantity": "0.002",
      "price": "120000.00",
      "status": "filled",
      "time_in_force": "gtc",
      "execution_instructions": [
        "allow_taker"
      ],
      "created_date": 1785309833816,
      "updated_date": 1785313433816
    }
  ],
  "metadata": {
    "timestamp": 1785313433816,
    "next_cursor": "ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
  }
}

Get order details by ID

Retrieve specific order details by ID. The user context is resolved based on the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
venue_order_id
string(uuid)required

Response

OK - Order details.

Body
object
data
objectrequired
get/1.0/orders/{venue_order_id}
curl -X GET "https://revx.revolut.com/api/1.0/orders/123e4567-e89b-12d3-a456-426614174000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": {
    "id": "7a52e92e-8639-4fe1-abaa-68d3a2d5234b",
    "client_order_id": "984a4d8a-2a9b-4950-822f-2a40037f02bd",
    "symbol": "BTC/USD",
    "side": "buy",
    "type": "limit",
    "quantity": "0.002",
    "filled_quantity": "0",
    "leaves_quantity": "0.002",
    "amount": "240.00",
    "filled_amount": "0",
    "price": "120000.00",
    "average_fill_price": "0",
    "total_fee": "0",
    "status": "new",
    "time_in_force": "gtc",
    "fee_currency": "USD",
    "execution_instructions": [
      "allow_taker"
    ],
    "created_date": 1785309833816,
    "updated_date": 1785313433816
  }
}

Get fills of order by ID

Retrieves the fills (trades) associated with a specific order belonging to the client. The user context is resolved based on the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
venue_order_id
string(uuid)required

Response

OK - Order fills retrieved successfully

Body
object
data
arrayrequired
get/1.0/orders/fills/{venue_order_id}
curl -X GET "https://revx.revolut.com/api/1.0/orders/fills/123e4567-e89b-12d3-a456-426614174000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "tdt": 1785309833816,
      "aid": "BTC",
      "anm": "Bitcoin",
      "p": "119900.00",
      "pc": "USD",
      "pn": "MONE",
      "q": "0.00100000",
      "qc": "BTC",
      "qn": "UNIT",
      "ve": "REVX",
      "pdt": 1785309833816,
      "vp": "REVX",
      "tid": "ad3e8787ab623ba5a1dfea53819be6f9",
      "oid": "2affb2ac-4cf7-4bbf-b7b2-fc1e885bdc2c",
      "s": "buy",
      "im": false
    }
  ]
}

Get trading volume

Retrieve the total trading volume of the authenticated user over the requested interval, aggregated separately for each trading type. The user context is resolved based on the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit1010 tokens / second1 token / request
Per-minute limit100100 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Query parameters
interval_days
integer(int32)

Response

OK

The trading volume per product type.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/trades/private/volume
curl -X GET "https://revx.revolut.com/api/1.0/trades/private/volume?interval_days=30" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "type": "spot",
      "amount": "12500000.00",
      "currency": "USD",
      "start_date": 1782721433816,
      "end_date": 1785313433816
    },
    {
      "type": "futures",
      "amount": "8250000.00",
      "currency": "USD",
      "start_date": 1782721433816,
      "end_date": 1785313433816
    }
  ],
  "metadata": {
    "timestamp": 1785313433816
  }
}

Get account trades

Retrieve the trade history (fills) for the authenticated client. The user context is resolved based on the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / day in requested range
Per-minute limit1,0001,000 tokens / minute1 token / day in requested range

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
symbol
stringrequired
Query parameters
start_date
integer(int64)
end_date
integer(int64)
cursor
string
limit
integer(int32)

Response

OK

The list of trades.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/trades/private/{symbol}
curl -X GET "https://revx.revolut.com/api/1.0/trades/private/BTC-USD?start_date=1785309833816&end_date=1785313433816&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=1000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "tdt": 1785309833816,
      "aid": "BTC",
      "anm": "Bitcoin",
      "p": "120050.00",
      "pc": "USD",
      "pn": "MONE",
      "q": "0.00300000",
      "qc": "BTC",
      "qn": "UNIT",
      "ve": "REVX",
      "pdt": 1785309833816,
      "vp": "REVX",
      "tid": "80654a036323311cb0ea28462b42db6d",
      "oid": "2affb2ac-4cf7-4bbf-b7b2-fc1e885bdc2c",
      "s": "buy",
      "im": false
    }
  ],
  "metadata": {
    "timestamp": 1785313433816,
    "next_cursor": "ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
  }
}

Get transactions

Retrieve a list of account transactions for the authenticated client. This endpoint returns legs with the net amount (after fees) for current account transactions. To get more data such as fees, counterparty account details, on-chain information, etc., call the Get transaction details by ID endpoint. The user context is resolved based on the provided API key.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / day in requested range
Per-minute limit1,0001,000 tokens / minute1 token / day in requested range

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Query parameters
start_date
integer(int64)
end_date
integer(int64)
types
array
statuses
array
currencies
array
cursor
string
limit
integer(int32)

Response

OK

The list of transactions.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/transactions
curl -X GET "https://revx.revolut.com/api/1.0/transactions?start_date=1785309833816&end_date=1785313433816&types=buy%2Csell&statuses=completed&currencies=BTC%2CUSD&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=1000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
      "status": "completed",
      "type": "buy",
      "source": {
        "amount": "1000.00",
        "currency": "USD",
        "account": {
          "type": "revolut"
        }
      },
      "destination": {
        "amount": "0.01",
        "currency": "BTC",
        "account": {
          "type": "revolut_x"
        }
      },
      "created_date": 1700000000000,
      "processed_date": 1700000001000
    },
    {
      "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "status": "completed",
      "type": "reward",
      "destination": {
        "amount": "0.005",
        "currency": "ETH",
        "account": {
          "type": "revolut_x"
        }
      },
      "created_date": 1700000100000,
      "processed_date": 1700000101000
    },
    {
      "id": "c3d4e5f6-a7b8-9012-cdef-234567890123",
      "status": "pending",
      "type": "send",
      "source": {
        "amount": "0.5",
        "currency": "BTC",
        "account": {
          "type": "revolut_x"
        }
      },
      "destination": {
        "amount": "0.5",
        "currency": "BTC",
        "account": {
          "type": "external_crypto_wallet"
        }
      },
      "created_date": 1700000200000
    }
  ],
  "metadata": {
    "timestamp": 1785313433816,
    "next_cursor": "ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
  }
}

Get transaction details by ID

Retrieve details of a single transaction by its ID.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
transaction_id
string(uuid)required

Response

OK - Transaction details.

The legs included in a transaction depend on the transaction type:

Transaction typeSource legDestination leg
buy
sell
receive
send
reward
stake
un_stake
Body
object

Full details of a single transaction.

The legs included in a transaction depend on the transaction type:

Transaction typeSource legDestination leg
buy
sell
receive
send
reward
stake
un_stake

In addition to the list representation, each leg may include the fee paid and full details of the account involved (display name and, for external crypto wallets, the on-chain address), and the transaction may include the venue order ID, on-chain information, and a description.

id
string(uuid)required
status
stringrequired
type
stringrequired
source
object
destination
object
created_date
integer(int64)required
processed_date
integer(int64)
order_id
string(uuid)
crypto_transaction_hash
string
network
string
description
string
get/1.0/transactions/{transaction_id}
curl -X GET "https://revx.revolut.com/api/1.0/transactions/123e4567-e89b-12d3-a456-426614174000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
  "status": "completed",
  "type": "buy",
  "source": {
    "amount": "1001.00",
    "currency": "USD",
    "fee": "1.00",
    "fee_currency": "USD",
    "account": {
      "type": "revolut_x",
      "display_name": "Crypto Primary"
    }
  },
  "destination": {
    "amount": "0.01",
    "currency": "BTC",
    "account": {
      "type": "revolut_x",
      "display_name": "Crypto Primary"
    }
  },
  "order_id": "2affb2ac-4cf7-4bbf-b7b2-fc1e885bdc2c",
  "description": "Buy BTC",
  "created_date": 1700000000000,
  "processed_date": 1700000001000
}

Get fee tiers

Retrieve the maker and taker fee schedules of the authenticated user with the tier currently applied to their account. The user context is resolved based on the provided API key.

Each product type has its own fee ladder, and the current tier is determined by the user's total trading volume over the last 30 days.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit1010 tokens / second1 token / request
Per-minute limit100100 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired

Response

OK

The fee tiers per product type.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/configuration/fees/tiers
curl -X GET "https://revx.revolut.com/api/1.0/configuration/fees/tiers" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": [
    {
      "type": "spot",
      "current_tier": 1,
      "currency": "USD",
      "tiers": [
        {
          "tier": 0,
          "volume_from": "0",
          "volume_to": "10000000",
          "maker_fee": "0",
          "taker_fee": "0.0010"
        },
        {
          "tier": 1,
          "volume_from": "10000000",
          "volume_to": "50000000",
          "maker_fee": "0",
          "taker_fee": "0.0008"
        },
        {
          "tier": 2,
          "volume_from": "50000000",
          "maker_fee": "0",
          "taker_fee": "0.0005"
        }
      ]
    },
    {
      "type": "futures",
      "current_tier": 0,
      "currency": "USD",
      "tiers": [
        {
          "tier": 0,
          "volume_from": "0",
          "volume_to": "25000000",
          "maker_fee": "0.0001",
          "taker_fee": "0.0009"
        },
        {
          "tier": 1,
          "volume_from": "25000000",
          "maker_fee": "0",
          "taker_fee": "0.0004"
        }
      ]
    }
  ],
  "metadata": {
    "timestamp": 1785313433816
  }
}

Trading

Place, cancel, and replace Revolut X orders.

Place order

Place a new order. The user is resolved by the provided API key.

The following order types are supported via order_configuration:

  • market — executed immediately at the current market price.
  • limit — executed only if the asset reaches a specified price.
  • conditional — submitted once the market price reaches the specified trigger_price.
  • tpsl — sets or adjusts the Take Profit and Stop Loss levels for a position.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit1010 tokens / second1 token / request
Per-day limit1,0001,000 tokens / day1 token / request

The daily limit does not apply to sub-accounts. Learn more about sub-accounts.

The maximum number of active orders per account or sub-account is 300. The total maximum across all accounts is 1,000.

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Request body
client_order_id
string(uuid)required
symbol
stringrequired
side
stringrequired
order_configuration
objectrequired

Response

OK

The successfully placed order details.

Body
object
data
objectrequired
post/1.0/orders
curl -X POST "https://revx.revolut.com/api/1.0/orders" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "Content-Type: application/json" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+" \
  -d '{
  "client_order_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "symbol": "BTC-USD",
  "side": "sell",
  "order_configuration": {
    "limit": {
      "base_size": "0.1",
      "price": "120000.50",
      "execution_instructions": [
        "post_only"
      ]
    }
  }
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Request body samples

{
  "client_order_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "symbol": "BTC-USD",
  "side": "sell",
  "order_configuration": {
    "limit": {
      "base_size": "0.1",
      "price": "120000.50",
      "execution_instructions": [
        "post_only"
      ]
    }
  }
}

Response body samples

{
  "data": {
    "venue_order_id": "7a52e92e-8639-4fe1-abaa-68d3a2d5234b",
    "client_order_id": "984a4d8a-2a9b-4950-822f-2a40037f02bd",
    "state": "new"
  }
}

Cancel all active orders

Cancels all open limit, conditional, Take Profit/Stop Loss (TPSL), and TWAP orders associated with the authenticated account.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired

Response

OK - Orders cancelled successfully.

delete/1.0/orders
curl -X DELETE "https://revx.revolut.com/api/1.0/orders" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

No contentThis response does not have a body.

Cancel order by ID

Cancel an active order by its Venue ID. The ID can refer to a limit, conditional, Take Profit/Stop Loss (TPSL), or TWAP order.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit100100 tokens / second1 token / request
Per-minute limit1,0001,000 tokens / minute1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
venue_order_id
string(uuid)required

Response

OK - Order deleted successfully.

delete/1.0/orders/{venue_order_id}
curl -X DELETE "https://revx.revolut.com/api/1.0/orders/123e4567-e89b-12d3-a456-426614174000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

No contentThis response does not have a body.

Replace order

Replace an existing order. The user is resolved by the provided API key.

For limit and market orders, the venue order ID of the order will be updated as well.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit1010 tokens / second1 token / request

Replacing orders does not count towards the daily limit.

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
venue_order_id
string(uuid)required
Request body

Request to replace an existing open order with a new one, atomically cancelling the original. Only the fields provided in the request are updated; omitted fields are inherited from the original order (with the exception of sizes, which may be recalculated to preserve the counter-side amount — see field docs).

The applicable fields depend on the order type:

  • For limit orders: base_size, quote_size, price, time_in_force, execution_instructions.
  • For conditional orders: base_size, quote_size, conditional.
  • For tpsl orders: base_size, take_profit, stop_loss.
client_order_id
string(uuid)required
base_size
string(decimal)
quote_size
string(decimal)
price
string(decimal)
time_in_force
string
execution_instructions
array
conditional
object
take_profit
object | null
stop_loss
object | null

Response

OK

The successfully replaced order details.

Body
object
data
objectrequired
put/1.0/orders/{venue_order_id}
curl -X PUT "https://revx.revolut.com/api/1.0/orders/123e4567-e89b-12d3-a456-426614174000" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "Content-Type: application/json" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+" \
  -d '{
  "client_order_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "base_size": "0.1",
  "price": "120000.50",
  "execution_instructions": [
    "post_only"
  ]
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Request body samples

{
  "client_order_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "base_size": "0.1",
  "price": "120000.50",
  "execution_instructions": [
    "post_only"
  ]
}

Response body samples

{
  "data": {
    "venue_order_id": "7a52e92e-8639-4fe1-abaa-68d3a2d5234b",
    "client_order_id": "984a4d8a-2a9b-4950-822f-2a40037f02bd",
    "state": "new"
  }
}

RFQ trading

Trade large blocks with the Request for Quote (RFQ) flow: request an RFQ quote, accept it to place an order, and check RFQ limits.

Availability

RFQ trading is available to UK customers with passed KYC/KYB. Additionally, UK retail clients must be categorised as High Net Worth investors.

For more information, see the guides: RFQ trading.

Request RFQ quote

Request an RFQ quote for a large-block trade.

Availability

RFQ trading is available to UK customers with passed KYC/KYB. Additionally, UK retail clients must be categorised as High Net Worth investors.

Provide exactly one of:

  • qty: The quantity to trade, in the pair's base currency (e.g., BTC in BTC/USD).
  • amount: The amount to spend or receive, in the pair's counter currency (e.g., USD in BTC/USD).

The returned signature is a signed, short-lived token that binds the quote to your account. To execute the trade, pass it to Accept RFQ quote before expires_at.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit1010 tokens / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Required API key permissions

To call this endpoint, your API key must have the following permissions (scopes):

PermissionMapped scopeAudience
Viewrest.otc.viewUsers
Viewagent.otc.viewAgentic clients

For more information, see the guides: RFQ trading.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Request body

RFQ quote request.

Exactly one of qty or amount must be provided.

symbol
stringrequired
side
stringrequired
qty
string(decimal) | null
amount
string(decimal) | null

Response

OK

The RFQ quote, including the signed token to accept it.

Body
object

An RFQ quote response with data and response metadata.

data
objectrequired
metadata
objectrequired
post/1.0/otc/quotes
curl -X POST "https://revx.revolut.com/api/1.0/otc/quotes" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "Content-Type: application/json" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+" \
  -d '{
  "symbol": "BTC/USD",
  "side": "buy",
  "qty": "2.5"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Request body samples

{
  "symbol": "BTC/USD",
  "side": "buy",
  "qty": "2.5"
}

Response body samples

{
  "data": {
    "quote_id": "550e8400-e29b-41d4-a716-446655440000",
    "symbol": "BTC/USD",
    "side": "buy",
    "price": "79979.90",
    "qty": "2.5",
    "order_book_price": "80100",
    "expires_at": 1785313438816,
    "signature": "ZXlKaGRXUWlPaUpsTm1RME1qVTNKR1ZGVmpFd01UQmlNakF3TkRVMFlqRmtOREU1WVdGaE5qRTNPRFV3TWpWbE9XWlpNRFUyWlROa1pUUXdPR1JtTmpnMFpUZzBabU0yT1RJM09XWlpNR0U0WkRsak4yRmla",
    "liquidity_status": "filled"
  },
  "metadata": {
    "timestamp": 1785313433816
  }
}

Accept RFQ quote

Accept a previously requested RFQ quote and place the RFQ order.

Availability

RFQ trading is available to UK customers with passed KYC/KYB. Additionally, UK retail clients must be categorised as High Net Worth investors.

Pass the signature token from the Request RFQ quote response. The quote's terms (pair, side, size, and price) are taken from the signed token — they cannot be modified.

The signed token is bound to your account. Treat it as single-use: once the downstream order has been submitted, retrying it does not create a second order. If acceptance fails before submission, request a new quote rather than relying on replay.

  • Tokens that are invalid or tampered with are rejected with 400.
  • Tokens that have expired are rejected with 422.
  • Tokens issued to a different account are rejected with 403.

If immediate execution or the fincrime decision rejects the order, the endpoint returns status: rejected with a reason. Insufficient balance and other processing failures are returned as HTTP errors instead.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit55 tokens / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Required API key permissions

To call this endpoint, your API key must have the following permissions (scopes):

PermissionMapped scopeAudience
Traderest.otc.tradeUsers
Tradeagent.otc.tradeAgentic clients

For more information, see the guides: RFQ trading.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Request body

The signed quote token to accept.

signature
stringrequired

Response

OK

The placed RFQ order.

Body
object

The placed RFQ order response with data and response metadata.

data
objectrequired
metadata
objectrequired
post/1.0/otc/orders
curl -X POST "https://revx.revolut.com/api/1.0/otc/orders" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "Content-Type: application/json" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+" \
  -d '{
  "signature": "ZXlKaGRXUWlPaUpsTm1RME1qVTNKR1ZGVmpFd01UQmlNakF3TkRVMFlqRmtOREU1WVdGaE5qRTNPRFV3TWpWbE9XWlpNRFUyWlROa1pUUXdPR1JtTmpnMFpUZzBabU0yT1RJM09XWlpNR0U0WkRsak4yRmla"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Request body samples

{
  "signature": "ZXlKaGRXUWlPaUpsTm1RME1qVTNKR1ZGVmpFd01UQmlNakF3TkRVMFlqRmtOREU1WVdGaE5qRTNPRFV3TWpWbE9XWlpNRFUyWlROa1pUUXdPR1JtTmpnMFpUZzBabU0yT1RJM09XWlpNR0U0WkRsak4yRmla"
}

Response body samples

{
  "data": {
    "transaction_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "filled"
  },
  "metadata": {
    "timestamp": 1785313433816
  }
}

Get RFQ limits

Get the minimum RFQ trade amount for a currency pair.

Availability

RFQ trading is available to UK customers with passed KYC/KYB. Additionally, UK retail clients must be categorised as High Net Worth investors.

The minimum is expressed in the pair's counter currency. Requesting an RFQ quote below this minimum is rejected with 400.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit1010 tokens / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Required API key permissions

To call this endpoint, your API key must have the following permissions (scopes):

PermissionMapped scopeAudience
Viewrest.otc.viewUsers
Viewagent.otc.viewAgentic clients

For more information, see the guides: RFQ trading.

Request

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Query parameters
symbol
stringrequired

Response

OK

The minimum RFQ trade amount for the pair.

Body
object

The minimum RFQ trade amount response with data and response metadata.

data
objectrequired
metadata
objectrequired
get/1.0/otc/limits
curl -X GET "https://revx.revolut.com/api/1.0/otc/limits?symbol=BTC%2FUSD" \
  -H "X-Revx-API-Key: <yourSecretApiKey>" \
  -H "X-Revx-Timestamp: 1785313433816" \
  -H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"
Authorization
SecuritySchemaType:apiKey
Header parameter name:X-Revx-API-Key

The API key obtained from the Revolut X web app. It takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.

A sample API key might look like this:

M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy

Each API key directly maps to the user account (either Business or Retail).

Additionally, the request must also include the Timestamp (X-Revx-Timestamp) and Signature (X-Revx-Signature) headers.

For more information on authentication headers and signing instructions, see the guides: Authenticate requests.

API keys used with the RFQ trading endpoints are permission-scoped: each RFQ endpoint lists the permissions (scopes) it requires in its description.

Response body samples

{
  "data": {
    "min_amount": "100000",
    "symbol": "BTC/USD"
  },
  "metadata": {
    "timestamp": 1785313433816
  }
}

Deprecated

Deprecated Revolut X API endpoints.

Get last trades (deprecated)deprecated

Deprecated

Use Get trade history instead.

Get the list of the latest 100 trades executed on Revolut X crypto exchange.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Response

OK

The list of the latest trades executed on Revolut X crypto exchange.

Body
object
data
arrayrequired
metadata
objectrequired
get/1.0/public/last-trades
curl -X GET "https://revx.revolut.com/api/1.0/public/last-trades"

Response body samples

{
  "data": [
    {
      "tdt": "2026-07-29T07:23:53.816Z",
      "aid": "BTC",
      "anm": "Bitcoin",
      "p": "119980.00",
      "pc": "USD",
      "pn": "MONE",
      "q": "0.01000000",
      "qc": "BTC",
      "qn": "UNIT",
      "ve": "REVX",
      "pdt": "2026-07-29T07:23:53.816Z",
      "vp": "REVX",
      "tid": "5ef9648f658149f7ababedc97a6401f8"
    },
    {
      "tdt": "2026-07-29T07:23:53.816Z",
      "aid": "ETH",
      "anm": "Ethereum",
      "p": "4001.00",
      "pc": "USDC",
      "pn": "MONE",
      "q": "1.20000000",
      "qc": "ETH",
      "qn": "UNIT",
      "ve": "REVX",
      "pdt": "2026-07-29T07:23:53.816Z",
      "vp": "REVX",
      "tid": "3b2b202b766843cfa6c8b3354e7f4c52"
    }
  ],
  "metadata": {
    "timestamp": "2026-07-29T08:23:53.816Z"
  }
}

Get order book (deprecated)deprecated

Deprecated

Use Get order book v2 instead.

Fetch the current order book (bids and asks) for a given trading pair (with a maximum of 5 price levels).

Provide region to retrieve the order book for a specific region. The resolved region is returned in metadata.region.

Rate limits

LimitTotal tokensRefresh rateToken cost rule
Per-second limit11 token / second1 token / request

For retry guidance, see the 429 Rate Limit Exceeded response below. The Retry-After header specifies the delay in milliseconds.

Request

Path parameters
symbol
stringrequired
Query parameters
region
string

Response

OK

The Order Book snapshot for the given trading pair (with a maximum of 5 price levels).

Body
object
data
objectrequired
metadata
objectrequired
get/1.0/public/order-book/{symbol}
curl -X GET "https://revx.revolut.com/api/1.0/public/order-book/BTC-USD?region=EEA"

Response body samples

{
  "data": {
    "asks": [
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "SELL",
        "p": "4005.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "1.7000",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "3",
        "ts": "CLOB",
        "pdt": "2026-07-29T07:23:53.816Z"
      },
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "SELL",
        "p": "4010.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "2.1234",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "2",
        "ts": "CLOB",
        "pdt": "2026-07-29T07:23:53.816Z"
      }
    ],
    "bids": [
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "BUYI",
        "p": "4000.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "0.25",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "1",
        "ts": "CLOB",
        "pdt": "2026-07-29T07:23:53.816Z"
      },
      {
        "aid": "ETH",
        "anm": "Ethereum",
        "s": "BUYI",
        "p": "3995.00",
        "pc": "USD",
        "pn": "MONE",
        "q": "4.4200",
        "qc": "ETH",
        "qn": "UNIT",
        "ve": "REVX",
        "no": "5",
        "ts": "CLOB",
        "pdt": "2026-07-29T07:23:53.816Z"
      }
    ]
  },
  "metadata": {
    "region": "UK",
    "timestamp": "2026-07-29T08:23:53.816Z"
  }
}