EXMO API

Cryptocurrency / API Key Intermediate HTTPS
Varies by plan (check documentation)

Overview

EXMO is a UK-based cryptocurrency exchange with a REST API covering public market data (tickers, order books, trade history) as well as authenticated endpoints for placing orders, managing your account, and handling deposits and withdrawals. The public market endpoints return JSON with no credentials, making them easy to explore, while trading functions require HMAC-SHA512 signing with your account API key and secret. EXMO supports a broad range of fiat currencies popular in Eastern Europe.

💡

Beginner Tip

The public /ticker endpoint returns price data for all markets at once with no authentication — it is the best starting point to understand the response structure before attempting signed requests. When you move to trading, always test with very small amounts and set the quantity field precisely, as EXMO enforces strict minimum order sizes per pair.

Available Data

coin price in USD/EUR
market capitalization
24h price change
trading volume
circulating supply

Example Response

JSON Response
{
  "id": "bitcoin",
  "symbol": "btc",
  "current_price": 65432.1,
  "market_cap": 1280000000000,
  "price_change_24h": 1250.5,
  "price_change_percentage_24h": 1.95,
  "total_volume": 28500000000
}

Field Reference

[PAIR].last_trade Price of the most recent trade executed on EXMO for this pair, e.g. 45000.5.
[PAIR].buy_price Best (highest) bid price currently in the order book — the price a seller would receive immediately.
[PAIR].sell_price Best (lowest) ask price in the order book — the price a buyer would pay for an instant purchase.
[PAIR].vol 24-hour trading volume in the base currency (the first currency in the pair, e.g. BTC).
[PAIR].vol_curr 24-hour trading volume denominated in the quote currency (e.g. USD), useful for comparing liquidity across pairs.

Implementation Example

const url = "https://documenter.getpostman.com/view/10287440/SzYXWKPi";
// Replace headers or query params with the values required by this API.
const response = await fetch(url, {
  headers: {
  "X-API-Key": "YOUR_API_KEY"
  }
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

Error 40005: Authorization error Incorrect HMAC-SHA512 signature, often caused by including extra spaces or wrong parameter ordering
Build the POST body as a URL-encoded string (not JSON), sort parameters alphabetically, and sign the exact encoded string with SHA512; use the official code examples as a reference.
Error 50304: Order minimum not met Placing an order with a quantity or total below the pair minimum
Call /pair_settings to retrieve the min_quantity and min_amount for each trading pair before placing orders.
Nonce error Sending a nonce value that is not strictly greater than the previous request nonce
Use millisecond Unix timestamps as the nonce value — Date.now() in JS or int(time.time()*1000) in Python — and never reuse or decrement values.

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 5/20
🔒 Security 15/15
🛠 Developer XP 12/20
✓ Reliability 10/15

Partially tested on Apr 5, 2026

Technical Specifications

Auth API Key
HTTPS REQUIRED
CORS UNKNOWN
Category Cryptocurrency
Difficulty Intermediate
Verified: 2026-04-04

Similar APIs

View All →