Cryptocurrency — entry 044 of 53
MercadoBitcoin
Mercado Bitcoin is Brazil's oldest and largest cryptocurrency exchange, operating since 2013 with spot trading across dozens of BRL pairs. Its v4 REST API and companion WebSocket service expose public market data — candles, order books, tickers — without authentication, while trading and account endpoints require an API key created from account settings. The API is free to use for individual developers.
GreatAPIs Score
Auth quickstart
- No key needed — call it now.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Account6
GET/accountsList Accounts
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/balancesList Balances
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/positionsList Positions
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbols | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/tierGet Tier
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/{symbol}/feesGet Trading Fees
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | GetMarketFeesResponse |
POST/accounts/{accountId}/{symbol}/transfers/internalInternal Transfer
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
application/json — InternalTransferRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | Response | InternalTransferResponse |
Authorize1
POST/oauth2/tokenAuthorize user to access following Oauth2 pattern (client_credentials flow)
| Status | Description | Schema |
|---|---|---|
200 | Response | Oauth2AuthorizeResponse |
401 | Unauthorized | Oauth2AuthorizeErrorResponse |
Public Data7
GET/candlesList Candles
| Name | In | Required | Type |
|---|---|---|---|
symbol | query | yes | string |
resolution | query | yes | string |
from | query | no | integer |
to | query | yes | integer |
countback | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | Response | prspublicdata.ListCandlesResponse |
GET/symbolsList Symbols
| Name | In | Required | Type |
|---|---|---|---|
symbols | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | prspublicdata.ListSymbolInfoResponse |
GET/tickersList Tickers
| Name | In | Required | Type |
|---|---|---|---|
symbols | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/{asset}/feesGet Fees From Asset
| Name | In | Required | Type |
|---|---|---|---|
asset | path | yes | string |
network | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | share.AssetFee |
GET/{asset}/networksList Networks From Asset
| Name | In | Required | Type |
|---|---|---|---|
asset | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/{symbol}/orderbookGet OrderBook
| Name | In | Required | Type |
|---|---|---|---|
symbol | path | yes | string |
limit | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | OrderBookResponse |
GET/{symbol}/tradesList Trades
| Name | In | Required | Type |
|---|---|---|---|
symbol | path | yes | string |
tid | query | no | integer |
since | query | no | integer |
from | query | no | integer |
to | query | no | integer |
limit | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
Trading6
DELETE/accounts/{accountId}/cancel_all_open_ordersCancel all open orders
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
has_executions | query | no | boolean |
symbol | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | CancelOpenOrdersResponse |
GET/accounts/{accountId}/ordersList all orders
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
has_executions | query | no | string |
symbol | query | no | string |
status | query | no | string |
size | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | ListAllOrdersResponse |
GET/accounts/{accountId}/{symbol}/ordersList orders
| Name | In | Required | Type |
|---|---|---|---|
symbol | path | yes | string |
accountId | path | yes | string |
has_executions | query | no | string |
side | query | no | string |
status | query | no | string |
created_at_from | query | no | string |
created_at_to | query | no | string |
executed_at_from | query | no | string |
executed_at_to | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
POST/accounts/{accountId}/{symbol}/ordersPlace order
| Name | In | Required | Type |
|---|---|---|---|
symbol | path | yes | string |
accountId | path | yes | string |
application/json — PlaceOrderRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | Response | PlaceOrderResponse |
GET/accounts/{accountId}/{symbol}/orders/{orderId}Get orders
| Name | In | Required | Type |
|---|---|---|---|
symbol | path | yes | string |
accountId | path | yes | string |
orderId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | OrderResponse |
DELETE/accounts/{accountId}/{symbol}/orders/{orderId}Cancel order
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
orderId | path | yes | string |
async | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
200 | Response | CancelOrderResponse |
Wallet12
POST/accountsCreate Account
application/json — CreateWalletRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | Response | CreateWalletResponse |
GET/accounts/{accountId}/wallet/fiat/{symbol}/depositsList Fiat Deposits
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
limit | query | no | string |
page | query | no | string |
from | query | no | string |
to | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/wallet/withdraw/addressesList Withdraw Crypto Wallet Addresses
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/wallet/withdraw/bank-accountsList Withdraw Bank Accounts
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/wallet/withdraw/config/BRLGet BRL Withdraw Config
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | BRLWithdrawConfig |
GET/accounts/{accountId}/wallet/withdraw/config/limitsGet Withdraw Limits
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbols | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/wallet/{symbol}/depositsList Deposits
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
limit | query | no | string |
page | query | no | string |
from | query | no | string |
to | query | no | string |
network | query | no | string |
status | query | no | integer |
pending_travel_rule | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
GET/accounts/{accountId}/wallet/{symbol}/deposits/addressesGet Deposit Address
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
network | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | share.DepositAddresses |
PATCH/accounts/{accountId}/wallet/{symbol}/deposits/{depositId}Release Pending Deposit
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
depositId | path | yes | string |
application/json — TravelRuleDepositRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | Response | Withdraw |
400 | Invalid request or business validation error | ResponseError |
404 | Deposit not found or unavailable | ResponseError |
500 | Internal server error | ResponseError |
GET/accounts/{accountId}/wallet/{symbol}/withdrawList Withdraw Coin
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
page | query | no | integer |
page_size | query | no | integer |
from | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | Response | — |
POST/accounts/{accountId}/wallet/{symbol}/withdrawWithdraw Coin
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
application/json — WithdrawCoinRequest (required)
| Status | Description | Schema |
|---|---|---|
200 | Response | Withdraw |
400 | Bad Request — validation error. Possible travel rule error codes: Code | Description -----|------------- `WALLET\|WITHDRAW_COIN\|TRAVEL_RULE_REQUIRED` | Travel rule block is required (feature flag active). The field {travel_rule} is required `WALLET\|TRAVEL_RULE\|INVALID_CUSTODY_TYPE` | Invalid custody_type. Allowed: SELF_CUSTODY, NATIONAL_TRANSFER, INTERNATIONAL_TRANSFER `WALLET\|TRAVEL_RULE\|MISSING_COUNTERPARTY_NAME` | counterparty_name is required for INTERNATIONAL_TRANSFER `WALLET\|TRAVEL_RULE\|MISSING_COUNTERPARTY_COUNTRY` | counterparty_country is required for INTERNATIONAL_TRANSFER `WALLET\|TRAVEL_RULE\|MISSING_PURPOSE_CODE` | purpose_code is required for INTERNATIONAL_TRANSFER `WALLET\|TRAVEL_RULE\|MISSING_COUNTERPARTY_RELATIONSHIP_CODE` | counterparty_relationship_code is required for INTERNATIONAL_TRANSFER `WALLET\|TRAVEL_RULE\|INVALID_COUNTRY_CODE` | Invalid counterparty_country. Must be ISO 3166-1 alpha-2 `WALLET\|TRAVEL_RULE\|INVALID_COUNTERPARTY_RELATIONSHIP_CODE` | Invalid counterparty_relationship_code. Allowed: 40, 50 | ResponseError |
GET/accounts/{accountId}/wallet/{symbol}/withdraw/{withdrawId}Get Withdraw Coin
| Name | In | Required | Type |
|---|---|---|---|
accountId | path | yes | string |
symbol | path | yes | string |
withdrawId | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Response | Withdraw |
Try it
Developer reference
https://api.mercadobitcoin.net/api/v4500 requests/minute by default; some endpoints override with stricter limits (as low as 1 request/second)
- GET/tickers
- GET/{symbol}/orderbook
- GET/{symbol}/trades
Availability
Changelog
- gained an OpenAPI spec