Ripio Public API
The public endpoints have a reduced requests limit and a 30 seconds cache. For increased limits, use the private endpoints.
The public endpoints have a reduced requests limit and a 30 seconds cache. For increased limits, use the private endpoints.
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/ripio-public-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:
title: Ripio Trade - API Documentation Book Public API
version: v4.0
description: "Welcome to the Ripio Trade API documentation.\n\n### Version\nThis API is currently in the version 4.\n\nIf there is need for any big change, a new version will be launched and this version will be maintained for at least 3 months.\n\nIf you're still using the version 3, [access the old documentation](../v3) and check the [migration guide](#tag/V3-Endpoint-Migrations).\n\n### Important\nUse the `Market` endpoints for all trading operations. The `Public` endpoints have a delay (cache) of up to 30 seconds.\n\nAll successful requests will result in a 200 HTTP Status.\n\nAll requests returns data in JSON format (application/json) and have a default body:\n\n\n### Success\n```\n{\n \"error_code\": null,\n \"message\": null,\n \"data\": { }\n}\n```\n\n### Error\n```\n{\n \"error_code\": [Error code],\n \"message\": \"Error description\",\n \"data\": null\n}\n```\n\n\nEndpoints that have a date filter will return data for the last 6 months if no value is sent in the `start_date` parameter.\n\n### URL structure\nThe endpoints URL follow this pattern:\n\n`https://api.ripiotrade.co/{version}/{method}[/{parameter}][?parameter=value...]`\n\n `https://api.ripiotrade.co/v4/tickers/BTC_BRL`\n\n### Limits\n\nThe request limits are based on the user's operational limits.\n\nThere are two types of limit, one of requests per second and another of daily requests. Both of them should be taken in consideration and the requests should be balanced so the daily limit isn't reached.\n\nUsers **without approved documentation** have 1 request per second or 86.400 daily requests.\n\nUsers **with approved documentation** have 3.5 requests per second or 302.400 daily requests.\n\nThese limits can be increased, and the support team should be contacted for that.\n\nWhen the requests per second limit is reached, the response HTTP Status returned is 429 and the response body is:\n```\n{\n \"message\": \"Too many requests\"\n}\n```\n\nWhen the daily requests limit is reached, the response HTTP Status returned is 429 and the response body is:\n```\n{\n \"message\": \"Limit Exceeded\"\n}\n```"
contact:
name: Jorn Filho
x-logo:
url: https://trade-images.ripio.com/general_images/logo-ripio.png
href: '#'
servers:
- url: https://api.ripiotrade.co/v4/
tags:
- name: Public
description: 'The public endpoints have a reduced requests limit and a 30 seconds cache.
For increased limits, use the private endpoints.'
paths:
/public/tickers:
get:
operationId: GetTicker
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/AllTickersResponse'
description: Returns a 24 hour window statistics for all pairs.
summary: Tickers
tags:
- Public
security: []
parameters: []
x-mcp:
enabled: true
name: public_get_all_tickers
usage: '- To get 24-hour statistics for all trading pairs
- To monitor market overview and price movements
- To retrieve volume and price change data for all pairs'
/public/tickers/{pair}:
get:
operationId: GetTickerByPair
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/TickersResponseV4'
description: Returns a 24 hour window statistics for a given pair.
summary: Ticker By Pair
tags:
- Public
security: []
parameters:
- description: Currency pair code
in: path
name: pair
required: true
schema:
type: string
example: BTC_BRL
x-mcp:
enabled: true
name: public_get_ticker_by_pair
usage: '- To get 24-hour statistics for a specific trading pair
- To monitor price movements and volume for individual markets
- To retrieve detailed market data for a particular cryptocurrency pair'
/public/orders/level-3:
get:
operationId: GetPublicOrdersLevel3
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/PublicOrdersLevel3Response'
description: Returns the level 3 orderbook.
summary: Orderbook Level 3
tags:
- Public
security: []
parameters:
- description: Currency pair code
in: query
name: pair
required: true
schema:
type: string
example: BTC_BRL
- in: query
name: limit
required: false
schema:
$ref: '#/components/schemas/LimitParamV4'
x-mcp:
enabled: true
name: public_get_orderbook_level3
usage: '- To get detailed level 3 orderbook with individual order IDs
- To analyze market depth and liquidity at granular level
- For advanced trading strategies requiring order-level data'
/public/orders/level-2:
get:
operationId: GetPublicOrdersLevel2
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/PublicOrdersLevel2Response'
description: Returns the level 2 orderbook.
summary: Orderbook Level 2
tags:
- Public
security: []
parameters:
- description: Currency pair code
in: query
name: pair
required: true
schema:
type: string
example: BTC_BRL
- in: query
name: limit
required: false
schema:
$ref: '#/components/schemas/LimitNewParamV4'
x-mcp:
enabled: true
name: public_get_orderbook_level2
usage: '- To get aggregated level 2 orderbook with price levels
- To analyze market depth and best bid/ask prices
- For trading applications requiring orderbook data'
/public/trades:
get:
operationId: GetTrades
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/TradesResponse'
description: 'Lists the trades history based on the filtering criteria.
**Attention:** Due to performance concerns, this endpoint now uses cursor-based pagination. The pagination object currently included in the response is now a placeholder and will be entirely removed as of 2026-06-01. The parameter current_page is also a placeholder and will be removed at the same time. Please update your integration accordingly and refer to the documentation for the correct pagination handling.'
summary: Trades
tags:
- Public
security: []
parameters:
- description: Currency pair code
in: query
name: pair
required: true
schema:
type: string
example: BTC_BRL
- in: query
name: start_time
required: false
schema:
$ref: '#/components/schemas/StartDateTimeNoMinParamV4'
- in: query
name: end_time
required: false
schema:
$ref: '#/components/schemas/EndDateTimeNoMinParamV4'
- in: query
name: page_size
required: false
schema:
$ref: '#/components/schemas/PageSizeParamV4'
- in: query
name: current_page
required: false
schema:
$ref: '#/components/schemas/CurrentPageParamV4'
- description: The `c` parameter is the cursor you should use to fetch the next page of results
in: query
name: c
required: false
schema:
type: string
x-mcp:
enabled: true
name: public_get_trades_history
usage: '- To get recent trades history for a trading pair
- To analyze market activity and price movements
- For tracking trading volume and market trends'
/public/currencies:
get:
operationId: GetCurrencies
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CurrenciesResponseV4'
description: Lists the active currencies available in the platform.
summary: Currencies
tags:
- Public
security: []
parameters:
- description: Currency code
in: query
name: currency_code
required: false
schema:
type: string
- in: query
name: countries
required: false
schema:
$ref: '#/components/schemas/CountriesParamV4'
x-mcp:
enabled: true
name: public_get_currencies
usage: '- To list all available cryptocurrencies and fiat currencies
- To get currency information including deposit/withdrawal capabilities
- For building trading interfaces and currency selection'
/public/pairs:
get:
operationId: GetPairs
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/PairsResponseV4'
description: Lists the active currency pairs available in the platform.
summary: Pairs
tags:
- Public
security: []
parameters:
- description: Currency pair code
in: query
name: pair
required: false
schema:
type: string
example: BTC_BRL
- in: query
name: countries
required: false
schema:
$ref: '#/components/schemas/CountriesParamV4'
x-mcp:
enabled: true
name: public_get_trading_pairs
usage: '- To list all available trading pairs on the platform
- To get pair configuration and trading rules
- For building trading interfaces and market selection'
/public/countries:
get:
operationId: GetCountries
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CountriesResponse'
description: Lists the active countries available in the platform.
summary: Countries
tags:
- Public
security: []
parameters: []
x-mcp:
enabled: true
name: public_get_countries
usage: '- To list all supported countries for trading
- To get country-specific trading restrictions and availability
- For geographic compliance and user onboarding'
/public/server-time:
get:
operationId: GetServerTime
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/ServerTime'
description: Returns the server time in miliseconds.
summary: Server Time
tags:
- Public
security: []
parameters: []
x-mcp:
enabled: true
name: public_get_server_time
usage: '- To get the current server timestamp
- For time synchronization in trading applications
- To ensure accurate timing for time-sensitive operations'
components:
schemas:
EndDateTimeNoMinParamV4:
type: string
default: '[Current datetime]'
example: '2020-01-02T23:59:59-03:00'
format: datetime
description: Final datetime filter in ISO-8601 format
CurrenciesResponseV4:
properties:
data:
items:
$ref: '#/components/schemas/PublicCurrencyV4'
type: array
error_code:
type:
- number
- 'null'
enum:
- null
example: null
message:
type:
- string
- 'null'
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
PairsResponseV4:
properties:
data:
items:
$ref: '#/components/schemas/PublicPairV4'
type: array
error_code:
type:
- number
- 'null'
enum:
- null
example: null
message:
type:
- string
- 'null'
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
PublicOrdersLevel3ResponseData:
properties:
timestamp:
type: number
format: double
description: Current timestamp
example: 1675708481219
asks:
items:
$ref: '#/components/schemas/ActiveOrderLevel3'
type: array
description: Sell orders
example:
- amount: 0.01187517
id: 554F2D70-04B9-4E26-9548-9C35B025A018
price: 14704.45
- amount: 1
id: C1C5DA8E-A069-4E20-87D1-12B19426A013
price: 1873.48
bids:
items:
$ref: '#/components/schemas/ActiveOrderLevel3'
type: array
description: Buy orders
example:
- amount: 0.46097295
id: E6D05F51-D79B-47CF-84C5-B157120EBC25
price: 14650.25
- amount: 1
id: CE743407-66BE-4F4C-AD0E-AB376468C5F6
price: 1610.15
hash:
type: string
description: Hash of asks and bids
example: '16757084812196786445'
required:
- timestamp
- asks
- bids
- hash
type: object
additionalProperties: false
PublicOrdersLevel2Response:
properties:
data:
$ref: '#/components/schemas/PublicOrdersLevel2ResponseData'
error_code:
type:
- number
- 'null'
enum:
- null
example: null
message:
type:
- string
- 'null'
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
TickersResponseDataV4:
properties:
high:
type: number
format: float
description: Highest price in the last 24 hours
low:
type: number
format: float
description: Lowest price in the last 24 hours
volume:
type: number
format: float
description: Volume in the last 24 hours
trades_quantity:
type: number
format: int32
description: Number of trades in the last 24 hours
last:
type: number
format: float
description: Price of the most recent trade
bid:
type: number
format: float
description: Best bid price (highest price a buyer is willing to pay)
ask:
type: number
format: float
description: Best ask price (lowest price a seller is willing to accept)
date:
type: string
description: Timestamp of the last update (UTC)
first:
type: number
format: float
description: Price of the first trade in the last 24 hours window
is_frozen:
type: boolean
description: Whether the market is currently frozen (disabled)
base_code:
type: string
description: Base currency code
base_id:
type: string
description: Base currency ID
quote_id:
type: string
description: Quote currency ID
quote_code:
type: string
description: Quote currency code
quote_volume:
type: number
format: double
description: Quote currency volume
price_change_percent_24h:
type: string
description: 24-hr % price change of market pair
required:
- high
- low
- volume
- trades_quantity
- last
- bid
- ask
- date
- first
- is_frozen
- base_code
- base_id
- quote_id
- quote_code
- quote_volume
- price_change_percent_24h
type: object
additionalProperties: false
example:
ask: 95629
base_code: BTC
base_id: 9A5E2EF4-9547-418A-8EC6-C6EADBB8B32F
bid: 94171
date: '2022-11-11T01:31:35.820Z'
first: 98444
high: 98444
is_frozen: false
last: 94311
low: 85034
pair: BTC_BRL
price_change_percent_24h: '-12'
quote_id: 48898138-8623-4555-9468-B1A1505A9352
quote_code: BRL
quote_volume: 150.1
trades_quantity: 1199
volume: 27.26776846
TickersResponseV4:
properties:
data:
$ref: '#/components/schemas/TickersResponseDataV4'
error_code:
type:
- number
- 'null'
enum:
- null
example: null
message:
type:
- string
- 'null'
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
TradesResponseData:
properties:
trades:
items:
$ref: '#/components/schemas/Trade'
type: array
example:
- amount: 0.2404764
date: '2019-01-03T02:27:33.947Z'
id: 2B222F22-5235-45FA-97FC-E9DBFA2575EE
maker_order_id: F49F5BD8-3F5B-4364-BCEE-F36F62DB966A
maker_side: buy
maker_type: limit
pair: BTC_BRL
price: 15160
taker_order_id: FEAB5CEC-7F9E-4F95-B67D-9E8D5C739BE3
taker_side: sell
taker_type: market
timestamp: 1675708481219
total_value: 3638.4
- amount: 0.00563617
date: '2019-01-03T02:27:33.943Z'
id: CDC492A5-B1BF-4353-BE7A-43F51C371388
maker_order_id: 53BF30D2-901C-43D5-B0D1-62CD05DFD02A
maker_side: buy
maker_type: limit
pair: BTC_BRL
price: 15163
taker_order_id: E4B1B38D-C871-4476-9314-3DC23292F45E
taker_side: sell
taker_type: limit
timestamp: 1675708481220
total_value: 84.91
- amount: 0.00680154
date: '2019-01-03T02:27:33.940Z'
id: 910AA20F-211F-4755-90A7-94227DB407D8
maker_order_id: 1FD30735-E055-4200-AD3D-007B02A5BA92
maker_side: buy
maker_type: limit
pair: BTC_BRL
price: 15163.03
taker_order_id: DBC6D4AF-D454-46DF-80EC-E19528A0FB25
taker_side: sell
taker_type: limit
timestamp: 1675708481221
total_value: 104.1
pagination:
$ref: '#/components/schemas/PaginationV4'
nc:
type:
- string
- 'null'
description: This is the next cursor, use its value with the `c` parameter to retrieve the next page
pc:
type:
- string
- 'null'
description: This is the previous cursor, use its value with the `c` parameter to retrieve the previous page
required:
- trades
type: object
additionalProperties: false
CountriesResponse:
properties:
data:
items:
$ref: '#/components/schemas/CountriesData'
type: array
error_code:
type:
- number
- 'null'
enum:
- null
example: null
message:
type:
- string
- 'null'
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
LimitNewParamV4:
type: string
default: 100
format: string
description: Maximum number of records to return per request. Can specify 'max' to use the service maximum.
ActiveOrderLevel2:
properties:
amount:
type: number
format: float
description: Amount
price:
type: number
format: float
description: Price
required:
- amount
- price
type: object
additionalProperties: false
PublicCurrencyLogo:
properties:
svg:
type: string
description: Currency svg logo
format: string
required:
- svg
type: object
additionalProperties: false
CountriesData:
properties:
name:
type: string
description: Name of the country
format: string
code:
type: string
description: Acronym of the country
format: string
required:
- name
- code
type: object
additionalProperties: false
example:
name: Brazil
code: BR
PublicMemo:
properties:
deposit:
type: boolean
description: Flag that indicates if the network has memo for deposit
format: boolean
withdrawal:
type: boolean
description: Flag that indicates if the network has memo for withdrawal
format: boolean
required:
- deposit
- withdrawal
type: object
additionalProperties: false
CurrentPageParamV4:
type: number
format: int32
default: 1
example: 3
description: Page number for pagination
Trade:
properties:
amount:
type: number
format: double
description: Amount
date:
type: string
description: Trade date (UTC format)
id:
type: string
description: Trade id
maker_order_id:
type: string
description: Maker order id
maker_side:
type: string
description: Maker order side (sell / buy)
maker_type:
type: string
description: Maker order type (market / limit)
price:
type: number
format: double
description: Price
pair:
type: string
description: Currency pair code
example: BTC_BRL
taker_order_id:
type: string
description: Taker order id
taker_side:
type: string
description: Taker order side (sell / buy)
taker_type:
type: string
description: Taker order type (market / limit)
timestamp:
type: number
format: double
description: Current timestamp
example: 1675708481219
total_value:
type: number
format: float
description: Total value
required:
- amount
- date
- id
- maker_order_id
- maker_side
- maker_type
- price
- pair
- taker_order_id
- taker_side
- taker_type
- timestamp
- total_value
type: object
additionalProperties: false
CountriesParamV4:
type: string
example: BR,AR
format: string
description: Countries (One or many, use "," to separate)
LimitParamV4:
type: number
format: int32
default: 100
example: 25
description: Maximum number of records to return per request
maximum: 250
minimum: 1
PublicOrdersLevel2ResponseData:
properties:
timestamp:
type: number
format: double
description: Current timestamp
example: 1675708481219
asks:
items:
$ref: '#/components/schemas/ActiveOrderLevel2'
type: array
description: Sell orders
example:
- amount: 0.01187517
price: 14704.45
- amount: 1
price: 1873.48
bids:
items:
$ref: '#/components/schemas/ActiveOrderLevel2'
type: array
description: Buy orders
example:
- amount: 0.46097295
price: 14650.25
- amount: 1
price: 1610.15
hash:
type: string
description: Hash of asks and bids
example: '16757084812196786445'
required:
- timestamp
- asks
- bids
- hash
type: object
additionalProperties: false
PublicTag:
properties:
deposit:
type: boolean
description: Flag that indicates if the network has tag for deposit
format: boolean
withdrawal:
type: boolean
description: Flag that indicates if the network has tag for withdrawal
format: boolean
required:
- deposit
- withdrawal
type: object
additionalProperties: false
TickersResponseData:
properties:
pair:
type: string
description: Currency pair code
example: BTC_BRL
price_change_percent_24h:
type: string
description: 24-hr % price change of market pair
high:
type: number
format: float
description: Highest price in the last 24 hours
low:
type: number
format: float
description: Lowest price in the last 24 hours
volume:
type: number
format: float
description: Volume in the last 24 hours
trades_quantity:
type: number
format: int32
description: Trades quantity in the last 24 hours
last:
type: number
format: float
description: Price of the last trade
bid:
type: number
format: float
description: Price of the current best buy order in the orderbook
ask:
type: number
format: float
description: Price of the current best sell order in the orderbook
date:
type: string
description: Timestamp of the last update (UTC)
first:
type: number
format: float
description: Price of the first trade in the last 24 hours window
is_frozen:
type: boolean
description: Whether the market is currently frozen (disabled)
base_code:
type: string
description: Base currency code
base_id:
type: string
description: Base currency ID
quote_id:
type: string
description: Quote currency ID
quote_code:
type: string
description: Quote currency code
quote_volume:
type: number
format: double
description: Quote currency volume
required:
- pair
- price_change_percent_24h
- high
- low
- volume
- trades_quantity
- last
- bid
- ask
- date
- first
- is_frozen
- base_code
- base_id
- quote_id
- quote_code
- quote_volume
type: object
additionalProperties: false
PaginationV4:
properties:
current_page:
type: number
format: double
description: Current page
page_size:
type: number
format: double
description: Page size
registers_count:
type: number
format: double
description: Total number of registers
total_pages:
type: number
format: double
description: Total number of pages
required:
- current_page
- page_size
- registers_count
- total_pages
type: object
additionalProperties: false
example:
current_page: 1
registers_count: 21
total_pages: 1
page_size: 100
PublicPairV4:
properties:
amount_tick:
type: number
format: float
description: Smallest amount increment allowed
base:
type: string
description: Base currency code
format: string
base_name:
type: string
description: Base currency full name
format: string
quote:
type: string
description: Quote currency code
format: string
quote_name:
type: string
description: Quote currency full name
format: string
symbol:
type: string
description: 'Currency pair code (format: BASE_QUOTE)'
format: string
enabled:
type: boolean
description: Whether the pair is currently available for trading
format: boolean
min_amount:
type: number
format: float
description: Minimum order amount in base currency
price_tick:
type: number
format: float
description: Smallest price increment allowed
min_value:
type: number
format: float
description: Minimum order value in quote currency
countries:
items:
type: string
type: array
description: Available countries
max_price_variation:
type: number
format: int32
description: Maximum price variation (in percentage), applicable either upward or downward, relative to the best price in the order book (e.g., `10` means `10%`)
required:
- amount_tick
- base
- base_name
- quote
- quote_name
- symbol
- enabled
- min_amount
- price_tick
- min_value
- countries
type: object
additionalProperties: false
example:
amount_tick: 0.0001
base: BTC
base_name: Bitcoin
enabled: true
min_amount: 0.0005
min_value: 10
price_tick: 1
quote: BRL
quote_name: Brazilian real
symbol: BTC_BRL
countries:
- BR
max_price_variation: 10
PublicNetwork:
properties:
code:
type: string
description: Network code
format: string
memo:
$ref: '#/components/schemas/PublicMemo'
description: Memo information
format: PublicTag
tag:
$ref: '#/components/schemas/PublicTag'
description: Tag information
format: PublicTag
required:
- code
- memo
- tag
type: object
additionalProperties: false
PublicOrdersLevel3Response:
properties:
data:
$ref: '#/components/schemas/PublicOrdersLevel3ResponseData'
error_code:
type:
- number
- 'null'
enum:
- null
example: null
message:
type:
- string
- 'null'
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
TradesResponse:
properties:
data:
$ref: '#/components/schemas/TradesResponseData'
error_code:
type:
- number
- 'null'
enum:
- null
example: null
message:
type:
- string
- 'null'
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
ServerTime:
properties:
message:
type:
- string
- 'null'
data:
properties:
timestamp:
type: number
format: double
required:
- timestamp
type: object
required:
- message
- data
type: object
example:
data:
timestamp: 1670004661380
message: null
AllTickersResponse:
properties:
data:
items:
$ref: '#/components/schemas/TickersResponseData'
type: array
example:
- ask: 250000.15
base_code: BTC
base_id: 9A5E2EF4-9547-418A-8EC6-C6EADBB8B32F
bid: 240000.15
date: '2017-10-20T00:00:00Z'
first: 245000.15
high: 250000.1
# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ripio/refs/heads/main/openapi/ripio-public-api-openapi.yml