Revolut Public Market Data API
Get Revolut X real time public market data.
Get Revolut X real time public market data.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/revolut:revolut-public-market-data-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.0.0
title: Revolut X Crypto Exchange REST Public Market Data API
description: As a Revolut X customer, you can use the Revolut X REST API to streamline your trading experience.
contact: {}
servers:
- url: https://revx.revolut.com/api/1.0
description: Production server (uses live data)
- url: https://revx.revolut.codes/api/1.0
description: Dev server (uses test data)
security:
- ApiKey: []
tags:
- name: Public Market Data
description: Get Revolut X real time public market data.
paths:
/public/last-trades:
get:
tags:
- Public Market Data
summary: Get last trades
operationId: getLastTrades
description: Get the list of the latest 100 trades executed on Revolut X crypto exchange.
security: []
responses:
'200':
description: 'OK
The list of the latest trades executed on Revolut X crypto exchange.'
content:
application/json:
schema:
$ref: '#/components/schemas/LastTrades'
examples:
LastTradesResponse:
summary: Public last trades response
$ref: '#/components/examples/LastTradesResponseExample'
'429':
$ref: '#/components/responses/RateLimitExceeded'
5XX:
$ref: '#/components/responses/ServerError'
/public/order-book/{symbol}:
get:
tags:
- Public Market Data
summary: Get order book
operationId: getPublicOrderBook
description: Fetch the current order book (bids and asks) for a given trading pair (with a maximum of 5 price levels).
security: []
parameters:
- name: symbol
in: path
description: The trading pair, e.g., BTC-USD.
required: true
schema:
type: string
example: BTC-USD
responses:
'200':
description: 'OK
The Order Book snapshot for the given trading pair (with a maximum of 5 price levels).'
content:
application/json:
schema:
$ref: '#/components/schemas/OrderBookPublic'
examples:
OrderBookResponse:
summary: Public order book response
$ref: '#/components/examples/OrderBookPublicResponseExample'
'429':
$ref: '#/components/responses/RateLimitExceeded'
5XX:
$ref: '#/components/responses/ServerError'
components:
schemas:
PublicTrade:
type: object
description: A single trade.
properties:
tdt:
type: string
format: date-time
description: Trading date and time, returned as [ISO-8601](https://wikipedia.org/wiki/ISO_8601) string.
example: '2025-08-08T21:40:35.133962Z'
aid:
type: string
description: Crypto-asset ID code.
example: BTC
anm:
type: string
description: Crypto-asset full name.
example: Bitcoin
p:
type: string
description: Price in major currency units. For example, for USD, `116243.32` represents 116243.32 dollars.
example: '116243.32'
pc:
type: string
description: Price currency.
example: USD
pn:
type: string
description: Price notation.
example: MONE
q:
type: string
description: Quantity.
example: '0.24521000'
qc:
type: string
description: Quantity currency.
example: BTC
qn:
type: string
description: Quantity notation.
example: UNIT
ve:
type: string
description: Venue of execution. Always equals `REVX`.
example: REVX
pdt:
type: string
format: date-time
description: Publication date and time, returned as [ISO-8601](https://wikipedia.org/wiki/ISO_8601) string.
example: '2025-08-08T21:40:35.133962Z'
vp:
type: string
description: Venue of publication. Always equals `REVX`.
example: REVX
tid:
type: string
description: Transaction identification code.
example: 5ef9648f658149f7ababedc97a6401f8
required:
- tdt
- aid
- anm
- p
- pc
- pn
- q
- qc
- qn
- ve
- pdt
- vp
- tid
ErrorResponse:
type: object
description: Standard error response structure
required:
- error_id
- message
- timestamp
properties:
error_id:
type: string
format: uuid
description: Unique identifier for this specific error occurrence.
message:
type: string
description: Human-readable description of the error.
timestamp:
type: integer
format: int64
description: The time the error occurred in Unix epoch milliseconds.
OrderBookPublicPriceLevel:
type: object
description: A single order book price level.
properties:
aid:
type: string
description: Crypto-asset ID code.
example: ETH
anm:
type: string
description: Crypto-asset full name.
example: Ethereum
s:
type: string
description: The side of the price level.
enum:
- SELL
- BUYI
example: SELL
p:
type: string
description: Price in major currency units. For example, for USD, 4600 represents 4600 dollars.
example: '4600'
pc:
type: string
description: Price currency.
example: USD
pn:
type: string
description: Price notation.
example: MONE
q:
type: string
description: Aggregated quantity at this price level.
example: '17'
qc:
type: string
description: Quantity currency.
example: ETH
qn:
type: string
description: Quantity notation.
example: UNIT
ve:
type: string
description: Venue of execution. Always equals `REVX`.
example: REVX
'no':
type: string
description: Number of orders at the price level.
example: '3'
ts:
type: string
description: Trading system. Always equals `CLOB` (Central Limit Order Book).
example: CLOB
pdt:
type: string
format: date-time
description: Publication date and time, returned as [ISO-8601](https://wikipedia.org/wiki/ISO_8601) string.
example: '2025-08-08T21:40:36.124538Z'
required:
- aid
- anm
- s
- p
- pc
- pn
- q
- qc
- qn
- ve
- 'no'
- ts
- pdt
OrderBookPublic:
type: object
properties:
data:
type: object
properties:
asks:
type: array
description: The list of asks (sell orders), sorted by price in descending order.
items:
$ref: '#/components/schemas/OrderBookPublicPriceLevel'
bids:
type: array
description: The list of bids (buy orders), sorted by price in descending order.
items:
$ref: '#/components/schemas/OrderBookPublicPriceLevel'
required:
- asks
- bids
metadata:
type: object
properties:
timestamp:
type: string
format: date-time
description: Timestamp when the order book snapshot was generated, returned as [ISO-8601](https://wikipedia.org/wiki/ISO_8601) string.
example: '2025-08-08T21:40:36.124538Z'
required:
- timestamp
required:
- data
- metadata
LastTrades:
type: object
properties:
data:
type: array
description: The list of the latest trade records.
items:
$ref: '#/components/schemas/PublicTrade'
metadata:
type: object
properties:
timestamp:
type: string
format: date-time
description: Timestamp when the data was generated, returned as [ISO-8601](https://wikipedia.org/wiki/ISO_8601) string.
example: '2025-08-08T21:40:36.684333Z'
required:
- timestamp
required:
- data
- metadata
examples:
LastTradesResponseExample:
value:
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'
OrderBookPublicResponseExample:
value:
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'
responses:
RateLimitExceeded:
description: Rate Limit Exceeded
headers:
Retry-After:
description: The number of milliseconds to wait before making a new request.
schema:
type: integer
example: 5000
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
message: Rate Limit Exceeded
error_id: 7d85b5e7-d0f0-4696-b7b5-a300d0d03a5e
timestamp: 3318215482991
ServerError:
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
message: Something went wrong!
error_id: 7d85b5e7-d0f0-4696-b7b5-a300d0d03a5e
timestamp: 3318215482991
securitySchemes:
ApiKey:
type: apiKey
in: header
name: X-Revx-API-Key
description: "The [API key](https://developer.revolut.com/docs/api/revolut-x-crypto-exchange#api-key) obtained from the [Revolut X web app](https://exchange.revolut.com/).\nIt takes the form of a 64-character alphanumeric string, and must be provided with other authentication headers.\n\nA sample API key might look like this: \n```sh\nM1VKFtwB0M9C9QJO7goPlwrOytrJsSNE19txsmpsWIKz7xYu3f8aNucIyynAhYBy\n```\n\nEach API key directly maps to the user account (either Business or Retail)."