Sandbox
Help

Revolut X Crypto Exchange REST API1.0.0

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.pem

This 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-----
IMPORTANT: Secure your 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.pem

This 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-----
About your 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 appProfile 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:

HeaderDescription
X-Revx-API-KeyYour API key (64-character alphanumeric string).
X-Revx-TimestampThe Unix timestamp of the request, provided in milliseconds.
X-Revx-SignatureThe 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:

  1. Timestamp: Same value as the X-Revx-Timestamp header.
  2. HTTP Method: Uppercase (e.g., GET, POST).
  3. Request Path: The path starting from /api (e.g., /api/1.0/orders/active).
  4. Query String: The URL query string if present (e.g., limit=10). Do not include the ?.
  5. 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
  1. Sign the constructed string using your Ed25519 private key.
  2. Base64-encode the resulting signature.
  3. Send this value in the X-Revx-Signature header.

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

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).

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

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/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

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

Response

OK

Supported currencies with their details.

Body
object
<*>
object
get/configuration/currencies
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

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

Response

OK

Supported currency pairs with their details.

Body
object
<*>
object
get/configuration/pairs
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.

Body
object
data
arrayrequired
metadata
objectrequired
get/public/last-trades
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

Path parameters
symbol
stringrequired

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/public/order-book/{symbol}
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

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/orders
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

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

Response

OK - Orders cancelled successfully.

delete/orders
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

No contentThis response does not have a body.

Get active orders

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

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/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-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

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/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=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

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/orders/{venue_order_id}
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

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

Response

OK - Order deleted successfully.

delete/orders/{venue_order_id}
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

No contentThis response does not have a body.

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

Header parameters
X-Revx-Timestamp
integerrequired
X-Revx-Signature
stringrequired
Path parameters
venue_order_id
string(uuid)required
Request body
client_order_id
string(uuid)required
base_size
string(decimal)
quote_size
string(decimal)
price
string(decimal)
execution_instructions
array

Response

OK

The successfully replaced order details.

Body
object
data
objectrequired
put/orders/{venue_order_id}
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

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/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-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

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/trades/all/{symbol}
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

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/trades/private/{symbol}
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

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/order-book/{symbol}
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

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
get/candles/{symbol}
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

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

Response

OK

The list of tickers.

Body
object
data
arrayrequired
metadata
objectrequired
get/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
  }
}