As a Revolut X customer, you can use the Revolut X REST API to streamline your trading experience.
Base URL for all endpoints: https://revx.revolut.com/api/1.0
API key
To get started using the Revolut X REST API, you need an API key to include with your requests. To create it, follow the instructions below.
Generate an Ed25519 key pair
Before creating your API key in the Revolut X web app, you must first generate an Ed25519 key pair.
An Ed25519 key pair consists of a private key and a public key. The private key is kept secret and used for signing data or authenticating, while the public key can be shared to verify signatures and authenticate access.
You can generate this pair using openssl.
1. Generate the private key
Run the following command in your terminal:
openssl genpkey -algorithm ed25519 -out private.pemThis command generates a file named private.pem, which contains your private key.
It has the following structure:
-----BEGIN PRIVATE KEY-----
{YOUR BASE64-ENCODED PRIVATE KEY}
-----END PRIVATE KEY-----This is your private key, and it will be used for signing requests. Your private key is a secret. Never share it with anyone and never send it as a part of any request.
2. Generate the public key
Next, generate the public key from your private key:
openssl pkey -in private.pem -pubout -out public.pemThis command generates a file named public.pem with your public key.
It has the following structure:
-----BEGIN PUBLIC KEY-----
{YOUR BASE64-ENCODED PUBLIC KEY}
-----END PUBLIC KEY-----This is your public key. It is not secret, and it is safe to share. You will provide this key to Revolut X so we can verify the requests signed with your matching private key.
When you provide it, make sure that you copy all of it, including the -----BEGIN KEY----- and -----END KEY----- lines.
Create your API key
Once you have your public key (the content of public.pem), you are ready to create your API key.
Go to the Revolut X web app → Profile to complete the setup.
Authentication headers
This API uses a custom authentication scheme based on Ed25519 signatures. Every request to the API must include the following headers:
| Header | Description |
|---|---|
X-Revx-API-Key | Your API key (64-character alphanumeric string). |
X-Revx-Timestamp | The Unix timestamp of the request, provided in milliseconds. |
X-Revx-Signature | The request digest string signed with your private key. |
Signing a request
To generate the X-Revx-Signature, you must sign a specific string constructed from your request data.
1. Construct the message string
The string to sign is a concatenation of the following values, in this specific order:
- Timestamp: Same value as the
X-Revx-Timestampheader. - HTTP Method: Uppercase (e.g.,
GET,POST). - Request Path: The path starting from
/api(e.g.,/api/1.0/orders/active). - Query String: The URL query string if present (e.g.,
limit=10). Do not include the?. - Request Body: The minified JSON body string, if present.
When concatenating, do not add any separators (spaces, newlines, or commas) between the fields.
Example Message:
1765360896219POST/api/1.0/orders{"client_order_id":"3b364427-1f4f-4f66-9935-86b6fb115d26","symbol":"BTC-USD","side":"BUY","order_configuration":{"limit":{"base_size":"0.1","price":"90000.1"}}}2. Sign the message
- Sign the constructed string using your Ed25519 private key.
- Base64-encode the resulting signature.
- Send this value in the
X-Revx-Signatureheader.
Code Examples
Python Example
import base64
from pathlib import Path
from nacl.signing import SigningKey
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.backends import default_backend
# 1. Load your Private Key
pem_data = Path("private.pem").read_bytes()
private_key_obj = serialization.load_pem_private_key(
pem_data,
password=None,
backend=default_backend()
)
# Extract raw bytes for PyNaCl
raw_private = private_key_obj.private_bytes(
encoding=serialization.Encoding.Raw,
format=serialization.PrivateFormat.Raw,
encryption_algorithm=serialization.NoEncryption()
)
# 2. Prepare the message
timestamp = "1746007718237"
method = "GET"
path = "/api/1.0/orders/active"
query = "status=open&limit=10"
body = "" # Empty for GET
# Concatenate without separators
message = f"{timestamp}{method}{path}{query}{body}".encode('utf-8')
# 3. Sign and Encode
signing_key = SigningKey(raw_private)
signed = signing_key.sign(message)
signature = base64.b64encode(signed.signature).decode()
print(f"X-Revx-Signature: {signature}")Node.js Example
const crypto = require('crypto');
const fs = require('fs');
// 1. Load your Private Key
const privateKey = fs.readFileSync('private.pem', 'utf8');
// 2. Prepare the message
const timestamp = Date.now().toString();
const method = 'POST';
const path = '/api/1.0/crypto-exchange/orders';
const body = JSON.stringify({
symbol: "BTC/USD",
type: "limit",
side: "buy",
qty: "0.005"
});
// Concatenate without separators
const message = timestamp + method + path + body;
// 3. Sign and Encode
// Note: Use crypto.sign with null to indicate pure Ed25519 signing (no hashing algorithm)
const signatureBuffer = crypto.sign(null, Buffer.from(message), privateKey);
const signature = signatureBuffer.toString('base64');
console.log(`X-Revx-Timestamp: ${timestamp}`);
console.log(`X-Revx-Signature: ${signature}`);API endpoints
To see the reference for the specific endpoints and operations of this API, browse the menu on the left.
Authentication
apiKeyX-Revx-API-KeyThe 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:
M1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYByEach API key directly maps to the user account (either Business or Retail).
Balance
Get your Revolut X crypto exchange balances, including both crypto and fiat.
Get all balances
Get crypto exchange account balances for the requesting user. The user is resolved by the provided API key.
Request
Response
OK
The list of available balances.
curl -X GET "https://revx.revolut.com/api/1.0/balances" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"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"
}
]Configuration
Get Revolut X configuration for traded assets and pairs.
Get all currencies
Get configuration for all currencies used on the exchange.
Request
Response
OK
Supported currencies with their details.
curl -X GET "https://revx.revolut.com/api/1.0/configuration/currencies" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"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 all currency pairs
Get configuration for all traded currency pairs.
Request
Response
OK
Supported currency pairs with their details.
curl -X GET "https://revx.revolut.com/api/1.0/configuration/pairs" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"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"
}
}Public Market Data
Get Revolut X real time public market data.
Get last trades
Get the list of the latest 100 trades executed on Revolut X crypto exchange.
Response
OK
The list of the latest trades executed on Revolut X crypto exchange.
curl -X GET "https://revx.revolut.com/api/1.0/public/last-trades" \
-H "Authorization: Bearer <yourSecretApiKey>"Response body samples
{
"data": [
{
"tdt": "2025-08-08T21:40:35.133962Z",
"aid": "BTC",
"anm": "Bitcoin",
"p": "116243.32",
"pc": "USD",
"pn": "MONE",
"q": "0.24521000",
"qc": "BTC",
"qn": "UNIT",
"ve": "REVX",
"pdt": "2025-08-08T21:40:35.133962Z",
"vp": "REVX",
"tid": "5ef9648f658149f7ababedc97a6401f8"
},
{
"tdt": "2025-08-08T21:40:34.132465Z",
"aid": "ETH",
"anm": "Ethereum",
"p": "4028.23",
"pc": "USDC",
"pn": "MONE",
"q": "12.00000000",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"pdt": "2025-08-08T21:40:34.132465Z",
"vp": "REVX",
"tid": "3b2b202b766843cfa6c8b3354e7f4c52"
}
],
"metadata": {
"timestamp": "2025-08-08T21:40:36.684333Z"
}
}Get order book
Fetch the current order book (bids and asks) for a given trading pair (with a maximum of 5 price levels).
Request
Response
OK
The Order Book snapshot for the given trading pair (with a maximum of 5 price levels).
curl -X GET "https://revx.revolut.com/api/1.0/public/order-book/BTC-USD" \
-H "Authorization: Bearer <yourSecretApiKey>"Response body samples
{
"data": {
"asks": [
{
"aid": "ETH",
"anm": "Ethereum",
"s": "SELL",
"p": "4600",
"pc": "USD",
"pn": "MONE",
"q": "17",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "3",
"ts": "CLOB",
"pdt": "2025-08-08T21:40:36.124538Z"
},
{
"aid": "ETH",
"anm": "Ethereum",
"s": "SELL",
"p": "4555",
"pc": "USD",
"pn": "MONE",
"q": "2.1234",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "2",
"ts": "CLOB",
"pdt": "2025-08-08T21:40:36.124538Z"
}
],
"bids": [
{
"aid": "ETH",
"anm": "Ethereum",
"s": "BUYI",
"p": "4550",
"pc": "USD",
"pn": "MONE",
"q": "0.25",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "1",
"ts": "CLOB",
"pdt": "2025-08-08T21:40:36.124538Z"
},
{
"aid": "ETH",
"anm": "Ethereum",
"s": "BUYI",
"p": "4500",
"pc": "USD",
"pn": "MONE",
"q": "24.42",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "5",
"ts": "CLOB",
"pdt": "2025-08-08T21:40:36.124538Z"
}
]
},
"metadata": {
"timestamp": "2025-08-08T21:40:36.124538Z"
}
}Orders
Manage Revolut X orders: place new orders, cancel active ones, and retrieve order history.
Place order
Place a new order. The user is resolved by the provided API key.
Rate limit for limit orders: 1000 requests/day.
Request
Response
OK
The successfully placed order details.
curl -X POST "https://revx.revolut.com/api/1.0/orders" \
-H "Content-Type: application/json" \
-H "X-Revx-Timestamp: 1746007718237" \
-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": "50000.50",
"execution_instructions": [
"post_only"
]
}
}
}'Request body samples
{
"client_order_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"symbol": "BTC-USD",
"side": "sell",
"order_configuration": {
"limit": {
"base_size": "0.1",
"price": "50000.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, and Take Profit/Stop Loss (TPSL) orders associated with the authenticated account.
Request
Response
OK - Orders cancelled successfully.
curl -X DELETE "https://revx.revolut.com/api/1.0/orders" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
Get active orders
Get active crypto exchange orders for the requesting user. The user is resolved by the provided API key.
Request
Response
OK
The list of active orders.
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-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"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": "98745",
"status": "new",
"time_in_force": "gtc",
"execution_instructions": [
"allow_taker"
],
"created_date": 3318215482991,
"updated_date": 3318215482991
}
],
"metadata": {
"timestamp": 3318215482991,
"next_cursor": "GF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
}
}Get historical orders
Get historical crypto exchange orders for the requesting user. The user is resolved by the provided API key.
Request
Response
OK
The list of historical orders.
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=3318215482991&end_date=3318215482991&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=1000" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"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": "98745",
"status": "filled",
"time_in_force": "gtc",
"execution_instructions": [
"allow_taker"
],
"created_date": 3318215482991,
"updated_date": 3318215482991
}
],
"metadata": {
"timestamp": 3318215482991,
"next_cursor": "GF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
}
}Get order by ID
Retrieve specific order details by ID. The user context is resolved based on the provided API key.
Request
Response
OK - Order details.
curl -X GET "https://revx.revolut.com/api/1.0/orders/123e4567-e89b-12d3-a456-426614174000" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"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": "197.49",
"filled_amount": "0",
"price": "98745",
"average_fill_price": "89794.51",
"total_fee": "0.01",
"status": "new",
"time_in_force": "gtc",
"fee_currency": "USD",
"execution_instructions": [
"allow_taker"
],
"created_date": 3318215482991,
"updated_date": 3318215482991
}
}Cancel order by ID
Cancel an active order by its Venue ID.
Request
Response
OK - Order deleted successfully.
curl -X DELETE "https://revx.revolut.com/api/1.0/orders/123e4567-e89b-12d3-a456-426614174000" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
Replace order
Replace an existing order. The user is resolved by the provided API key.
Venue order id of the order will be updated as well.
Request
Response
OK
The successfully replaced order details.
curl -X PUT "https://revx.revolut.com/api/1.0/orders/123e4567-e89b-12d3-a456-426614174000" \
-H "Content-Type: application/json" \
-H "X-Revx-Timestamp: 1746007718237" \
-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": "50000.50",
"execution_instructions": [
"post_only"
]
}'Request body samples
{
"client_order_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"base_size": "0.1",
"price": "50000.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"
}
]
}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.
Request
Response
OK - Order fills retrieved successfully
curl -X GET "https://revx.revolut.com/api/1.0/orders/fills/123e4567-e89b-12d3-a456-426614174000" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
{
"data": [
{
"tdt": 3318215482991,
"aid": "BTC",
"anm": "Bitcoin",
"p": "91686.16",
"pc": "USD",
"pn": "MONE",
"q": "24.90000000",
"qc": "BTC",
"qn": "UNIT",
"ve": "REVX",
"pdt": 3318215482991,
"vp": "REVX",
"tid": "ad3e8787ab623ba5a1dfea53819be6f9",
"oid": "2affb2ac-4cf7-4bbf-b7b2-fc1e885bdc2c",
"s": "buy",
"im": false
}
]
}Trades
Retrieve Revolut X trade history and execution details: view public market trades or your specific private trade executions (fills).
Get all public trades (market history)
Retrieve a list of all trades for a specific symbol, not limited to the current client's activity.
Request
Response
OK
The list of trades.
curl -X GET "https://revx.revolut.com/api/1.0/trades/all/BTC-USD?start_date=3318215482991&end_date=3318215482991&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=1000" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
{
"data": [
{
"tdt": 3318215482991,
"aid": "BTC",
"anm": "Bitcoin",
"p": "125056.76",
"pc": "USD",
"pn": "MONE",
"q": "0.00003999",
"qc": "BTC",
"qn": "UNIT",
"ve": "REVX",
"pdt": 3318215482991,
"vp": "REVX",
"tid": "80654a036323311cb0ea28462b42db6d"
}
],
"metadata": {
"timestamp": 3318215482991,
"next_cursor": "GF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
}
}Get client trades (associated with the provided API key)
Retrieve the trade history (fills) for the authenticated client. The user context is resolved based on the provided API key.
Request
Response
OK
The list of trades.
curl -X GET "https://revx.revolut.com/api/1.0/trades/private/BTC-USD?start_date=3318215482991&end_date=3318215482991&cursor=ZGF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw%3D%3D&limit=1000" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
{
"data": [
{
"tdt": 3318215482991,
"aid": "BTC",
"anm": "Bitcoin",
"p": "125056.76",
"pc": "USD",
"pn": "MONE",
"q": "0.00003999",
"qc": "BTC",
"qn": "UNIT",
"ve": "REVX",
"pdt": 3318215482991,
"vp": "REVX",
"tid": "80654a036323311cb0ea28462b42db6d",
"oid": "2affb2ac-4cf7-4bbf-b7b2-fc1e885bdc2c",
"s": "buy",
"im": false
}
],
"metadata": {
"timestamp": 3318215482991,
"next_cursor": "GF0ZT0xNzY0OTMxNTAyODU0O2lkPTM3YjExMWJlLTcwMzYtNGYzNC1hYWYyLTM4ZDVjYTEyN2M1Yw=="
}
}Market Data
Retrieve real-time and historical market data for Revolut X.
Get order book snapshot
Retrieve the current order book snapshot (bids and asks) for a specific trading pair.
Request
Response
OK
The Order Book snapshot for the given trading pair.
curl -X GET "https://revx.revolut.com/api/1.0/order-book/BTC-USD?limit=20" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
{
"data": {
"asks": [
{
"aid": "ETH",
"anm": "Ethereum",
"s": "SELL",
"p": "4600",
"pc": "USD",
"pn": "MONE",
"q": "17",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "3",
"ts": "CLOB",
"pdt": 3318215482991
},
{
"aid": "ETH",
"anm": "Ethereum",
"s": "SELL",
"p": "4555",
"pc": "USD",
"pn": "MONE",
"q": "2.1234",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "2",
"ts": "CLOB",
"pdt": 3318215482991
}
],
"bids": [
{
"aid": "ETH",
"anm": "Ethereum",
"s": "BUYI",
"p": "4550",
"pc": "USD",
"pn": "MONE",
"q": "0.25",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "1",
"ts": "CLOB",
"pdt": 3318215482991
},
{
"aid": "ETH",
"anm": "Ethereum",
"s": "BUYI",
"p": "4500",
"pc": "USD",
"pn": "MONE",
"q": "24.42",
"qc": "ETH",
"qn": "UNIT",
"ve": "REVX",
"no": "5",
"ts": "CLOB",
"pdt": 3318215482991
}
]
},
"metadata": {
"timestamp": 3318215482991
}
}Get historical 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).
Request
Response
OK
List of OHLCV candles.
curl -X GET "https://revx.revolut.com/api/1.0/candles/BTC-USD?interval=5&since=3318215482991&until=3318215482991" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
{
"data": [
{
"start": 3318215482991,
"open": "92087.81",
"high": "92133.89",
"low": "92052.39",
"close": "92067.31",
"volume": "0.00067964"
},
{
"start": 3318215782991,
"open": "90390.46",
"high": "90395",
"low": "90358.84",
"close": "90395",
"volume": "0.00230816"
}
]
}Get all 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.
Request
Response
OK
The list of tickers.
curl -X GET "https://revx.revolut.com/api/1.0/tickers?symbols=BTC-USD%2CETH-USD" \
-H "X-Revx-Timestamp: 1746007718237" \
-H "X-Revx-Signature: 2h/t5o8w+l5s+fjyfA0n/e7j4u5b7h4e+g4k4c8h7a2p6k0g7j1f+w0i2j3k9r0l3s8m5t6r+q1s+o3v/t4x8v5y+w1r+m2t/k3w/j4y+"Response body samples
{
"data": [
{
"symbol": "BTC/USD",
"bid": "0.02",
"ask": "0.02",
"mid": "0.02",
"last_price": "0.02"
},
{
"symbol": "ETH/USD",
"bid": "0.02",
"ask": "0.02",
"mid": "0.02",
"last_price": "0.02"
}
],
"metadata": {
"timestamp": 1770201294631
}
}