# Coinranking API Documentation - Introduction for Developers


# Coinranking API Documentation

This simple documentation shows you how to get a list of coins, crypto prices and much more crypto market data. Explore all endpoints and learn how to add them to your website or app.

Base url:

```
https://api.coinranking.com/v2
```


## Getting started

Follow the next steps to get started with Coinranking API. Happy building!


## 1. Create an account

To get started with Coinranking API, you first need to create an account. Sign up for free with your name and email address.


## 2. Your dashboard

After signing up you will directly get access to your own dashboard.

Here you find your API key and your current subscription plan, which is by default the free one.

The dashboard also contains:

- Your monthly API usage and how much requests you have left
- Account information
- Billing details


## 3. Your API key

On the overview page of your dashboard, you’ll find your API key. This key is your unique identifier allowing you to make API calls.

Go to authentication to read how to start using your API key.


## Try higher-tier endpoints

Eligible endpoint pages include a Preview access section. Use your existing API key to make five successful requests per restricted endpoint per account each UTC day, subject to your plan's normal limits. See endpoint previews for the allowance, usage and response headers.




## 4. Authentication

The Coinranking API uses API keys to authenticate requests. You can only do a very limited amount of requests without authenticating. Read on to learn more about our rate-limits.

All API requests must be made over HTTPS. Calls made over plain HTTP will redirect to HTTPS.

Use your API key in the x-access-token header:

Example:

```
curl https://api.coinranking.com/v2/coins \
  -H "x-access-token: YOUR_API_KEY"
```

The API also accepts the same key in the Authorization header:

```
curl https://api.coinranking.com/v2/coins \
  -H "Authorization: Bearer YOUR_API_KEY"
```


## 5. Get data from endpoints

Well done, you set up your authentication! Let's get some data from an endpoint. You could start by getting data about Bitcoin.

For example, try this request in Javascript to fetch the latest data for Bitcoin:

```
const options = {
  headers: {
    'Content-Type': 'application/json',
    'x-access-token': 'your-access-token-here',
    // Or use the Authorization header:
    // 'Authorization': 'Bearer your-access-token-here',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd', options)
  .then((response) => response.json())
  .then((result) => {
    const coin = result.data.coin;
    // Fields whose name starts with a digit — such as 24hVolume — are not
    // valid JavaScript identifiers, so read them with bracket notation.
    console.log(coin.price, coin['24hVolume']);
  });
```


## Need help?

Check out the FAQ. Or try our API first using the Playground.

---

# API Rate Limits | Coinranking API Documentation


# Rate limits

The amount of requests you can do before you run into our rate limit depends on your subscription.
With our free API key, you can make 10,000 requests per month. If you need more you can
upgrade very easily.

Without a key, you can still make a very limited amount of requests, so you can quickly test if our
endpoints fit your needs, or debug a little bit during development. The unauthenticated requests
are not guaranteed to work, so we advise you to get a key to not unexpectedly run into the rate
limiter.


## Types of rate limiting

We have rate limits for several time intervals. We protect against burst requests by limiting the
free keys to about five requests per second. Our free key is limited to 10,000 requests per month.
Unauthenticated requests are limited much more per month, and have limits per minute and hour as
well. The current unauthenticated rate limits might change in the future to whatever we see fit; for
guaranteed rate limits get one of our free keys.


## Current plan request limits

| Plan | Request rate | Monthly requests |
| --- | --- | --- |
| Free | 5 per second | 10,000 |
| Basic | 1,000 per minute | 500,000 |
| Startup | 2,000 per minute | 1,000,000 |
| Growth | 4,000 per minute | 2,000,000 |
| Professional | 6,000 per minute | 5,000,000 |

These are current plan defaults. Existing paid contracts or account-specific limits may differ.
REST calls and stream-opening or reconnection requests count toward your request allowance.
Delivered streaming data messages do not reduce that allowance. Your plan’s minimum update
interval and shared WebSocket/SSE connection limit still apply.


## Rate limit response headers

Every request you do returns information about the rate-limit, so your application can adapt before reaching the limit.

| Header | Description |
| --- | --- |
| X-RateLimit-Limit-Second | The maximum amount of requests in a second |
| X-RateLimit-Limit-Minute | The maximum amount of requests in a minute |
| X-RateLimit-Limit-Hour | The maximum amount of requests in an hour |
| X-RateLimit-Limit-Month | The maximum amount of requests in a month |
| X-RateLimit-Remaining-Second | The amount of requests you can still do in a second |
| X-RateLimit-Remaining-Minute | The amount of requests you can still do in a minute |
| X-RateLimit-Remaining-Hour | The amount of requests you can still do in a hour |
| X-RateLimit-Remaining-Month | The amount of requests you can still do in a month |
| RateLimit-Limit | This is the rate-limit that is the first to run out. E.g. when you can still do 10000 requests this month, but only 5 this minute, it will show 5 |
| RateLimit-Reset | This will tell you the amount of seconds remain until the quota of your lowest rate-limit will be restored to its maximum |
| RateLimit-Remaining | The amount of requests remaining for the lowest remaining limit |

---

# Find UUIDs and Slugs | Coinranking API Documentation


# Find UUIDs & slugs

Find the UUID or slug for any coin, fiat currency, commodity, indices, stock, exchange, market, or category.

---

# API Pagination Guide | Coinranking API Documentation


# Pagination

Most endpoints that return lists of items support pagination. You can use pagination to retrieve results in smaller chunks, which is especially useful when working with large datasets.


## Pagination methods

The Coinranking API supports two pagination methods:


### 1. Offset-based pagination (deprecated)

The traditional way to paginate using offset and limit parameters:

```
...coins?limit=50&offset=100
```

This method is deprecated and will be removed in a future version. The maximum
supported offset is 5000; requests with a larger offset return an
OFFSET_TOO_LARGE error. To retrieve results beyond that, use cursor-based
pagination instead.


### 2. Cursor-based pagination (recommended)

Cursor-based pagination uses an opaque cursor string to mark your position in the result set:

```
...coins?limit=50&cursor=eyJ0IjoxLCJyIjoxMjM0NTY3ODkwLC...
```

This method is more efficient and provides consistent results even when data changes between requests.


## How cursor pagination works


### Navigating forward

1. First request: Make a request without a cursor to get the first page of results
2. Get the cursor: The response includes a pagination object with a nextCursor value
3. Next request: Use the nextCursor value as the cursor parameter for the next page
4. Repeat: Continue until hasNextPage is false or nextCursor is null


### Navigating backward

You can also navigate backward through results using the previousCursor:

1. Check availability: The response includes hasPreviousPage and previousCursor fields
2. Go back: Use the previousCursor value as the cursor parameter to return to the previous page
3. Repeat: Continue until hasPreviousPage is false or previousCursor is null


### Example flow

First request:

```
GET /v2/coins?limit=10
```

Response:

```
{
  "status": "success",
  "data": {
    "coins": [...]
  },
  "pagination": {
    "limit": 10,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLCJyIjoxMjM0NTY3ODkwLC...",
    "previousCursor": null
  }
}
```

Second request (forward):

```
GET /v2/coins?limit=10&cursor=eyJ0IjoxLCJyIjoxMjM0NTY3ODkwLC...
```

Response:

```
{
  "status": "success",
  "data": {
    "coins": [...]
  },
  "pagination": {
    "limit": 10,
    "hasNextPage": true,
    "hasPreviousPage": true,
    "nextCursor": "eyJ0IjoyLCJyIjo5ODc2NTQzMjEwLC...",
    "previousCursor": "eyJ0IjoxLCJyIjoxMjM0NTY3ODkwLC..."
  }
}
```

Go back (backward):

```
GET /v2/coins?limit=10&cursor=eyJ0IjoxLCJyIjoxMjM0NTY3ODkwLC...
```

This returns you to the previous page of results.


## Pagination response object

All paginated endpoints return a pagination object in their response:

| Property | Type | Description |
| --- | --- | --- |
| limit | Number | The number of items per page (as requested) |
| hasNextPage | Boolean | Whether there are more results available after the current page |
| hasPreviousPage | Boolean | Whether there are results available before the current page |
| nextCursor | String/null | The cursor to use for the next page, or null if there are no more results |
| previousCursor | String/null | The cursor to use for the previous page, or null if on the first page |


## Important notes


## Error responses

| Error | Description |
| --- | --- |
| INVALID_CURSOR | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH | The cursor was created with different orderBy or orderDirection parameters than the current request. Either match the original parameters or start pagination from the beginning. |
| PAGINATION_CONFLICT | Both cursor and offset parameters were provided. Use only one pagination method per request. |
| OFFSET_TOO_LARGE | The offset exceeds the maximum of 5000. Offset-based pagination is deprecated; use cursor-based pagination for deeper results. |


## Supported endpoints

Cursor-based pagination is available on the following endpoints:

Coins:

- Get list of coins
- Get coin market listings
- Get coin exchange listings
- Get coin blockchains

Exchanges:

- Get list of exchanges
- Get exchange coin listings
- Get exchange list of markets

DEXs:

- Get DEX coin listings

Futures:

- Get futures coins
- Get futures coin markets
- Get futures coin exchanges
- Get futures exchanges
- Get futures exchange coins
- Get futures exchange markets
- Get futures markets

Markets:

- Get list of markets

Tags:

- Get list of tags

Assets:

- Get list of assets

Other:

- Get reference currencies
- Get global trading volume history

---

# API Error Reference | Coinranking API Documentation


# Errors

When a request cannot be completed, the API responds with a non-2xx HTTP status
code and a JSON body describing what went wrong. Every error body shares the same
envelope, so you can handle failures with a single code path.


## Error response shape

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```

| Field | Type | Description |
| --- | --- | --- |
| status | String | fail for 4xx client errors, error for 5xx server errors. |
| type / code | String | A stable, machine-readable identifier for the error. Branch on this rather than on message. See the note below on which field is present. |
| message | String | A human-readable explanation. This text may change over time, so do not match on it programmatically. |


## HTTP status codes

| Status | Meaning |
| --- | --- |
| 200 | Success. |
| 401 | Unauthorized — the API key is missing or invalid. |
| 403 | Forbidden — your plan does not include this endpoint. |
| 404 | Not found — the requested resource (or route) does not exist. |
| 410 | Gone — the endpoint has been removed. |
| 422 | Unprocessable entity — a parameter failed validation. |
| 429 | Too many requests — you have hit a rate limit. |
| 5xx | A server-side or upstream error. status is error. Retry with backoff. |


## API errors

These are returned by the API and carry a type field.

| Type | Status | When it happens |
| --- | --- | --- |
| VALIDATION_ERROR | 422 | A query or path parameter failed validation. The message names the offending parameter. |
| COIN_NOT_FOUND | 404 | No coin matches the requested UUID. |
| EXCHANGE_NOT_FOUND | 404 | No exchange matches the requested UUID. |
| MARKET_NOT_FOUND | 404 | No market matches the requested UUID. |
| PRICE_NOT_FOUND | 404 | No price is available for the requested resource. |
| BLOCKCHAIN_NOT_FOUND | 404 | The blockchain is not recognised. See /v2/blockchains for valid values. |
| GAINS_AND_LOSSES_NOT_FOUND | 404 | No gains-and-losses data is available for the request. |
| INVALID_TIMEPERIOD_REFERENCE_COMBINATION | 404 | No change could be calculated for this reference currency in this time period (the reference currency likely did not exist yet). |
| TOO_MANY_REQUESTS | 429 | A per-endpoint fair-use limit was hit — for example the daily quota on deep historical OHLCV requests. Distinct from the gateway's RATE_LIMIT_EXCEEDED. Slow down and retry. |
| REFERENCE_UNAVAILABLE | 422 | The referenceCurrencyUuid is not a valid reference currency. See the reference currencies endpoint. |
| TAG_UNAVAILABLE | 422 | The requested tag is not available. |
| PAGE_UNAVAILABLE | 422 | The requested page slug is not available. |
| INVALID_CURSOR | 422 | The cursor is malformed or could not be decoded. Start pagination from the beginning. |
| CURSOR_MISMATCH | 422 | The cursor was created with a different orderBy/orderDirection. Match the original parameters or start over. |
| PAGINATION_CONFLICT | 422 | Both cursor and offset were supplied. Use only one pagination method per request. |
| OFFSET_TOO_LARGE | 422 | The offset exceeds the maximum of 5000. Use cursor-based pagination for deeper results. |
| UNKNOWN_ERROR | 500 | An unexpected server error. status is error. Retry with backoff and contact support if it persists. |

For more on the pagination errors, see the pagination guide.


## Access & rate-limit errors

These are returned by the gateway and carry a code field.

| Code | Status | When it happens |
| --- | --- | --- |
| UNAUTHORIZED | 401 | The API key is missing or invalid. See authentication. |
| FORBIDDEN | 403 | Your subscription plan does not include this endpoint. Upgrade your plan. |
| RATE_LIMIT_EXCEEDED | 429 | You have reached a rate limit for your plan. See rate limits. |
| PREVIEW_LIMIT_REACHED | 429 | Your account has used this endpoint's daily successful preview allowance. Wait until 00:00 UTC or upgrade for production access. See endpoint previews. |
| PREVIEW_CAPACITY_BUSY | 503 | Requests in progress have reserved the available preview slots. Retry after the Retry-After delay. |
| PREVIEW_UNAVAILABLE | 503 | Preview access is temporarily unavailable. Retry with backoff. |
| NOT_FOUND | 404 | The requested route does not exist. Check the path against the documentation. |
| ENDPOINT_NOT_SUPPORTED | 410 | The endpoint has been removed. Use the latest documentation. |
| BAD_GATEWAY | 502 | The upstream service was unavailable. Retry with backoff. |
| GATEWAY_TIMEOUT | 504 | The upstream service timed out. Retry with backoff. |


### Rate-limit exceeded

When you exceed a rate limit, the gateway returns 429 with a RATE_LIMIT_EXCEEDED body:

```
HTTP/1.1 429 Too Many Requests
{
  "status": "fail",
  "code": "RATE_LIMIT_EXCEEDED",
  "message": "You've reached the API request limit. Please upgrade your subscription plan: https://coinranking.com/api/pricing"
}
```

If the request was made without an API key, the message instead points you to
create a free key. Every response — including this one — carries rate-limit
headers, and 429 responses add a retry-after header telling you how many
seconds to wait before retrying. See the rate limits
page for the full list of headers.


## Handling errors

---

# Endpoint Previews | Coinranking API Documentation


# Endpoint previews

Preview access lets you test eligible REST endpoints before upgrading. Each endpoint page lists the plans with preview access and the plans with production access. Production access uses your normal plan limits without the five-request preview allowance.


## Make a preview request

Call the endpoint's usual URL with your existing API key in the x-access-token header. No preview parameter or separate API key is needed. You must have an active API subscription; an anonymous request cannot use preview access.

For example, a Free, Basic or Startup account can preview coin supply history:

```
curl https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/supply-history \
  -H 'x-access-token: your-api-key'
```


## Daily allowance

You can make five successful requests per restricted endpoint per account per UTC day. The allowance resets at 00:00 UTC. A successful response has a 2xx HTTP status. Failed requests do not consume this preview allowance, although normal rate limits still apply.

The allowance is shared across every API key belonging to your account. Changing resource IDs, query parameters or pagination does not create another allowance. For example, BTC and ETH supply-history requests share the same five requests. Supply history and global market-cap history have separate allowances because they are different endpoints.

Each successful preview also counts toward your normal API usage. Preview access does not provide an extra monthly request allowance.


## Plan limits still apply

| Limit | Free | Basic | Startup and Growth |
| --- | --- | --- | --- |
| Maximum results per response | 100 | 5,000 | 5,000 |
| Historical window, where supported | Past year | Past five years | All available history |

These limits apply to both preview and production requests. Preview access does not unlock a higher plan's result limit, historical window or rate limits. An endpoint can return fewer results or a shorter history when less data is available.

Standard DEX endpoints offer previews to Free, Basic and Startup accounts. Production access requires Growth or higher. Bulk coins download and raw DEX data do not offer previews.


## Response headers

Preview responses include headers for this account's allowance on the requested endpoint:

| Header | Meaning |
| --- | --- |
| x-preview-limit | Maximum successful previews per UTC day, normally 5. |
| x-preview-used | Successful previews already counted today. |
| x-preview-remaining | Available requests after successful previews and requests currently in progress are reserved. |
| x-preview-reset | Unix timestamp in seconds for the next reset at 00:00 UTC. |

Requests currently in progress temporarily reserve a slot, so x-preview-remaining can be lower than x-preview-limit minus x-preview-used.


## When the allowance is unavailable

| Error code | HTTP status | What to do |
| --- | --- | --- |
| PREVIEW_LIMIT_REACHED | 429 | Wait until the next UTC day or upgrade to a plan with production access. |
| PREVIEW_CAPACITY_BUSY | 503 | Other requests have reserved the available preview slots. Retry after the Retry-After delay. |
| PREVIEW_UNAVAILABLE | 503 | Preview access is temporarily unavailable. Retry with backoff. |

For PREVIEW_LIMIT_REACHED, Retry-After gives the number of seconds until the next daily reset. See the error reference for the gateway error response format.

---

# Real-Time Crypto Data API | Coinranking API Documentation


# Real-time

Our real-time API pushes new rates, exchange rates, and tickers to you as soon as they are calculated. The REST endpoints update once a minute; a real-time connection delivers every update in between, without polling.


## Topics

There are three topics. Each one is available over both transports, with the same query parameters and the same messages.

| Topic | What you receive | Subscribe to |
| --- | --- | --- |
| Rates | The aggregated price and 24 hour volume of a coin, across all exchanges. | Coins |
| Exchange Rates | The price and 24 hour volume of a coin on one exchange. | Exchange-coin pairs, exchanges, or coins |
| Tickers | Trading pair data per market, including base and quote volumes. | Markets, exchanges, or coins |


## Choosing a transport

WebSockets and Server-Sent Events (SSE) deliver exactly the same JSON messages. Only the way you connect differs, so you can switch from one to the other without changing how you handle the data. The URLs only differ in the scheme and the /sse segment:

```
wss://api.coinranking.com/v2/real-time/rates
```

```
https://api.coinranking.com/v2/real-time/sse/rates
```

|  | WebSockets | Server-Sent Events |
| --- | --- | --- |
| Connection | Two-way WebSocket connection | One-way: a regular GET request whose response stays open |
| Changing subscriptions | Send a subscription message on the open connection | Close the current stream and open a new one with the new URL |
| Reconnecting | Reconnect with the same URL; send subscriptions you set with a message again | Reconnect with the same URL, which restores everything; EventSource does this automatically |
| Errors | An error message on the open connection; browsers hide why a connection is refused | A normal HTTP status with a JSON error body |
| Trying it out | Needs a WebSocket client | curl in a terminal |
| Clients | The browser's WebSocket, or any WebSocket library | curl, fetch, the browser's EventSource, or any HTTP library that can read a streaming response |

Delivery is the same on both: the server sends every message to WebSocket and Server-Sent Events clients at the same moment, both transports send a heartbeat every 25 seconds, and both end when the real-time service is deployed, so every client needs to reconnect. Neither replays messages that were sent while you were disconnected. Choose the transport that fits how your application works.

Server-Sent Events: the simplest to build and debug

- Works with curl, fetch, and any HTTP library, without an extra dependency.
- A rejected request explains itself with an HTTP status and an error code.
- The subscription lives in the URL, so reconnecting restores everything.
- Easy to proxy through your own server, which keeps your API key out of the browser.

WebSockets: the best fit when subscriptions change

- Change what you receive on the open connection, for example when a user edits a watchlist, without reconnecting.
- Connect once, then subscribe and resubscribe as the user moves through your application.
- Supported by the browser and by WebSocket libraries for every major language.


## Plans and API usage

Real-time streaming requires the Professional plan or higher. Your plan’s connection limits and minimum update interval apply.

Real-time connections count toward the API usage of your plan. See pricing for the limits of each plan.


## Starting values

A connection carries updates only; it does not send the current values when it opens. If your application needs a starting value before the first update arrives, fetch it from the coins, exchange coin listings, or markets endpoints first.

---

# Real-Time WebSocket API | Coinranking API Documentation


# WebSockets

A WebSocket is a persistent, two-way connection. You open it once, receive new data as soon as it is calculated, and change your subscriptions at any time by sending a message, without reconnecting.

This page explains how to connect and how to manage a connection. What you can subscribe to, and the messages you receive, are described per topic: Rates, Exchange Rates, and Tickers. Prefer plain HTTP? The same topics are available as Server-Sent Events.


## Authentication

The browser's WebSocket API cannot set request headers, so authenticate with a query parameter:

```
wss://api.coinranking.com/v2/real-time/rates?x-access-token=your-api-key
```

Server-side WebSocket libraries can set headers on the opening request. There, send the key in the x-access-token header instead, exactly as for the REST endpoints, which keeps it out of URLs and logs. A key in a web page is visible to every visitor, so for a public website, connect from your server and relay the data to the browser.


## Connection Setup

Real-time streaming requires the Professional plan or higher. Your plan’s connection limits and minimum update interval apply.

The optional throttle supports 1s, 5s, 10s, 30s, or 60s. When omitted in the URL or a subscription message, it uses your plan’s minimum interval. A supported value faster than your plan allows is rejected with THROTTLE_NOT_ALLOWED.

Open a connection to the path of the topic you want to receive:

```
wss://api.coinranking.com/v2/real-time/rates
```

```
wss://api.coinranking.com/v2/real-time/exchange-rates
```

```
wss://api.coinranking.com/v2/real-time/tickers
```

A connection receives one topic. You can subscribe in two ways, and combine them:

1. URL query parameters: put your subscriptions in the connection URL. This is the simplest option when you know what you need when you connect. The parameters are listed on each topic page.
2. Subscription messages: send a JSON message through the open connection to set or change your subscriptions.

A connection without any subscription is accepted; it receives nothing until you send a subscription message.


## Subscription Messages

Send a JSON object with the subscription fields of the topic you connected to, and optionally a throttle:

```
{
  "throttle": "10s",
  "currencyUuids": ["Qwsogvtv82FCd", "razxDUgYGNAdQ"]
}
```

| Topic | Subscription fields (choose one) |
| --- | --- |
| Rates | currencyUuids |
| Exchange Rates | references, exchangeUuids, or currencyUuids |
| Tickers | marketUuids, exchangeUuids, or currencyUuids |

- A message replaces your subscription. It does not add to what you subscribed to before, whether in the URL or in an earlier message. The same goes for the throttle: a message without throttle sets it back to your plan’s minimum interval.
- Every accepted message is answered with a confirmation listing your subscriptions and throttle.
- A refused message leaves your previous subscription unchanged. You receive an error message, the connection stays open, and the data you were already subscribed to keeps arriving.
- list=all is only available as a URL query parameter. To switch to or from a full list, open a new connection.


## Code examples

```
// Connect with subscriptions specified in the URL
const connection = new WebSocket(
  'wss://api.coinranking.com/v2/real-time/rates?x-access-token=your-api-key&currency-uuids[]=Qwsogvtv82FCd&currency-uuids[]=razxDUgYGNAdQ&throttle=10s'
);

connection.onmessage = (event) => {
  const message = JSON.parse(event.data);
  console.log(message);
};
```

```
// Connect first, then send a JSON formatted subscription message
const connection = new WebSocket('wss://api.coinranking.com/v2/real-time/rates?x-access-token=your-api-key');

connection.onopen = () => {
  connection.send(JSON.stringify({
    throttle: '10s',
    currencyUuids: ['Qwsogvtv82FCd', 'razxDUgYGNAdQ'],
  }));
};

connection.onmessage = (event) => {
  const message = JSON.parse(event.data);

  if (message.type === 'confirmation') console.log('Subscribed to', message.subscriptions);
  else if (message.type === 'error') console.error(message.code, message.errors);
  else console.log(message);
};
```

```
// Server-side, with the ws package: send the API key in a header
import WebSocket from 'ws';

const connection = new WebSocket(
  'wss://api.coinranking.com/v2/real-time/rates?currency-uuids[]=Qwsogvtv82FCd&throttle=10s',
  { headers: { 'x-access-token': process.env.COINRANKING_API_KEY } }
);

connection.on('message', (data) => {
  console.log(JSON.parse(data));
});
```

```
GET /v2/real-time/rates?x-access-token=your-api-key HTTP/1.1
Host: api.coinranking.com
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: q4xkcO32u266gldTuKaSOw==
```


## Messages

Every message from the server is a JSON text frame with a type field:

- rate, exchange-rate, or ticker: a data message. Its fields are described on the topic page.
- confirmation: the answer to an accepted subscription message. A connection also receives one when it opens, confirming its URL subscriptions and effective throttle.
- error: a refused URL parameter or subscription message, see Errors.

```
{
  "type": "confirmation",
  "topic": "rate",
  "throttle": "10s",
  "subscriptions": ["Qwsogvtv82FCd", "razxDUgYGNAdQ"]
}
```


## Errors

Refused before the connection opens. A missing or unknown API key, an account without an active API subscription, or an exhausted rate limit is refused during the HTTP upgrade, before any WebSocket exists. The response is a normal 401, 403, or 429 with the same JSON body as on the Server-Sent Events endpoint. Browsers do not expose that response: the WebSocket only fires an error event followed by a close event with code 1006. To see the reason, request the Server-Sent Events URL of the same topic with the same key, which is refused with the same status and body.

Refused after the connection opens. An invalid URL parameter or subscription message is answered with an error message. After an invalid URL parameter, the server closes the connection; after an invalid subscription message, the connection stays open.

```
{
  "type": "error",
  "code": "UNKNOWN_CURRENCY_UUID",
  "errors": ["Could not find coins with the following UUIDs: notarealuuid"]
}
```

The codes are the same on both transports. Match on code rather than on the text in errors; the messages may be reworded.

| Code | Meaning |
| --- | --- |
| INVALID_THROTTLE | The throttle in the URL or in a subscription message is not one of 1s, 5s, 10s, 30s, or 60s. A supported value faster than your plan allows returns THROTTLE_NOT_ALLOWED instead. |
| INVALID_SUBSCRIPTION | More than one kind of subscription was given, or a references entry is not in the exchangeUuid_currencyUuid format. |
| TOO_MANY_UUIDS | More than 100 UUIDs in one subscription. |
| UNKNOWN_CURRENCY_UUIDUNKNOWN_MARKET_UUIDUNKNOWN_EXCHANGE_UUID | One or more UUIDs do not exist. The whole subscription is refused, and the error lists the offending UUIDs. |
| THROTTLE_NOT_ALLOWED | The requested update interval is faster than your plan allows. An opening request is followed by close code 1008. A rejected subscription message leaves the existing connection unchanged. Equivalent SSE status: 403. |
| STREAM_CONNECTION_LIMIT | Your account has reached its shared WebSocket and SSE connection limit. Close an existing connection before opening another. The server sends this error and closes with code 1008. Equivalent SSE status: 429. |
| STREAMING_UNAVAILABLE | Streaming capacity could not be checked. The server sends this error and closes with code 1008. Retry after a delay. Equivalent SSE status: 503. |
| STREAM_ACCESS_REQUIRED | The stream is missing valid gateway authorization. Use the documented api.coinranking.com URL with your API key. The server sends this error and closes with code 1008. Equivalent SSE status: 403. |
| FORBIDDEN | The gateway refuses the HTTP upgrade with status 403 when streaming access is not configured for the plan, the feed is disabled, or a route access policy refuses the request. |
| INVALID_MESSAGE | A subscription message is not a JSON object, or one of its subscription fields is not an array of strings. |
| INTERNAL_SERVER_ERROR | Something went wrong on our side. The error carries a reference you can quote when contacting support. |


## Reconnecting

There is no maximum connection duration. The server sends a WebSocket ping frame every 25 seconds, which browsers and WebSocket libraries answer automatically. A connection that leaves two consecutive pings unanswered is closed, so a client that stops responding is cut off rather than buffered without bound.

When the real-time service is deployed or restarted, every connection is closed with code 1001. Reconnect after a short delay. Subscriptions in the URL are restored by reconnecting with the same URL; subscriptions you set with a message have to be sent again. Opening a connection counts toward your rate limit, so do not retry a refused connection without fixing its cause, and back off when you hit the limit.

---

# Real-Time Server-Sent Events | Coinranking API Documentation


# Server-Sent Events

Server-Sent Events (SSE) deliver the same real-time rates, exchange rates, and tickers as our WebSockets, over a plain HTTP response that stays open. Use it when a WebSocket client is not available or not wanted: from the browser's built-in EventSource, from curl, or from any HTTP library that can read a response as it arrives.

An SSE stream is a regular GET request. The server answers with content-type: text/event-stream and then keeps writing one line per message for as long as the connection stays open. The query parameters, the messages, and the plan requirements are identical to the WebSockets, so you can switch between the two transports without changing what you receive. They are described per topic: Rates, Exchange Rates, and Tickers.


## Authentication

Send your API key in the x-access-token header, exactly as for the REST endpoints. This is the preferred method for every client that can set headers: curl, fetch, and server-side HTTP libraries.

```
curl -N 'https://api.coinranking.com/v2/real-time/sse/rates?list=all' \
  -H 'x-access-token: your-api-key'
```

The browser's built-in EventSource cannot set request headers. For that case only, the key is also accepted as a query parameter, just like on the WebSockets:

```
https://api.coinranking.com/v2/real-time/sse/rates?x-access-token=your-api-key
```

A key in the query string ends up in browser histories, access logs, and referrer headers, so use the header wherever you can. For a public website, keep the key on your server and proxy the stream through your own origin.


## Connection Setup

Real-time streaming requires the Professional plan or higher. Your plan’s connection limits and minimum update interval apply.

Open a stream by requesting one of the three paths. Each path mirrors the WebSocket path of the same name:

```
https://api.coinranking.com/v2/real-time/sse/rates
```

```
https://api.coinranking.com/v2/real-time/sse/exchange-rates
```

```
https://api.coinranking.com/v2/real-time/sse/tickers
```

- Rates /sse/rates - Aggregated price and 24 hour volume per coin.
- Exchange Rates /sse/exchange-rates - Price and 24 hour volume of a coin on a specific exchange.
- Tickers /sse/tickers - Trading pair data per market, including base and quote volumes.

The stream is one-way. Unlike the WebSockets, there are no subscription messages: everything you want to receive is specified in the URL when you open the stream. To change your subscriptions, close the stream and open a new one with the new parameters.


## URL Query Parameters

The query parameters are the same as on the WebSockets and are described on each topic page. Each stream needs exactly one subscription parameter; you cannot mix them, and unlike a WebSocket, a stream without a subscription is refused, because there is no way to subscribe after opening it.

| Path | Subscription parameter (choose one) |
| --- | --- |
| /sse/rates | currency-uuids[] or list=all |
| /sse/exchange-rates | references[], exchange-uuids[], currency-uuids[], or list=all |
| /sse/tickers | market-uuids[], exchange-uuids[], currency-uuids[], or list=all |

All paths accept an optional throttle of 1s, 5s, 10s, 30s, or 60s. When omitted, it defaults to your plan’s minimum update interval. A supported value faster than your plan allows is rejected with THROTTLE_NOT_ALLOWED. A list=all stream is high-volume: a client that stops reading is disconnected, see Reconnecting.


## Code examples

The fetch and Python examples read the status and error body of a rejected request before they start streaming. The EventSource example is the quickest way to try the stream from a browser, but it puts the API key in the page and cannot see why a request was rejected; see Using the stream from a website and Error handling in the browser before using it in an integration.

```
# -N disables output buffering, -g stops curl from interpreting the [] in the URL
curl -N -g 'https://api.coinranking.com/v2/real-time/sse/rates?currency-uuids[]=Qwsogvtv82FCd&currency-uuids[]=razxDUgYGNAdQ&throttle=10s' \
  -H 'x-access-token: your-api-key'
```

```
// Works in browsers, Node.js 18+, Deno, and Bun
const url = 'https://api.coinranking.com/v2/real-time/sse/rates?currency-uuids[]=Qwsogvtv82FCd&currency-uuids[]=razxDUgYGNAdQ&throttle=10s';

const response = await fetch(url, {
  headers: { 'x-access-token': 'your-api-key' },
});

if (!response.ok) {
  // Rejected before the stream started; the body explains why
  const { code, message } = await response.json();
  throw new Error(`HTTP ${response.status} ${code}: ${message}`);
}

const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
let buffer = '';

while (true) {
  const { value, done } = await reader.read();
  if (done) break; // The stream ended, e.g. because of a deploy: reconnect with the same URL

  buffer += value;

  // Every message ends with a blank line (LF today, but the spec allows CRLF)
  let boundary = buffer.match(/\r?\n\r?\n/);
  while (boundary) {
    const frame = buffer.slice(0, boundary.index);
    buffer = buffer.slice(boundary.index + boundary[0].length);
    boundary = buffer.match(/\r?\n\r?\n/);

    const data = frame
      .split(/\r?\n/)
      .filter((line) => line.startsWith('data:'))
      .map((line) => line.slice(5).trim())
      .join('\n');

    // "retry:" and ":ping" frames carry no data
    if (data) console.log(JSON.parse(data));
  }
}
```

```
// For testing only: the API key is visible to anyone who can see the page.
// On a real site, point EventSource at a proxy route on your own server instead.
const source = new EventSource(
  'https://api.coinranking.com/v2/real-time/sse/rates?x-access-token=your-api-key&currency-uuids[]=Qwsogvtv82FCd&currency-uuids[]=razxDUgYGNAdQ&throttle=10s'
);

// Messages are sent without an event name, so all of them arrive here
source.onmessage = (event) => {
  const message = JSON.parse(event.data);
  console.log(message);
};
```

```
import json
import requests

url = 'https://api.coinranking.com/v2/real-time/sse/rates'
params = {
    'currency-uuids[]': ['Qwsogvtv82FCd', 'razxDUgYGNAdQ'],
    'throttle': '10s',
}
headers = {'x-access-token': 'your-api-key'}

with requests.get(url, params=params, headers=headers, stream=True) as response:
    if response.status_code != 200:
        # Rejected before the stream started; the body explains why
        error = response.json()
        raise RuntimeError(f"HTTP {response.status_code} {error['code']}: {error['message']}")

    for line in response.iter_lines(decode_unicode=True):
        # Blank lines end a message, ":ping" and "retry:" lines carry no data
        if line.startswith('data:'):
            message = json.loads(line[len('data:'):].strip())
            print(message)
```


## Stream Format

A successful request is answered with status 200, content-type: text/event-stream; charset=utf-8, cache-control: no-cache, no-transform, access-control-allow-origin: *, and the usual ratelimit-* headers. The body follows the standard Server-Sent Events format: lines grouped into messages, with a blank line ending each message. Lines end in \n today; a parser should accept \r\n as well, as the SSE specification allows either.

```
retry: 5000

data: {"type":"confirmation","topic":"rate","throttle":"1s","subscriptions":["Qwsogvtv82FCd"]}

data: {"currencyUuid":"Qwsogvtv82FCd","price":"77348.906368714524","volume":"19604392582.842590","type":"rate"}

:ping
```

- retry: 5000 is sent once, at the start of the stream. It tells EventSource to wait five seconds before reconnecting when the stream ends.
- data: lines each carry one JSON message: the same message the WebSocket would send as one frame. Messages have no event: name, so EventSource.onmessage receives all of them. The type field tells them apart.
- :ping is a comment line sent every 25 seconds to keep the connection alive. Ignore it; EventSource does so automatically.

There are no id: lines, so Last-Event-ID replay is not supported: a reconnect resumes with the next update, not with what was missed. The stream carries updates only and does not send a snapshot on connect; see starting values.


## Responses

The stream carries two kinds of messages:


### Confirmation Messages

The first message on every stream confirms what you are subscribed to and with which throttle. It has the same shape as the WebSocket confirmation:

```
{
  "type": "confirmation",
  "topic": "rate",
  "throttle": "10s",
  "subscriptions": ["Qwsogvtv82FCd", "razxDUgYGNAdQ"]
}
```

The topic is rate, exchange-rate, or ticker, matching the path you opened.


### Data Messages

After the confirmation, you receive a data message whenever new data is available for one of your subscriptions. These are the same messages the WebSocket sends, for example a rate from /sse/rates:

```
{
  "type": "rate",
  "currencyUuid": "Qwsogvtv82FCd",
  "price": "125423.835504191964312353",
  "volume": "6270550403.287645846237386287"
}
```

The type is rate, exchange-rate, or ticker, matching the path. The fields of each are described on the topic pages:

- Rates: currencyUuid, price, volume
- Exchange Rates: exchangeUuid, currencyUuid, exchangeType, price, volume
- Tickers: marketUuid, exchangeUuid, baseUuid, quoteUuid, exchangeType, price, close, baseVolume, quoteVolume, volume, filters


## Errors

A request is validated in full before the stream starts. If anything is wrong, the response is a normal HTTP error with a JSON body instead of a stream, and nothing is streamed. The body has the same shape as every other error response of the API: a status (fail for 4xx, error for 5xx), a machine-readable code, and a human-readable message.

```
HTTP/1.1 400 Bad Request
{
  "status": "fail",
  "code": "INVALID_THROTTLE",
  "message": "Throttle \"2s\" is not supported"
}
```

Unknown UUIDs reject the whole request. Validation is all-or-nothing, the same as on the WebSockets: if any UUID in your subscription does not exist, the request is rejected and the message lists the UUIDs that could not be found. Remove or correct them and open the stream again.

```
HTTP/1.1 400 Bad Request
{
  "status": "fail",
  "code": "UNKNOWN_CURRENCY_UUID",
  "message": "Could not find coins with the following UUIDs: notarealuuid"
}
```

Match on code rather than on message; the messages may be reworded.

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | INVALID_THROTTLE | The throttle is not one of 1s, 5s, 10s, 30s, or 60s. A supported value faster than your plan allows returns THROTTLE_NOT_ALLOWED instead. |
| 400 | INVALID_SUBSCRIPTION | No subscription parameter was given, more than one was given, or a references[] entry is not in the exchangeUuid_currencyUuid format. Unlike the WebSockets, a stream without subscriptions is refused, because there is no way to subscribe after opening it. |
| 400 | TOO_MANY_UUIDS | More than 100 UUIDs in one subscription. |
| 400 | UNKNOWN_CURRENCY_UUIDUNKNOWN_MARKET_UUIDUNKNOWN_EXCHANGE_UUID | One or more UUIDs do not exist. The whole request is rejected and the message lists the offending UUIDs. |
| 401 | UNAUTHORIZED | The API key does not exist. |
| 403 | FORBIDDEN | The API key or subscription does not grant streaming access, the feed is disabled, or streaming limits are not configured for the plan. |
| 403 | THROTTLE_NOT_ALLOWED | The requested update interval is faster than your plan allows. Omit throttle to use your plan’s minimum, or choose a supported slower interval. |
| 403 | STREAM_ACCESS_REQUIRED | The stream is missing valid gateway authorization. Use the documented api.coinranking.com URL with your API key. If the error persists, contact support. |
| 404 | NOT_FOUND | Unknown path. Note that /v2/real-time/rates without /sse/ is the WebSocket path, which also answers 404 to a plain HTTP request. |
| 429 | STREAM_CONNECTION_LIMIT | Your account has reached its shared WebSocket and SSE connection limit. Close an existing connection before opening another. |
| 429 | RATE_LIMIT_EXCEEDED | Your rate limit is exhausted. Wait for the window in the ratelimit-reset header before reconnecting. |
| 500 | INTERNAL_SERVER_ERROR | Something went wrong on our side. The body has status error, and the message carries a reference you can quote when contacting support. |
| 503 | STREAMING_UNAVAILABLE | Streaming capacity could not be checked. Retry after a delay. This is a temporary service error, not an instruction to upgrade. |


## Using the stream from a website

A page that calls the API directly has to put the key in the URL, where every visitor can read it, and it cannot see why a request was refused. Production sites avoid both by proxying the stream through their own origin: a small route on your server adds the key, opens the upstream stream, and pipes it back to the browser unchanged. The browser then uses EventSource against your own domain, so there is no key in the page and no cross-origin request.

```
// Node.js 18+. GET /stream/rates?currency-uuids[]=... on your server becomes
// a Coinranking stream with the key added here, never in the browser.
import http from 'node:http';
import { Readable } from 'node:stream';

http.createServer(async (req, res) => {
  const url = new URL(req.url, 'http://localhost');
  if (url.pathname !== '/stream/rates') return res.writeHead(404).end();

  // When the tab goes away, end the upstream stream too. The response's close
  // event fires when the browser disconnects.
  const controller = new AbortController();
  res.once('close', () => controller.abort());

  const upstream = await fetch(
    `https://api.coinranking.com/v2/real-time/sse/rates${url.search}`,
    { headers: { 'x-access-token': process.env.COINRANKING_API_KEY }, signal: controller.signal }
  ).catch(() => null);
  if (!upstream) {
    // Either the tab closed before Coinranking answered, or Coinranking is unreachable
    if (!res.destroyed) res.writeHead(502).end();
    return;
  }

  // A refused request (JSON, non-200) passes through as-is, so the browser can read it
  res.writeHead(upstream.status, {
    'content-type': upstream.headers.get('content-type'),
    'cache-control': 'no-cache, no-transform',
  });
  Readable.fromWeb(upstream.body).on('error', () => res.end()).pipe(res);
}).listen(3000);
```

Three things to keep in mind when you build this:

- Do not buffer. Compression middleware and reverse proxies often hold the response until it ends, which for a stream is never. Disable compression for the route and, behind nginx, set proxy_buffering off.
- Every browser connection is one upstream stream, which counts toward your API usage and rate limit. For a site with many visitors, open one upstream stream per distinct subscription and broadcast its messages to all browsers that want it, instead of one upstream stream per tab.
- Only forward the query parameters you intend to expose. The route above passes the query string through unchanged, which lets any visitor subscribe to anything your key allows. Allow-list the UUIDs or build the upstream URL yourself.

Because the proxy sees the real status and body, it can also turn a refusal into whatever your page finds easiest to handle, for example a single data: frame on a 200. That side-steps the EventSource limitation described in the next section.


## Error handling in the browser

The browser's built-in EventSource cannot read the status code or the body of a response that is not a 200 stream. When a request is rejected, it fires a bare error event with readyState === EventSource.CLOSED and does not retry. From that event alone, your page cannot tell a wrong UUID from a wrong API key or an exhausted rate limit. A dropped connection looks different: readyState stays EventSource.CONNECTING and the browser reconnects by itself.


### Recommended: a fetch-based client

For real integrations, read the stream with fetch instead. Reading response.body and splitting it on blank lines takes a few lines, as shown in the JavaScript (fetch) tab above. It works in browsers as well as Node.js, Deno, and Bun, it exposes the status, code, and message of every rejected request, and it lets you send the API key in a header instead of the URL. If you prefer a library, @microsoft/fetch-event-source does the same with reconnects handled for you:

```
import { fetchEventSource } from '@microsoft/fetch-event-source';

await fetchEventSource('https://api.coinranking.com/v2/real-time/sse/rates?currency-uuids[]=Qwsogvtv82FCd', {
  headers: { 'x-access-token': 'your-api-key' },
  async onopen(response) {
    if (response.ok) return;
    // Rejected before the stream started; throwing stops the retries
    const { code, message } = await response.json();
    throw new Error(`HTTP ${response.status} ${code}: ${message}`);
  },
  onmessage(event) {
    console.log(JSON.parse(event.data));
  },
});
```


### Diagnosing a rejected EventSource request

If you keep using EventSource, treat an error event with readyState === EventSource.CLOSED right after opening as a rejected request. Then do a single plain fetch of the same URL to read the status, code, and message. If that request unexpectedly succeeds, abort it right away so you do not leave a second stream open.

```
const url = 'https://api.coinranking.com/v2/real-time/sse/rates?x-access-token=your-api-key&currency-uuids[]=Qwsogvtv82FCd';
const source = new EventSource(url);

source.onmessage = (event) => {
  console.log(JSON.parse(event.data));
};

source.onerror = async () => {
  // CONNECTING means the connection dropped; the browser retries by itself
  if (source.readyState !== EventSource.CLOSED) return;

  // CLOSED means the request was rejected. EventSource hides the reason, so
  // fetch the same URL once to read the status and the error body.
  const controller = new AbortController();
  const response = await fetch(url, { signal: controller.signal });

  if (response.ok) {
    controller.abort(); // It succeeded this time: do not leave the stream open
    return;
  }

  const { code, message } = await response.json();
  console.error(`HTTP ${response.status} ${code}: ${message}`);
};
```


## Reconnecting

There is no maximum stream duration. A stream ends in three cases: the real-time service is deployed or restarted, which ends every open stream cleanly; you close it; or your client stops reading. In the last case the server terminates the stream once two consecutive :ping heartbeats are left unread, roughly a minute, so a consumer that cannot keep up with a list=all stream is cut off rather than buffered without bound. Idle timeouts on the way do not apply as long as the heartbeats flow.

The subscriptions live in the URL, so reconnecting with the same URL restores everything; there is no state to rebuild. EventSource reconnects on its own after the five seconds announced by retry: 5000. Other clients should reconnect after a similar short delay. Opening a stream counts toward your rate limit, so do not retry a rejected request without fixing its cause, and back off when the response is a 429.

---

# Real-Time Coin Rates | Coinranking API Documentation


# Rates

Rates provide aggregated price and volume data for cryptocurrencies across all exchanges. They represent the consolidated market data that Coinranking calculates for each coin.

The fastest way to get new rates is to subscribe to them in real-time. You can request rates through
  our coins endpoints too, but they will only
  update once a minute. A real-time connection pushes new rates as soon as they are calculated, so you
  get the latest price and 24 hour volume without polling.


## Connection Setup

Real-time streaming requires the Professional plan or higher. Your plan’s connection limits and minimum update interval apply.

Rates are available over both transports, with the same query parameters and the same messages:

```
wss://api.coinranking.com/v2/real-time/rates
```

```
https://api.coinranking.com/v2/real-time/sse/rates
```

How to authenticate, connect, and reconnect is described on the WebSockets and Server-Sent Events pages. Not sure which one to use? See choosing a transport.


## URL Query Parameters

Add the parameters to either URL. Choose one subscription parameter, currency-uuids[] or list, and optionally a throttle.

| Parameter | Description |
| --- | --- |
| currency-uuids[] Array | With the currency UUIDs parameter, you can select which coins to subscribe to. Provide a list of coin UUIDs to make your selection, use our other endpoints or our website to find the UUIDs of coins you want. There is a maximum of hundred UUIDs you can subscribe to within one connection. You can find UUIDs for all our coins in our dedicated reference currency endpoint   Note: Use array notation in the URL: currency-uuids[]=Qwsogvtv82FCd  Size range:  1-100  Example: ?currency-uuids[]=Qwsogvtv82FCd&currency-uuids[]=razxDUgYGNAdQ |
| list String | Subscribe to the rates of all coins instead of a selection. This is a high-volume stream, so make sure your client keeps up with it. Allowed values:  all  Example: ?list=all |
| throttle (optional) String | With the throttle parameter, you prevent getting overloaded with rates. This is useful if performance is an issue, e.g. when streaming rates to your frontend and you want to prevent straining your client's devices too much. Throttling works per coin. If you select a throttle, this means rates for the same coin will not be pushed more than once within the specified duration. When you have subscribed to multiple coins, you still receive more messages within the specified duration. Supported intervals are 1s, 5s, 10s, 30s and 60s. Default value:  Your plan’s minimum interval Allowed values:  1s 5s 10s 30s 60s For plans with streaming access, an omitted throttle uses the plan’s minimum interval (1s on Professional). Faster requests are rejected. Throttle settings do not grant streaming access to other plans.  Example: ?currency-uuids[]=Qwsogvtv82FCd&throttle=10s |


## Subscription Messages

WebSockets only. On an open WebSocket, you can change your subscription by sending a JSON message, without reconnecting. See subscription messages for how they work. A Server-Sent Events stream cannot be changed: close it and open a new stream with the new parameters instead.

```
{
  "throttle": "10s",
  "currencyUuids": ["Qwsogvtv82FCd", "razxDUgYGNAdQ"]
}
```


## Code examples

```
const connection = new WebSocket(
  'wss://api.coinranking.com/v2/real-time/rates?x-access-token=your-api-key&currency-uuids[]=Qwsogvtv82FCd&currency-uuids[]=razxDUgYGNAdQ&throttle=10s'
);

connection.onmessage = (event) => {
  const rate = JSON.parse(event.data);
  console.log(rate);
};
```

```
# -N disables output buffering, -g stops curl from interpreting the [] in the URL
curl -N -g 'https://api.coinranking.com/v2/real-time/sse/rates?currency-uuids[]=Qwsogvtv82FCd&currency-uuids[]=razxDUgYGNAdQ&throttle=10s' \
  -H 'x-access-token: your-api-key'
```

More examples, including subscription messages and a fetch-based stream reader, are on the WebSockets and Server-Sent Events pages.


## Responses


### Data Messages

When subscribed to rates, you receive aggregated price and volume data for cryptocurrencies. Rates represent consolidated market data calculated by Coinranking across all exchanges, providing a single unified price and 24-hour volume for each coin. Each rate message includes the currency UUID to identify which cryptocurrency the data represents, making it easy to track multiple coins simultaneously.

```
{
  "type": "rate",
  "currencyUuid": "Qwsogvtv82FCd",
  "price": "125423.835504191964312353",
  "volume": "6270550403.287645846237386287"
}
```


### Confirmation Messages

A confirmation lists what you are subscribed to and with which throttle. A Server-Sent Events stream sends it as its first message; a WebSocket sends it in answer to a subscription message.

```
{
  "type": "confirmation",
  "topic": "rate",
  "throttle": "10s",
  "subscriptions": ["Qwsogvtv82FCd", "razxDUgYGNAdQ"]
}
```


### Response Fields

When subscribed to one or more coins, you receive new rates whenever they are available. Each of
these rates includes the UUID of the coin the rate pertains to, which is especially useful when
you are subscribed to multiple coins. Rates include the latest price and 24-hour moving volume,
both in US dollars.

Unlike our coin endpoints, we do not support other
reference currencies than US dollars in
real-time. You can, however, subscribe to multiple coins, which allows you to calculate them
yourself.

| Property | Description |
| --- | --- |
| type String | The kind of message. Always rate for a data message on this topic. |
| currencyUuid String | The currency UUID of this rate. Useful if you subscribed to multiple currencies, in which case the UUID helps you determine to what coin the rate belongs. |
| price String | The latest price of a coin, in US Dollar. |
| volume String | The latest 24 hour volume of this coin (a moving sum), in US Dollar. |

---

# Real-Time Exchange Rates | Coinranking API Documentation


# Exchange Rates

Exchange rates show the price and volume of specific cryptocurrencies on individual exchanges, unlike rates, which aggregate data from multiple exchanges.

The fastest way to get new exchange rates is to subscribe to them in real-time. You can request rates through
  our exchange coin listings endpoints too, but they will only
  update once a minute. A real-time connection pushes new exchange rates as soon as they are calculated, so you
  get the latest price and 24 hour volume without polling.


## Connection Setup

Real-time streaming requires the Professional plan or higher. Your plan’s connection limits and minimum update interval apply.

Exchange rates are available over both transports, with the same query parameters and the same messages:

```
wss://api.coinranking.com/v2/real-time/exchange-rates
```

```
https://api.coinranking.com/v2/real-time/sse/exchange-rates
```

How to authenticate, connect, and reconnect is described on the WebSockets and Server-Sent Events pages. Not sure which one to use? See choosing a transport.


## URL Query Parameters

Add the parameters to either URL, and optionally a throttle.

Important: You must choose only ONE of the following subscription parameters: references, exchange-uuids, currency-uuids, or list. You cannot mix different parameter types.

| Parameter | Description |
| --- | --- |
| references[] Array | Subscribe to specific exchange-currency pairs. Each reference must follow the format: exchangeUuid_currencyUuid This allows you to get rates for specific trading pairs on specific exchanges. Note: Use array notation in the URL: references[]=-zdvbieRdZ_Qwsogvtv82FCd  Size range:  1-100  Example: ?references[]=-zdvbieRdZ_Qwsogvtv82FCd |
| exchange-uuids[] Array | Subscribe to all rates for specific exchanges. This will give you all currency rates available on the selected exchanges. Provide a list of exchange UUIDs to make your selection. You can find exchange UUIDs in our exchanges endpoint   Note: Use array notation in the URL: exchange-uuids[]=-zdvbieRdZ  Size range:  1-100  Example: ?exchange-uuids[]=-zdvbieRdZ |
| currency-uuids[] Array | Subscribe to all rates for specific currencies across all exchanges. This will give you rates for the selected currencies from all available exchanges. Centralized exchange data requires a plan with streaming access. Decentralized exchange data also requires the Real-Time DEX Data add-on. Your plan’s connection limits and minimum update interval apply. Provide a list of currency UUIDs to make your selection. You can find currency UUIDs in our reference currencies endpoint   Note: Use array notation in the URL: currency-uuids[]=Qwsogvtv82FCd  Size range:  1-100  Example: ?currency-uuids[]=Qwsogvtv82FCd |
| list String | Subscribe to the rates of all coins on all exchanges instead of a selection. This is a high-volume stream, so make sure your client keeps up with it. Centralized exchange data requires a plan with streaming access. Decentralized exchange data also requires the Real-Time DEX Data add-on. Your plan’s connection limits and minimum update interval apply. Allowed values:  all  Example: ?list=all |
| throttle (optional) String | With the throttle parameter, you prevent getting overloaded with exchange rates. This is useful if performance is an issue, e.g. when streaming exchange rates to your frontend and you want to prevent straining your client's devices too much. Throttling works per exchange-currency pair. If you select a throttle, this means rates for the same pair will not be pushed more than once within the specified duration. Default value:  Your plan’s minimum interval Allowed values:  1s 5s 10s 30s 60s For plans with streaming access, an omitted throttle uses the plan’s minimum interval (1s on Professional). Faster requests are rejected. Throttle settings do not grant streaming access to other plans.  Example: ?exchange-uuids[]=-zdvbieRdZ&throttle=10s |


## Subscription Messages

WebSockets only. On an open WebSocket, you can change your subscription by sending a JSON message, without reconnecting. See subscription messages for how they work. A Server-Sent Events stream cannot be changed: close it and open a new stream with the new parameters instead.

Choose only ONE subscription type per message:

```
{
  "exchangeUuids": ["-zdvbieRdZ", "TjMe3QlK0"],
  "throttle": "10s"
}
```

Or using currency UUIDs:

```
{
  "currencyUuids": ["Qwsogvtv82FCd"],
  "throttle": "10s"
}
```

Or using references:

```
{
  "references": ["-zdvbieRdZ_Qwsogvtv82FCd"],
  "throttle": "10s"
}
```


## Code examples

```
const connection = new WebSocket(
  'wss://api.coinranking.com/v2/real-time/exchange-rates?x-access-token=your-api-key&exchange-uuids[]=-zdvbieRdZ&exchange-uuids[]=TjMe3QlK0&throttle=10s'
);

connection.onmessage = (event) => {
  const exchangeRate = JSON.parse(event.data);
  console.log(exchangeRate);
};
```

```
# -N disables output buffering, -g stops curl from interpreting the [] in the URL
curl -N -g 'https://api.coinranking.com/v2/real-time/sse/exchange-rates?exchange-uuids[]=-zdvbieRdZ&exchange-uuids[]=TjMe3QlK0&throttle=10s' \
  -H 'x-access-token: your-api-key'
```

More examples, including subscription messages and a fetch-based stream reader, are on the WebSockets and Server-Sent Events pages.


## Responses


### Data Messages

When subscribed to exchange rates, you receive price and volume updates for specific exchange-currency pairs. Each message includes both the exchange UUID and currency UUID, allowing you to identify which exchange the rate comes from and which cryptocurrency it represents. This is particularly useful when tracking the same currency across different exchanges or monitoring multiple trading pairs.

```
{
  "type": "exchange-rate",
  "exchangeUuid": "-zdvbieRdZ",
  "currencyUuid": "Qwsogvtv82FCd",
  "exchangeType": "cex",
  "price": "125423.835504191964312353",
  "volume": "6270550403.287645846237386287"
}
```


### Confirmation Messages

A confirmation lists what you are subscribed to and with which throttle. A Server-Sent Events stream sends it as its first message; a WebSocket sends it in answer to a subscription message.

```
{
  "type": "confirmation",
  "topic": "exchange-rate",
  "throttle": "10s",
  "subscriptions": ["exchange:-zdvbieRdZ", "exchange:TjMe3QlK0"]
}
```


### Response Fields

When subscribed to exchange rates, you receive new rates whenever they are available. Each exchange rate
includes the UUID of both the exchange and currency, which is especially useful when you are subscribed to
multiple exchanges or currencies. Exchange rates include the latest price and 24-hour moving volume,
both in US dollars.

Unlike our exchange coin listings endpoints, we do not support other
reference currencies than US dollars in
real-time. You can, however, subscribe to multiple exchanges and currencies, which allows you to calculate them
yourself.

| Property | Description |
| --- | --- |
| type String | The kind of message. Always exchange-rate for a data message on this topic. |
| exchangeUuid String | The exchange UUID of this rate. Useful if you subscribed to multiple exchanges, in which case the UUID helps you determine which exchange the rate comes from. |
| currencyUuid String | The currency UUID of this rate. Useful if you subscribed to multiple currencies, in which case the UUID helps you determine to what coin the rate belongs. |
| exchangeType String | The type of exchange: cex for Centralized Exchanges or dex for Decentralized Exchanges. |
| price String | The latest price of the coin on this exchange, in US Dollar. |
| volume String | The latest 24 hour volume of this currency on this exchange (a moving sum), in US Dollar. |

---

# Real-Time Tickers | Coinranking API Documentation


# Tickers

Tickers provide detailed trading pair data from specific markets, showing the exchange rate between two currencies (e.g., BTC/USD). They include granular market information like base/quote volumes, close price, and more.

The fastest way to get new tickers is to subscribe to them in real-time. You can request tickers through our markets endpoints too, but they will only update once a minute. A real-time connection pushes new tickers as soon as they are calculated, so you get the latest ticker data without polling.


## Connection Setup

Real-time streaming requires the Professional plan or higher. Your plan’s connection limits and minimum update interval apply.

Tickers are available over both transports, with the same query parameters and the same messages:

```
wss://api.coinranking.com/v2/real-time/tickers
```

```
https://api.coinranking.com/v2/real-time/sse/tickers
```

How to authenticate, connect, and reconnect is described on the WebSockets and Server-Sent Events pages. Not sure which one to use? See choosing a transport.


## URL Query Parameters

Add the parameters to either URL, and optionally a throttle.

Important: You must choose only ONE of the following subscription parameters: market-uuids, exchange-uuids, currency-uuids, or list. You cannot mix different parameter types.

| Parameter | Description |
| --- | --- |
| market-uuids[] Array | Subscribe to specific market pairs. Provide a list of market UUIDs to get ticker data for specific trading pairs. This allows you to get ticker data for specific market pairs across exchanges. You can find market UUIDs in our markets endpoint   Note: Use array notation in the URL: market-uuids[]=dj23kKgETIie  Size range:  1-100  Example: ?market-uuids[]=dj23kKgETIie |
| exchange-uuids[] Array | Subscribe to all ticker data for specific exchanges. This will give you all ticker data available on the selected exchanges. Provide a list of exchange UUIDs to make your selection. You can find exchange UUIDs in our exchanges endpoint   Note: Use array notation in the URL: exchange-uuids[]=-zdvbieRdZ  Size range:  1-100  Example: ?exchange-uuids[]=-zdvbieRdZ |
| currency-uuids[] Array | Subscribe to the tickers of all markets that have one of the selected currencies as base or quote, across all exchanges. Centralized exchange data requires a plan with streaming access. Decentralized exchange data also requires the Real-Time DEX Data add-on. Your plan’s connection limits and minimum update interval apply. Provide a list of currency UUIDs to make your selection. You can find currency UUIDs in our reference currencies endpoint   Note: Use array notation in the URL: currency-uuids[]=Qwsogvtv82FCd  Size range:  1-100  Example: ?currency-uuids[]=Qwsogvtv82FCd |
| list String | Subscribe to the tickers of all markets instead of a selection. This is a high-volume stream, so make sure your client keeps up with it. Centralized exchange data requires a plan with streaming access. Decentralized exchange data also requires the Real-Time DEX Data add-on. Your plan’s connection limits and minimum update interval apply. Allowed values:  all  Example: ?list=all |
| throttle (optional) String | With the throttle parameter, you prevent getting overloaded with ticker data. This is useful if performance is an issue, e.g. when streaming tickers to your frontend and you want to prevent straining your client's devices too much. Throttling works per market. If you select a throttle, this means ticker data for the same market will not be pushed more than once within the specified duration. Default value:  Your plan’s minimum interval Allowed values:  1s 5s 10s 30s 60s For plans with streaming access, an omitted throttle uses the plan’s minimum interval (1s on Professional). Faster requests are rejected. Throttle settings do not grant streaming access to other plans.  Example: ?market-uuids[]=dj23kKgETIie&throttle=10s |


## Subscription Messages

WebSockets only. On an open WebSocket, you can change your subscription by sending a JSON message, without reconnecting. See subscription messages for how they work. A Server-Sent Events stream cannot be changed: close it and open a new stream with the new parameters instead.

Choose only ONE subscription type per message:

```
{
  "marketUuids": ["dj23kKgETIie", "ia4qVnkhIxcQ"],
  "throttle": "10s"
}
```

Or using exchange UUIDs:

```
{
  "exchangeUuids": ["-zdvbieRdZ"],
  "throttle": "10s"
}
```

Or using currency UUIDs:

```
{
  "currencyUuids": ["Qwsogvtv82FCd"],
  "throttle": "10s"
}
```


## Code examples

```
const connection = new WebSocket(
  'wss://api.coinranking.com/v2/real-time/tickers?x-access-token=your-api-key&market-uuids[]=dj23kKgETIie&market-uuids[]=ia4qVnkhIxcQ&throttle=10s'
);

connection.onmessage = (event) => {
  const ticker = JSON.parse(event.data);
  console.log(ticker);
};
```

```
# -N disables output buffering, -g stops curl from interpreting the [] in the URL
curl -N -g 'https://api.coinranking.com/v2/real-time/sse/tickers?market-uuids[]=dj23kKgETIie&market-uuids[]=ia4qVnkhIxcQ&throttle=10s' \
  -H 'x-access-token: your-api-key'
```

More examples, including subscription messages and a fetch-based stream reader, are on the WebSockets and Server-Sent Events pages.


## Responses


### Data Messages

When subscribed to tickers, you receive detailed trading pair data including price, volume, and market statistics. Each ticker message contains comprehensive information about a specific market pair: the market UUID, exchange UUID, base currency UUID, and quote currency UUID. This granular data allows you to track individual trading pairs across different exchanges, monitor base and quote volumes separately, and analyze market-specific price movements.

```
{
  "type": "ticker",
  "marketUuid": "dj23kKgETIie",
  "exchangeUuid": "-zdvbieRdZ",
  "baseUuid": "Qwsogvtv82FCd",
  "quoteUuid": "cpjRxjFYD",
  "exchangeType": "cex",
  "close": "124590.91",
  "price": "124590.91",
  "baseVolume": "24290.53392",
  "quoteVolume": "3036047751.1820064",
  "volume": "3036047751.1820064",
  "filters": []
}
```


### Confirmation Messages

A confirmation lists what you are subscribed to and with which throttle. A Server-Sent Events stream sends it as its first message; a WebSocket sends it in answer to a subscription message.

```
{
  "type": "confirmation",
  "topic": "ticker",
  "throttle": "10s",
  "subscriptions": ["market:dj23kKgETIie","market:ia4qVnkhIxcQ"]
}
```


### Response Fields

When subscribed to tickers, you receive new ticker data whenever it is available. Each ticker
includes the UUID of the market, exchange, base currency, and quote currency, which is especially useful when you are subscribed to
multiple markets or exchanges. Tickers include the latest price, close price, and volume data,
both in base and quote currencies, as well as in US dollars.

Unlike our market details endpoints, we do not support other
reference currencies than US dollars in
real-time. You can, however, subscribe to multiple markets and exchanges, which allows you to calculate them
yourself.

| Property | Description |
| --- | --- |
| type String | The kind of message. Always ticker for a data message on this topic. |
| marketUuid String | The market UUID of this ticker. Useful if you subscribed to multiple markets, in which case the UUID helps you determine which market the ticker belongs to. |
| exchangeUuid String | The exchange UUID of this ticker. Useful if you subscribed to multiple exchanges, in which case the UUID helps you determine which exchange the ticker comes from. |
| baseUuid String | The base currency UUID of this ticker. |
| quoteUuid String | The quote currency UUID of this ticker. |
| exchangeType String | The type of exchange: cex for Centralized Exchanges or dex for Decentralized Exchanges. |
| close String | The last price received from the market. For example in an ETH/BTC market the close price would be the ETH’s value in BTC |
| price String | The latest price of the base currency in US Dollar. |
| baseVolume String | The 24 hour volume in the base currency. |
| quoteVolume String | The 24 hour volume in the quote currency. |
| volume String | The 24 hour volume in US Dollar. |
| filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins.Allowed values: PREV_FACTOR EXTERNAL_ZSCORE GEO OUTSIDE_TOP_20 |

---

# Coin Endpoints Introduction | Coinranking API Documentation


# Coins

Coins are all the cryptocurrencies listed with us, like Bitcoin, Ethereum, Dogecoin, and thousands
more. Do you miss a particular coin you’d like to see in the API? Submit it via our
listing form
and we’ll add it within two working days.


## Endpoints

- List of coins If you need to fetch multiple coins, this is the endpoint you need. It provides the most crucial data of coins in a handy filterable list.
- Trending coins Returns a list of trending coins  based on user engagement and popularity.
- Coin details When you need data about a specific coin, you need our coin details endpoint. This provides more specific data then the list endpoint, such as links to socials and supply information.
- Coin price Simple endpoint, to fetch a single price point for a coin. You can specify a timestamp to get the price for some earlier date.
- Coin price history Gets you a series of pricepoints going back in time a day, a year or some other period of time. We use this enpdoint ourselves for the charts on coinranking.com.
- Coin fiat prices Provides real-time cryptocurrency pricing data, converted into all supported fiat currencies, including USD, EUR, GBP, and more.
- Coin OHLCV Similar to coin price history, but with OHLCV (Open High Low Close Volume) data, which is often used to make candlestick charts.
- Coin exchanges listings Returns a list of exchanges for a specific coin. Meaning that if you want to know what exchanges a coin is being traded on, this endpoint helps you out.
- Coin market listings Similar to coin exchange listings, but a level deeper; you can find what markets a coin is trade on.
- Coin blockchains DEPRECATED: this endpoint is meant to find the blockchain or blockchains a coin is minted on.
- Coin supply modifiers The market cap for a coin is calculated by the price of a single unit (e.g. 1 BTC) multiplied by the "circulating supply". The circulating part of the supply is the amount of coins that are not only minted, but also in circulation (not locked up in some wallet accessible to noone). The wallets accessible to noone are what we call supply modifiers, and their balances are subtracted from the total supply.
- Coin market cap history The market cap for every coin fluctuates throughout time by differing supply and price values. You can find the history in this endpoint.
- Coin rank history How a coin ranked throughout time.
- Coin supply history The supply for a coin rises when new coins are mined, and decreases when they are burned or otherwise rendered useless (this last part only counts for circulating supply, not total). You can track the history of a coins supply amount with this enpdoint.

---

# Get List of Coins | Coinranking API Documentation


# List of coins

Get a list of coins. On Coinranking, we use this endpoint on our
home page.

Be aware that by default the list only includes coins with
tier 1 and 2.
To retrieve all coins, including tier 3, use tiers[]=1&tiers[]=2&tiers[]=3. Tier 3 coins are available on all API plans, subject to your plan's result limit.
If you only want to show 'quality coins', then you should filter on tier 1.

Coins are by default ordered by their rank, which - somewhat simplified - means that they are
ordered on market cap. See more details about are ranking in our ranking methodology. The response not only returns a list of coins, but also statistics regarding
the requested list, such as the volume in the last 24 hours. If you need all our coins at once,
check out our bulk endpoint.

```
https://api.coinranking.com/v2/coins
```


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coins?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | By setting the timePeriod the change percentage and sparkline in the response will be calculated accordingly. The maximum timePeriod is 1y for Free and 5y for all paid plans. This endpoint supports up to five years of data. These limits apply to both preview and production requests. Default value: 24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y  Example: https://api.coinranking.com/v2/coins?timePeriod=7d |
| symbols (optional) Array | Symbols to filter the list on. Do note that symbols are not unique. Should you need a specific coin, then you should use the UUIDs filter. Example: https://api.coinranking.com/v2/coins?symbols[]=BTC&symbols[]=ETH&symbols[]=XRP |
| contractAddresses (optional) Array | Contract Addresses to filter the list on. These are the addresses currencies get on their respective blockchains. Smart Contract Addresses are a common name for addresses on blockchains, but some chains might call them AssetID, Token Address or something else. We use the term Contract Address to cover all these cases. Note that tokens might be issued on several blockchains, so the same token might have several addresses Example: https://api.coinranking.com/v2/coins?contractAddresses[]=0xdac17f958d2ee523a2206206994597c13d831ec7&contractAddresses[]=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 |
| blockchains (optional) Array | Blockchains to filter the list on. With this filter you can for example fetch only coins that are minted on the Ethereum blockchain. You can filter on multiple blockchains at once. Example: https://api.coinranking.com/v2/coins?blockchains[]=ethereum&blockchains[]=eos |
| uuids (optional) Array | UUIDs to filter the list on. If you know the UUIDs of the coins you want to fetch, you can use this filter to get the specific coins. Example: https://api.coinranking.com/v2/coins?uuids[]=razxDUgYGNAdQ&uuids[]=Qwsogvtv82FCd |
| coinGeckoIds (optional) Array | CoinGecko IDs to filter the list on. Useful if you already work with CoinGecko IDs and want to fetch the matching coins. The same ID is returned per coin as coinGeckoId. IDs without a match are ignored. Example: https://api.coinranking.com/v2/coins?coinGeckoIds[]=bitcoin&coinGeckoIds[]=ethereum |
| coinMarketCapIds (optional) Array | CoinMarketCap IDs to filter the list on. Useful if you already work with CoinMarketCap IDs and want to fetch the matching coins. The same ID is returned per coin as coinMarketCapId. IDs without a match are ignored. Example: https://api.coinranking.com/v2/coins?coinMarketCapIds[]=1&coinMarketCapIds[]=1027 |
| tiers (optional) Array | We separate coins into three tiers. With this parameter you can filter coins on the tiers you need. Read more about our tiers in our ranking methodology. By default, only tier 1 and 2 coins are returned. To retrieve all coins, pass all tiers explicitly: tiers[]=1&tiers[]=2&tiers[]=3. Tier 3 coins are available on all API plans, subject to your plan's result limit. Default value:  1, 2 Allowed values:  1 2 3  Example: https://api.coinranking.com/v2/coins?tiers[]=1&tiers[]=2&tiers[]=3 |
| tags (optional) Array | Tags to filter the list on. Allowed values:  defi stablecoin nft dex exchange staking dao meme privacy metaverse gaming wrapped layer-1 layer-2 fan-token football-club web3 social  Example: https://api.coinranking.com/v2/coins?tags[]=defi |
| orderBy (optional) String | Index to order by. All sortings excluding listedAt still take our different tiers of coins into account, read more about it in our ranking methodology. Default value:  marketCap Allowed values:  price marketCap 24hVolume change listedAt  Example: https://api.coinranking.com/v2/coins?orderBy=price |
| orderDirection (optional) String | Applies direction to the orderBy query, which can be in ascending or descending order. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/coins?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/coins?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Deprecated — use cursor-based pagination instead. The maximum allowed offset is 5000; a larger value returns an OFFSET_TOO_LARGE error. Default value:  0  Maximum value:  5000  Example: https://api.coinranking.com/v2/coins?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/coins?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&symbols[]=BTC&symbols[]=ETH&symbols[]=XRP&limit=50&offset=0' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&symbols[]=BTC&symbols[]=ETH&symbols[]=XRP&limit=50&offset=0', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&symbols[]=BTC&symbols[]=ETH&symbols[]=XRP&limit=50&offset=0",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&symbols[]=BTC&symbols[]=ETH&symbols[]=XRP&limit=50&offset=0", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 2273,
      "totalCoins": 971310,
      "totalMarkets": 50511,
      "totalExchanges": 182,
      "totalMarketCap": "1376",
      "total24hVolume": "44245860077"
    },
    "coins": [
      {
        "uuid": "Qwsogvtv82FCd",
        "symbol": "BTC",
        "name": "Bitcoin",
        "color": "#f7931A",
        "iconUrl": "https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg",
        "marketCap": "1779096815287",
        "price": "89086.46601791566",
        "listedAt": 1279324800,
        "tier": 1,
        "change": "1.57",
        "rank": 1,
        "sparkline": [
          "87718.8185434618",
          "87831.39433828383",
          "87836.10177573239",
          "87912.74493308847",
          "87977.64124779409",
          "87954.06958585513",
          "87902.17541952957",
          "87991.8873160424",
          "87954.18221848007",
          "88217.27415928514",
          "88182.16973342402",
          "88208.09873175608",
          "88309.85722338042",
          "88336.9764258353",
          "88518.80305035008",
          "88722.70658713221",
          "88724.27935862185",
          "88686.60718391473",
          "88494.28083727155",
          "88867.71449962979",
          "88805.76669118676",
          "88678.39255061348",
          "88899.3524002099",
          "88933.14664142062"
        ],
        "allTimeHigh": {
          "price": "126077.50026839285",
          "timestamp": 1759777080
        },
        "lowVolume": false,
        "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc",
        "24hVolume": "14545165374",
        "btcPrice": "1",
        "contractAddresses": [],
        "isWrappedTrustless": false,
        "wrappedTo": null,
        "coinGeckoId": "bitcoin",
        "coinMarketCapId": "1"
      },
      {
        "uuid": "razxDUgYGNAdQ",
        "symbol": "ETH",
        "name": "Ethereum",
        "color": "#3C3C3D",
        "iconUrl": "https://cdn.coinranking.com/rk4RKHOuW/eth.svg",
        "marketCap": "365416480388",
        "price": "3027.6051673910147",
        "listedAt": 1438905600,
        "tier": 1,
        "change": "1.58",
        "rank": 2,
        "sparkline": [
          "2980.7093448538035",
          "2984.3177952979577",
          "2983.574966964519",
          "2986.9614020462695",
          "2986.431020097484",
          "2985.605255653924",
          "2981.6559156798207",
          "2985.8651716513355",
          "2984.352437768829",
          "2989.8717819210347",
          "2989.320200751151",
          "2990.589780403958",
          "2991.566939536146",
          "2990.4993421748177",
          "2992.936561567808",
          "3003.46376443117",
          "3002.5348825667547",
          "3003.5666225838786",
          "2998.349421388807",
          "3015.7495392109827",
          "3017.700562537228",
          "3013.3112528163515",
          "3023.711269385133",
          "3024.369021905459"
        ],
        "allTimeHigh": {
          "price": "4945.666895424594",
          "timestamp": 1756062720
        },
        "lowVolume": false,
        "coinrankingUrl": "https://coinranking.com/coin/razxDUgYGNAdQ+ethereum-eth",
        "24hVolume": "9602051748",
        "btcPrice": "0.03398501818202274",
        "contractAddresses": [],
        "isWrappedTrustless": false,
        "wrappedTo": null,
        "coinGeckoId": "ethereum",
        "coinMarketCapId": "1027"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLCJyIjoyLCJ1IjoiSElWc1JjR0trUEZ0VyIsIm8iOiJtYXJrZXRDYXAiLCJkIjoiZGVzYyJ9",
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.stats Object | A series of statistics regarding the requested list. Note that the stats its scope includes coins outside the limit. E.g. the response of a query with a limit of 50 coins returns 50 coins (obviously), while the stats depicts the amount of coins available, 24 hour volume, etc. without this limit, which may be a much higher number. |
| data.stats.total Number | Total number of coins within the query |
| data.stats.totalCoins Number | Total number of coins without the filters |
| data.stats.totalMarkets Number | Total number of markets without the filters |
| data.stats.totalExchanges Number | Total number of exchanges without the filters |
| data.stats.totalMarketCap String | The market capital of coins without the filters |
| data.stats.total24hVolume String | The volume over the last 24 hours of coins without the filters |
| data.coins Object[] | List of coins |
| data.coins.uuid String | UUID of the coin |
| data.coins.symbol String | Currency symbol |
| data.coins.name String | Name of the coin |
| data.coins.color String | Main HEX color of the coin |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.24hVolume String | 24h trade volume |
| data.coins.marketCap String | Market capitalization. Price times circulating supply |
| data.coins.price String | Price of the coin |
| data.coins.btcPrice String | Price of the coin expressed in Bitcoin |
| data.coins.listedAt Number/null | Epoch timestamp of when we started listing the coin. |
| data.coins.tier Number/null | Tier of the coin. We separate coins into three tiers. Learn more about our ranking methodology. |
| data.coins.change String | Percentage of change over the given time period |
| data.coins.rank Number | The position in the ranks |
| data.coins.sparkline String | Array of prices based on the time period parameter, useful for a sparkline |
| data.coins.allTimeHigh Object |  |
| data.coins.allTimeHigh.price String/null | The highest price that the coin has reached, expressed in the reference currency. Returns null if no all-time high data is available. |
| data.coins.allTimeHigh.timestamp Number/null | An Epoch timestamp in seconds when the coin reached its highest price. Returns null if no all-time high data is available. |
| data.coins.coinrankingUrl String | Where to find the coin on coinranking.com |
| data.coins.contractAddresses Object[] | List of contract addresses for this coin. The format is blockchain/contractAddress. A single coin can be minted on multiple blockchains. For example, Tether (USDT) is available on Ethereum (ethereum/0xda...) Bitcoin Cash (bitcoin-cash/9fc...) and seven other blockchains. |
| data.coins.isWrappedTrustless Boolean | Indicates whether this coin is a wrapped version of another asset where the wrapping relationship is enforced by smart contracts without requiring trust in a third party. |
| data.coins.wrappedTo String/null | UUID of the coin that this coin is wrapped to. Returns null when this coin is not a wrapped version of another asset. |
| data.coins.coinGeckoId String/null | The CoinGecko ID of the coin. Returns null if no CoinGecko mapping is available. |
| data.coins.coinMarketCapId String/null | The CoinMarketCap ID of the coin. Returns null if no CoinMarketCap mapping is available. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency with UUID of HxDUgYGNAdQz not available"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |
| OFFSET_TOO_LARGE Object | The offset exceeds the maximum of 5000. Offset-based pagination is deprecated; use cursor-based pagination for deeper results. |

---

# Get Trending Coins | Coinranking API Documentation


# List of trending coins

Get a list of trending coins. On Coinranking, we use this endpoint on our
trending coins page.

Be aware that by default the list includes coins with
tier 1, 2 and 3.
Users can choose which tiers to include in the list and rank coins based on their selected filters.

Trending coins are ranked dynamically based on user engagement and popularity.
By default, the API returns the top 50 trending coins along with the price of each trending coin in USD.
The response not only returns a list of coins, but also statistics regarding the requested list, such as the volume in the last 24 hours.

```
https://api.coinranking.com/v2/coins/trending
```


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coins/trending?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | By setting the timePeriod the change percentage and sparkline in the response will be calculated accordingly. The maximum timePeriod is 1y for Free and 5y for all paid plans. This endpoint supports up to five years of data. These limits apply to both preview and production requests. Default value: 24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y  Example: https://api.coinranking.com/v2/coins/trending?timePeriod=7d |
| tiers (optional) Array | We separate coins into three tiers. With this parameter you can filter coins on the tiers you need. Read more about our tiers in our ranking methodology. Allowed values:  1 2 3  Example: https://api.coinranking.com/v2/coins/trending?tiers[]=1&tiers[]=2 |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  1-5000  Example: https://api.coinranking.com/v2/coins/trending?limit=50 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/coins/trending?offset=50 |


## Code examples

```
curl 'https://api.coinranking.com/v2/coins/trending?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coins/trending?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coins/trending?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coins/trending?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coins": [
      {
        "uuid": "x1naMqhnQ",
        "symbol": "AI16Z",
        "name": "ai16z",
        "color": "#b56d47",
        "iconUrl": "https://cdn.coinranking.com/d1Cq1QRia/ai16z.png",
        "marketCap": "216162596",
        "price": "0.19651159766076215",
        "listedAt": 1730096051,
        "tier": 1,
        "change": "13.93",
        "rank": 1,
        "sparkline": [
          "0.1734302093738471",
          "0.1722441249843424",
          "0.17206841234970932",
          ...
        ],
        "lowVolume": false,
        "coinrankingUrl": "https://coinranking.com/coin/x1naMqhnQ+ai16z-ai16z",
        "24hVolume": "55044627",
        "btcPrice": "0.000002290513667438",
        "contractAddresses": [
          "solana/HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC"
        ]
      },
      {
        "uuid": "VDSp0_jlF",
        "symbol": "FARTCOIN",
        "name": "Fartcoin",
        "color": "#141414",
        "iconUrl": "https://cdn.coinranking.com/mWrHIRttj/fart.png",
        "marketCap": "384211556",
        "price": "0.38421222643273306",
        "listedAt": 1729808507,
        "tier": 1,
        "change": "26.52",
        "rank": 2,
        "sparkline": [
          "0.30212807097709193",
          "0.3012665015434585",
          "0.302866142569032",
          ...
        ],
        "lowVolume": false,
        "coinrankingUrl": "https://coinranking.com/coin/VDSp0_jlF+fartcoin-fartcoin",
        "24hVolume": "104234071",
        "btcPrice": "0.000004478327825516",
        "contractAddresses": [
          "solana/9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump"
        ]
      },
      {
        "uuid": "54I_A3MXKhHjZ",
        "symbol": "PI",
        "name": "Pi Network Coin",
        "color": "#402867",
        "iconUrl": "https://cdn.coinranking.com/dEJWskWni/pi-network-logo.png",
        "marketCap": "7368941912",
        "price": "1.1681250256177722",
        "listedAt": 1494288000,
        "tier": 1,
        "change": "1.01",
        "rank": 3,
        "sparkline": [
          "1.1559768754179904",
          "1.146620130952483",
          "1.141923934383675",
          ...
        ],
        "lowVolume": false,
        "coinrankingUrl": "https://coinranking.com/coin/54I_A3MXKhHjZ+pinetworkcoin-pi",
        "24hVolume": "408118286",
        "btcPrice": "0.000013615513630255",
        "contractAddresses": []
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.coins Object[] | List of trending coins |
| data.coins.uuid String | UUID of the coin |
| data.coins.symbol String | Currency symbol |
| data.coins.name String | Name of the coin |
| data.coins.color String | Main HEX color of the coin |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.marketCap String | Market capitalization. Price times circulating supply |
| data.coins.price String | Price of the coin |
| data.coins.listedAt Number/null | Epoch timestamp of when we started listing the coin. |
| data.coins.tier String | Tier of the coin. Learn more about our ranking methodology. |
| data.coins.change String | Percentage of change over the given time period |
| data.coins.rank Number | The position in the ranks |
| data.coins.sparkline String | Array of prices based on the time period parameter, useful for a sparkline |
| data.coin.lowVolume Boolean | If the coin is not much traded on listed exchanges it is marked as having a low volume. The threshold is currently set at the equivalent of 500.000 US Dollar in 24 hours |
| data.coins.coinrankingUrl String | Where to find the coin on coinranking.com |
| data.coins.24hVolume String | 24h trade volume |
| data.coins.btcPrice String | Price of the coin expressed in Bitcoin |
| data.coins.contractAddresses Object[] | List of contract addresses for this coin. The format is blockchain/contractAddress. A single coin can be minted on multiple blockchains. For example, Tether (USDT) is available on Ethereum (ethereum/0xda...) Bitcoin Cash (bitcoin-cash/9fc...) and seven other blockchains. |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency with UUID of HxDUgYGNAdQz not available"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin Details | Coinranking API Documentation


# Get coin details

Find information about a specific coin. On Coinranking we use this endpoint on our coin detail page.

```
https://api.coinranking.com/v2/coin/:uuid
```


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request. UUIDs of coins can be found using the Get coins endpoint or by checking the URL on coinranking.com, e.g. https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc is the URL for Bitcoin, and the part before the + (Qwsogvtv82FCd) is the UUID. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | Time period where the change and sparkline are based on The maximum timePeriod is 1y for Free and 5y for all paid plans. This endpoint supports up to five years of data. These limits apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd?timePeriod=1y |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coin": {
      "uuid": "Qwsogvtv82FCd",
      "symbol": "BTC",
      "name": "Bitcoin",
      "description": "Bitcoin is the first decentralized digital currency.",
      "color": "#f7931A",
      "iconUrl": "https://cdn.coinranking.com/Sy33Krudb/btc.svg",
      "websiteUrl": "https://bitcoin.org",
      "links": [
        {
          "name": "Bitcoin",
          "url": "https://www.reddit.com/r/Bitcoin/",
          "type": "reddit"
        }
      ],
      "supply": {
        "confirmed": true,
        "supplyAt": 1640757180,
        "circulating": "17009275",
        "total": "17009275",
        "max": "21000000"
      },
      "24hVolume": "6818750000",
      "marketCap": "159393904304",
      "fullyDilutedMarketCap": "196790985529",
      "price": "9370.9993109108",
      "btcPrice": "1",
      "priceAt": 1640757180,
      "change": "-0.52",
      "rank": 1,
      "numberOfMarkets": 9800,
      "numberOfExchanges": 190,
      "sparkline": [
        "9515.0454185372",
        "9540.1812284677",
        "9554.2212643043",
        "9593.571539283",
        "9592.8596962985",
        "9562.5310295967",
        "9556.7860427046",
        "9388.823394515",
        "9335.3004209165",
        "9329.4331700521",
        "9370.9993109108"
      ],
      "allTimeHigh": {
        "price": "19500.471361532",
        "timestamp": 1513555200
      },
      "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc",
      "tier": 1,
      "lowVolume": false,
      "listedAt": 1483228800,
      "notices": [
        {
          "type": "MESSAGE",
          "value": "Lorem ipsum dolor sit amet"
        }
      ],
      "contractAddresses": [],
      "tags": [
        "staking",
        "layer-1"
       ],
      "isWrappedTrustless": false,
      "wrappedTo": null,
      "coinGeckoId": "bitcoin",
      "coinMarketCapId": "1"
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values: success |
| data Object |  |
| data.coin Object |  |
| data.coin.uuid String | UUID of the coin |
| data.coin.symbol String | Currency symbol |
| data.coin.name String | Name of the coin |
| data.coin.description String | Small description of the coin |
| data.coin.color String | Main HEX color of the coin |
| data.coin.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coin.websiteUrl String | URL of the primary website |
| data.coin.links Object[] | List of links, like social media pages |
| data.coin.links.name String | Name of the link |
| data.coin.links.url String | Url to the specific link |
| data.coin.links.type String | The type of link Allowed values:  website bitcointalk explorer discord facebook github instagram line-messenger linkedin medium qq quora reddit sina-weibo telegram tiktok twitter vkontakte wechat whitepaper youtube etc. |
| data.coin.supply Object |  |
| data.coin.supply.confirmed Boolean | Coins without a confirmed supply are ranked below coins with a confirmed supply. Read about our methodology. |
| data.coin.supply.supplyAt Number/null | Epoch timestamp of when the supply was synchronized. If the supply was never synchronized or the supply is manually updated the API will return null. |
| data.coin.supply.total String | Number of coins that are in existence |
| data.coin.supply.circulating String | Number of coins that are circulating in the public market |
| data.coin.supply.max String | Maximum amount the coin's supply can ever be. |
| data.coin.marketCap String | Market capitalization. Price times circulating supply |
| data.coin.fullyDilutedMarketCap String | Market capitalization. Price times circulating supply Full Market capitalization. Fully diluted market cap is a coin's price multiplied by its max supply. Or total supply if the max supply is not known. It shows what the market cap could be if all coins were in circulation, with the current price. |
| data.coin.price String | Price of the coin |
| data.coin.btcPrice String | Price of the coin expressed in Bitcoin |
| data.coin.priceAt Number/null | Epoch timestamp of when the price was calculated. |
| data.coin.24hVolume String | 24h trade volume |
| data.coin.change String | Percentage of change over the given time period |
| data.coin.rank Number | The position in the ranks |
| data.coin.numberOfMarkets Number | The number of markets that contain the this coin |
| data.coin.numberOfExchanges Number | The number of exchanges that trade this coin |
| data.coin.sparkline String | Array of prices based on the time period parameter, useful for a sparkline |
| data.coin.allTimeHigh Object |  |
| data.coin.allTimeHigh.price String/null | The highest price that the coin has reached, expressed in the reference currency. Returns null if no all-time high data is available. |
| data.coin.allTimeHigh.timestamp Number/null | An Epoch timestamp in seconds when the coin reached its highest price. Returns null if no all-time high data is available. |
| data.coin.coinrankingUrl String | Where to find the coin on coinranking.com |
| data.coin.tier Number/null | Tier of the coin. We separate coins into three tiers. Learn more about our ranking methodology. |
| data.coin.lowVolume Boolean | If the coin is not much traded on listed exchanges it is marked as having a low volume. The threshold is currently set at the equivalent of 500.000 US Dollar in 24 hours |
| data.coin.listedAt Number/null | Epoch timestamp of when we started listing the coin. |
| data.coin.notices Object[] | List of notices, which signal some important information about the coin. The notices are in JSON format, and in most cases consist of a "type" property with an important keyword such as "WARNING", and a more human readable message in a "value" property. |
| data.coin.contractAddresses Object[] | List of contract addresses for this coin. The format is blockchain/contractAddress. A single coin can be minted on multiple blockchains. For example, Tether (USDT) is available on Ethereum (ethereum/0xda...) , Bitcoin Cash (bitcoin-cash/9fc...) and seven other blockchains. |
| data.coin.tags Object[] | List of tags, like "Staking" or "Meme" |
| data.coin.isWrappedTrustless Boolean | Indicates whether this coin is a wrapped version of another asset where the wrapping relationship is enforced by smart contracts without requiring trust in a third party. |
| data.coin.wrappedTo String/null | UUID of the coin that this coin is wrapped to. Returns null when this coin is not a wrapped version of another asset. |
| data.coin.coinGeckoId String/null | The CoinGecko ID of the coin. Returns null if no CoinGecko mapping is available. |
| data.coin.coinMarketCapId String/null | The CoinMarketCap ID of the coin. Returns null if no CoinMarketCap mapping is available. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Name type | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Name type | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin Price | Coinranking API Documentation


# Get coin price

The price endpoint allows users to query the price history of a cryptocurrency based on a specified epoch timestamp (in seconds). The system will find the nearest available price point to the provided timestamp, selecting from data aggregated by minute, hour, or day. The granularity of the returned data depends on how far back in time the requested timestamp is.

```
https://api.coinranking.com/v2/coin/:uuid/price
```


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you need the price. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price?referenceCurrencyUuid=5k-_VTxqtCEI |
| timestamp (optional) Number | The timestamp parameter accepts an epoch timestamp in seconds. This timestamp is used to find the nearest available price point, selecting the data's granularity based on the age of the request: Minute-level data for timestamps within the last 24 hours. Hourly data for timestamps older than 24 hours but less than 30 days. Daily data for timestamps older than 30 days. If no timestamp is provided, this endpoint will default to the latest price. Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price?timestamp=1588349307 |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price?referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price?referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price?referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price?referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "price": "7305.985182338483",
    "timestamp": 1586305740
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.price String | The price of the requested coin at the requested time |
| data.timestamp Number | An Epoch timestamp in seconds when the coin had the given price. Might differ from the provided timestamp in the request, because it is stripped down to the day, hour or minute. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| PRICE_NOT_FOUND Object | No price could be calculated for this request. Try another coin and/or another reference currency |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin Price History | Coinranking API Documentation


# Get coin price history

Coinranking keeps track of prices on all listed assets. The history endpoint lists prices and their timestamp for the requested time period, useful for making a chart.

On Coinranking, we use this endpoint for the main price chart on our coin detail page.

```
https://api.coinranking.com/v2/coin/:uuid/price-history
```


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request |


## Query parameters

| Parameter | Description |
| --- | --- |
| timePeriod (optional) String | Timeperiod where the change and history are based on The maximum timePeriod is 1y for Free, 5y for Basic, and all for Startup and higher plans. These historical windows apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y all  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price-history?timePeriod=1y |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price-history?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/price-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "change": "12",
    "history": [
      {
        "price": "41905.99687434882803047615",
        "timestamp": 1641897900
      },
      {
        "price": "41937.93174219252237197408",
        "timestamp": 1641897600
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.change String | Percentage of change over the given time frame |
| data.history Object[] | List of prices |
| data.history.price String | Price of the coin |
| data.history.timestamp Number | An Epoch timestamp in seconds when the coin had the given price. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin Fiat Prices | Coinranking API Documentation


# Get coin fiat prices

The coin fiat prices endpoint provides the price of a coin in all available fiat currencies, including USD, EUR, GBP, and more. These fiat currencies act as reference currencies in our system, forming the basis for conversions. To learn more about how reference currencies work, see our reference currencies endpoint.

```
https://api.coinranking.com/v2/coin/:uuid/fiat-prices
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you need the price. |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/fiat-prices' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/fiat-prices', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/fiat-prices",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/fiat-prices", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "prices": [
      {
        "referenceCurrencyUuid": "cYkSLiOlL7Qw",
        "referenceCurrencySymbol": "CNY",
        "referenceCurrencyName": "Chinese Yuan",
        "referenceCurrencyIconUrl": "https://cdn.coinranking.com/__Q5DN_tH/cn.svg",
        "price": "637459.34229400648858905809"
      },
      {
        "referenceCurrencyUuid": "yhjMzLPhuIDl",
        "referenceCurrencySymbol": "USD",
        "referenceCurrencyName": "US Dollar",
        "referenceCurrencyIconUrl": "https://cdn.coinranking.com/FNwFOF8tV/us.svg",
        "price": "87336.01084405759"
      },
      {
        "referenceCurrencyUuid": "UinC7PrlC4hF",
        "referenceCurrencySymbol": "KRW",
        "referenceCurrencyName": "South Korean Won",
        "referenceCurrencyIconUrl": "https://cdn.coinranking.com/b-ARx3e2S/kr.svg",
        "price": "123876504.59582840166794170873"
      },
      {
        "referenceCurrencyUuid": "Ef8u4mwlnsSx",
        "referenceCurrencySymbol": "SGD",
        "referenceCurrencyName": "Singapore Dollar",
        "referenceCurrencyIconUrl": "https://cdn.coinranking.com/c1PE935ks/sg.svg",
        "price": "114475.23953379426512176243"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.prices Object[] | List of coin prices in fiat currencies |
| data.prices.referenceCurrencyUuid String | UUID of the reference currency |
| data.prices.referenceCurrencySymbol String | Symbol of the reference currency |
| data.prices.referenceCurrencyName String | Name of the reference currency |
| data.prices.referenceCurrencyIconUrl String | Location of the reference currency icon |
| data.prices.price String | Coin price in the reference currency |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| PRICE_NOT_FOUND Object | No price could be calculated for this request. Try another UUID |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |

---

# Get Coin OHLCV | Coinranking API Documentation


# Get coin OHLCV

Get OHLCV (Open High Low Close Volume) data for the coin throughout time.

```
https://api.coinranking.com/v2/coin/:uuid/ohlcv
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.

This endpoint has two modes:

- Latest candles (default): without a from parameter, the endpoint returns the most recent limit candles for the chosen interval — the classic behaviour.
- Historical window: supply a from (and optional to) timestamp to fetch a specific time range instead. Minute-resolution history is available all the way back to December 2018, so you can pull deep historical candlestick data and page through arbitrarily long ranges.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the OHLCV data for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| interval (optional) String | The interval determines the time period over which each OHLC item is determined. Default value: day Allowed values:  minute 5minutes hour 8hours day week month  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?interval=hour |
| limit (optional) Number | Limit. Limit the amount of time periods for which the OHLCV data is retrieved. For example, when interval=hour and limit is 10, data will be returned for the last 10 hours. Production access requires the Growth plan or higher. Free previews are limited to 100 results per response. All other plans can receive up to 5000 results per response, including previews. Ignored in historical window mode (when from is supplied); windows are instead capped at 1440 candles per response and paged with data.paging.next — see Fetching historical ranges. Default value: 50 Size range: 0-5000  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?limit=10 |
| from (optional) Number | Start of the historical window as a Unix timestamp in seconds. Supplying from switches the endpoint into historical window mode: instead of the latest limit candles, it returns candles for the requested time range. from is snapped down to the start of its interval, so the bucket containing from is included. Minute-resolution history is available back to December 2018. When omitted, the endpoint stays in the default latest-candles mode. Size range: 0-4102444800  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?interval=hour&from=1614556800&to=1617235200 |
| to (optional) Number | End of the historical window as a Unix timestamp in seconds. The window is half-open: candles are returned for every interval bucket that starts before to. Unlike from, to is not snapped, so if it falls mid-interval the bucket it lands in is still returned (effectively rounding to up to the next boundary); only a candle starting exactly at to is excluded. Requires from, and must be greater than from. When omitted, the window runs up to the present moment. Default value: now Size range: 0-4102444800  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?interval=hour&from=1614556800&to=1617235200 |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint    Note: When using a reference currency, the OHLC values are converted from USD-based calculations rather than recalculated from raw trading data. Since reference currency exchange rates fluctuate during the time period this means: The Open or Close values might be higher than the High or lower than the Low For true OHLC data in a specific currency pair, use USD as the reference currency or subscribe to the realtime rates for both the coin and the intended reference currency and calculate the OHLC values yourself Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?referenceCurrencyUuid=5k-_VTxqtCEI |


## Fetching historical ranges

Supplying a from timestamp puts the endpoint in historical window mode. It returns the candles that fall inside the half-open range [from, to) for the chosen interval, ordered newest-first, with minute-resolution data available back to December 2018.


### The 1440-candle cap and paging

A single response returns at most 1440 candles. When the response does not cover the whole requested window, it is truncated to the portion nearest from and a continuation cursor is returned on data.paging.next (a Unix timestamp in seconds). To fetch the next page, repeat the request with from set to that value and the same to. When the window has been returned in full, data.paging.next is null.

Always drive paging from data.paging.next, not from the candle count. A page can contain fewer than 1440 candles and still have more to follow — a non-null next always means there is another page. Keep requesting until next is null.

Walking a range this way is gapless and overlap-free, and identical requests always return identical candles. Historical windows are immutable and returned with a long cache lifetime (Cache-Control: max-age=3600; recent windows use max-age=60), so responses can be cached aggressively.

```
# 1) Request a wide range
GET /v2/coin/Qwsogvtv82FCd/ohlcv?interval=minute&from=1609459200&to=1612137600

# 2) Response was truncated, e.g. data.paging.next = 1609545600
#    Fetch the next page by advancing `from` to that value:
GET /v2/coin/Qwsogvtv82FCd/ohlcv?interval=minute&from=1609545600&to=1612137600

# 3) Keep going until data.paging.next is null
```


### Data availability in historical candles

- avg is null throughout deep history — it is not reconstructable from the archived data.
- For older periods where only the closing price was preserved, open, high and low are derived from the close, so those candles are flat (all four equal). They are null only for buckets that have no data at all (where close is null too).
- intervalVolume is null for periods where the source did not record interval volume.
- 24hVolume in a historical candle is the rolling 24-hour volume recorded at the end of that bucket — a point-in-time snapshot, never a sum of the interval.


### Intervals and access

All intervals (minute through month) can be queried with from/to. Production access requires the Growth plan or higher. Free, Basic and Startup plans can use preview access within their plan’s historical window. Historical requests are subject to a daily fair-use quota, and exceeding it returns a 429 response (see Error response).


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?referenceCurrencyUuid=5k-_VTxqtCEI&interval=hour&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?referenceCurrencyUuid=5k-_VTxqtCEI&interval=hour&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?referenceCurrencyUuid=5k-_VTxqtCEI&interval=hour&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/ohlcv?referenceCurrencyUuid=5k-_VTxqtCEI&interval=hour&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "ohlc": [
      {
        "startingAt": 1733011200,
        "endingAt": 1735689600,
        "open": "96447.1775503152",
        "high": "108201.88415847138",
        "low": "91546.14889956331",
        "close": "92757.25601337428",
        "avg": "98498.05461116068",
        "24hVolume": "46442676990.360725",
        "intervalVolume": "2002368626068.8618"
      },
      {
        "startingAt": 1730419200,
        "endingAt": 1733011200,
        "open": "70322.96990325804",
        "high": "99588.89995964085",
        "low": "66922.19464691161",
        "close": "96449.1102387863",
        "avg": "86276.37524878597",
        "24hVolume": "38017759048.21358",
        "intervalVolume": "3928981914099.0195"
      }
    ]
  }
}
```

In historical window mode (when from is supplied), the response additionally includes a data.paging object holding the continuation cursor:

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "ohlc": [
      {
        "startingAt": 1609545540,
        "endingAt": 1609545600,
        "open": "29280.11",
        "high": "29342.57",
        "low": "29271.04",
        "close": "29331.86",
        "avg": null,
        "24hVolume": "51477880123.44",
        "intervalVolume": null
      }
    ],
    "paging": {
      "next": 1609545600
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.ohlc Object[] | List of OHLC items |
| data.ohlc.startingAt Number | An Epoch timestamp in seconds marking the start of the time period on which the OHLC values are based. |
| data.ohlc.endingAt Number | An Epoch timestamp in seconds marking the end of the time period (exclusive). |
| data.ohlc.open String/null | Opening price of the coin for the time period in the reference currency |
| data.ohlc.high String/null | Highest USD price of the coin during the time period in the reference currency. When using non-USD reference currencies, the highest USD price is directly converted to the reference currency. Since the reference currency itself can fluctuate against the US Dollar, the High is not necessarily the highest price in the chosen reference currency. |
| data.ohlc.low String/null | Lowest USD price of the coin during the time period in the reference currency. When using non-USD reference currencies, the lowest USD price is directly converted to the reference currency. Since the reference currency itself can fluctuate against the US Dollar, the Low is not necessarily the lowest price in the chosen reference currency. |
| data.ohlc.close String/null | Closing price of the coin for the time period in the reference currency |
| data.ohlc.avg String/null | Average price of the coin over the time period. Always null for deep historical candles, where it is not reconstructable. |
| data.ohlc.24hVolume String/null | Total 24h volume of the coin in the reference currency. In historical candles this is a rolling 24-hour snapshot taken at the end of the bucket, not a sum of the interval. |
| data.ohlc.intervalVolume String/null | Total volume of the coin for the specified time interval in the reference currency. In the default latest-candles mode this is populated for the week and month intervals only. In historical window mode it is also populated for finer intervals where the data source recorded interval volume; otherwise it is null. |
| data.paging Object | Only present in historical window mode (when from is supplied). |
| data.paging.next Number/null | Epoch timestamp in seconds to use as the next from value to continue the range, or null when the window has been returned in full. See Fetching historical ranges. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| FORBIDDEN Object | Returned by the gateway in the code field when endpoint access is denied. Production access requires the Growth plan or higher. Free, Basic and Startup plans can use preview access. Read the identifier defensively as body.type || body.code. Upgrade your plan. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. For window mode, common causes are to without from, or to not greater than from. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

| Error | Description |
| --- | --- |
| TOO_MANY_REQUESTS Object | The daily fair-use quota for deep-history requests has been reached, or too many history requests are in flight at once. Slow down and retry, or contact support. |

---

# Get Coin Gains and Losses | Coinranking API Documentation


# Get coin gains and losses

Find gains and losses data for a specific coin over different time intervals. On Coinranking we use this endpoint on our coin detail page.

```
https://api.coinranking.com/v2/coin/:uuid/gains-and-losses
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request gains and losses for. UUIDs of coins can be found using the Get coins endpoint or by checking the URL on coinranking.com, e.g. https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc is the URL for Bitcoin, and the part before the + (Qwsogvtv82FCd) is the UUID. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/gains-and-losses?referenceCurrencyUuid=5k-_VTxqtCEI |
| interval (optional) String | Time interval for the gains and losses calculation Default value:  day Allowed values:  day week month  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/gains-and-losses?interval=week |
| limit (optional) Number | Number of gains and losses entries to return Default value:  50 Maximum value:  100  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/gains-and-losses?limit=25 |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/gains-and-losses?referenceCurrencyUuid=5k-_VTxqtCEI&interval=week&limit=25' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/gains-and-losses?referenceCurrencyUuid=5k-_VTxqtCEI&interval=week&limit=25', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/gains-and-losses?referenceCurrencyUuid=5k-_VTxqtCEI&interval=week&limit=25",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/gains-and-losses?referenceCurrencyUuid=5k-_VTxqtCEI&interval=week&limit=25", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "gainsAndLosses": [
      {
        "timestamp": 1640995200,
        "price": "47156.85",
        "change": "2.34"
      },
      {
        "timestamp": 1640908800,
        "price": "46078.12", 
        "change": "-1.87"
      },
      {
        "timestamp": 1640822400,
        "price": "46952.73",
        "change": "0.92"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values: success |
| data Object |  |
| data.gainsAndLosses Object[] | Array of gains and losses data points |
| data.gainsAndLosses.timestamp Number | Epoch timestamp of the data point |
| data.gainsAndLosses.price String | Price of the coin at this timestamp |
| data.gainsAndLosses.change String | Percentage change from the previous interval |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Name type | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |
| GAINS_AND_LOSSES_NOT_FOUND Object | Gains and losses data could not be found for this coin |

| Name type | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin Exchange Listings | Coinranking API Documentation


# Get coin exchange listings

Get a list of exchanges where a specific coin can be traded. On Coinranking, we use this endpoint on our coin exchange listings page.

```
https://api.coinranking.com/v2/coin/:uuid/exchanges
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request exchanges for |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?offset=50 |
| orderBy (optional) String | Index to order by. Default is 24h volume. Default value:  24hVolume Allowed values:  24hVolume price  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?orderBy=price |
| orderDirection (optional) String | Order in ascending or descending order Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?orderDirection=asc |
| search (optional) String | Value to search for within results, i.e. exchange names Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?search=binance |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "27739840257.811882",
      "total": 278
    },
    "exchanges": [
      {
        "uuid": "8NvE23ZAn",
        "name": "CoinW",
        "iconUrl": "https://cdn.coinranking.com/zo-Z705sB/517.png",
        "verified": false,
        "recommended": true,
        "numberOfMarkets": 3,
        "coinrankingUrl": "https://coinranking.com/exchange/8NvE23ZAn+coinw",
        "btcPrice": "1.000346487380855",
        "exchangeType": "Centralized",
        "24hVolume": "64615.24751038069027507495",
        "price": "1.00055691180141505381"
      },
      {
        "uuid": "-zdvbieRdZ",
        "name": "Binance",
        "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
        "verified": false,
        "recommended": true,
        "numberOfMarkets": 127,
        "coinrankingUrl": "https://coinranking.com/exchange/-zdvbieRdZ+binance",
        "btcPrice": "0.9998934262850078",
        "exchangeType": "Centralized",
        "24hVolume": "43016.1818176284823540315",
        "price": "0.99989907870210148543"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjpudWxsLCJyIjoxNzkzOTY2MDI1Ljg4ODk0MDMsInUiOiI4SmxZZ1FNSyIsIm8iOiIyNGhWb2x1bWUiLCJkIjoiZGVzYyJ9",
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of exchanges in the reference currency |
| data.stats.total Number | Total number of exchanges |
| data.exchanges Object |  |
| data.exchanges.coinrankingUrl Number | The url to the page on Coinranking for this exchange |
| data.exchanges.uuid String | UUID of the exchange |
| data.exchanges.name String | Name of the exchange |
| data.exchanges.exchangeType String/null | Type of exchange: Centralized, Decentralized, or Unknown. |
| data.exchanges.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchanges.verified Boolean | DEPRECATED Exchanges that are verified to not participate in harmful practices such as wash trading are marked as verified. |
| data.exchanges.recommended Boolean | Whether the exchange is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.exchanges.numberOfMarkets Number | Number of markets of the exchange paired with Coinranking |
| data.exchanges.24hVolume String | Total volume in 24 hours |
| data.exchanges.price String | Price of the chosen coin on this exchange |
| data.exchanges.btcPrice String | Price of the chosen coin expressed in Bitcoin |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Coin Market Listings | Coinranking API Documentation


# Get coin market listings

Get markets on different exchanges that trade a specific coin. On Coinranking, we use this endpoint on our coin market listings page.

```
https://api.coinranking.com/v2/coin/:uuid/markets
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request markets for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?offset=50 |
| orderBy (optional) String | Index to sort on. Default is 24h volume. Default value:  24hVolume Allowed values:  24hVolume price  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?orderBy=price |
| orderDirection (optional) String | Order in ascending or descending order Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?orderDirection=asc |
| search (optional) String | Value to search for within results, e.g. exchange names, currency names, or currency symbols Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?search=bitc |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price'
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "2795922.586905519",
      "total": 3
    },
    "markets": [
      {
        "uuid": "xk9M2LuHuID5",
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC"
        },
        "quote": {
          "uuid": "yhjMzLPhuIDl",
          "symbol": "USD"
        },
        "exchange": {
          "uuid": "-zdvbieRdZ",
          "name": "Binance",
          "iconUrl": "https://cdn.coinranking.com/d6w2Hj3z0/BitMEX.svg"
        },
        "24hVolume": "771875964.9750752",
        "price": "3842.9444791178726",
        "btcPrice": "1",
        "rank": 1,
        "marketShare": "30.48",
        "recommended": true,
        "filters": []
      },
      {
        "uuid": "bn7nTLHHuIq2",
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC"
        },
        "quote": {
          "uuid": "HIVsRcGKkPFtW",
          "symbol": "USDT"
        },
        "exchange": {
          "uuid": "qn5ZJmPFP",
          "name": "Coinbase Pro",
          "iconUrl": "https://cdn.coinranking.com/Ama6htyHL/coinbase.svg"
        },
        "24hVolume": "311344830.86823833",
        "price": "3869.146354559396",
        "btcPrice": "1",
        "rank": 2,
        "marketShare": "12.35",
        "recommended": true,
        "filters": []
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "nextCursor": null,
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of exchanges in the reference currency |
| data.stats.total Number | Total number of exchanges |
| data.markets Object[] |  |
| data.markets.uuid String | UUID of the market |
| data.markets.base String | The coin on the left side of the pair, which price is calculated in units of the quote |
| data.markets.base.uuid String | UUID of the baseCurrency of the market |
| data.markets.base.symbol String | Symbol of the baseCurrency of the market |
| data.markets.quote String | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USD 10.000 means 1 BTC is traded for 10.000 USD. |
| data.markets.quote.symbol String | Symbol of the quoteCurrency of the market |
| data.markets.quote.uuid String | UUID of the quoteCurrency of the market |
| data.markets.exchange String | Exchange this market belongs to |
| data.markets.exchange.name String | Name of the exchange |
| data.markets.exchange.uuid String | UUID of the exchange |
| data.markets.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.markets.24hVolume String | 24h volume of the latest ticker in the reference currency |
| data.markets.price String | Price of the latest ticker in reference currency |
| data.markets.btcPrice String | Price of the latest ticker expressed in Bitcoin |
| data.markets.rank Number | Rank of the market based on volume, taking into account exchange and currency filters |
| data.markets.marketShare String | Percentage of the total market volume reprented by this market, taking into account exchange and currency filters |
| data.markets.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.markets.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins.Allowed values: PREV_FACTOR EXTERNAL_ZSCORE GEO OUTSIDE_TOP_20 |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Coin Blockchains | Coinranking API Documentation


# Get coin blockchains

Get the blockchains on which the coin is issued. Most of the time this is only one blockchain, but some coins are issued on multiple blockchains. We call the relation of a coin to a blockchain the issuance blockchain.

```
https://api.coinranking.com/v2/coin/:uuid/issuance-blockchains
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the blockchains for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| limit (optional) Number | Limit. Used for pagination. Default value:  50 Size range:  0-100  Example: https://api.coinranking.com/v2/coin/cVaOmQWainv7g/issuance-blockchains?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/coin/cVaOmQWainv7g/issuance-blockchains?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/coin/cVaOmQWainv7g/issuance-blockchains?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/cVaOmQWainv7g/issuance-blockchains?limit=50&offset=0' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/cVaOmQWainv7g/issuance-blockchains?limit=50&offset=0', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/cVaOmQWainv7g/issuance-blockchains?limit=50&offset=0",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/cVaOmQWainv7g/issuance-blockchains?limit=50&offset=0", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
 {
   "status": "success",
   "data": {
     "total": 1,
     "issuanceBlockchains": [
       {
         "name": "Ethereum",
         "referenceName": "Ethereum contract address",
         "reference": "0x1985365e9f78359a9B6AD760e32412f4a445E862",
         "blockExplorerUrl": "https://etherscan.io/token/0x1985365e9f78359a9B6AD760e32412f4a445E862",
         "migratedToReference": "0x221657776846890989a759ba2973e427dff5c9bb",
         "migrationDate": 1640757180
       }
     ]
   },
   "pagination": {
     "limit": 50,
     "hasNextPage": false,
     "hasPreviousPage": false,
     "nextCursor": null,
     "previousCursor": null
   }
 }
```


### Response fields

| Error | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.total Number | Total number of issuance blockchains for the coin. |
| data.issuanceBlockchains Object[] |  |
| data.issuanceBlockchains.name String | Name of the blockchain. |
| data.issuanceBlockchains.referenceName String/null | Blockchain specific coin reference name. For instance, 'Ethereum contract address' for a coin's reference on the Ethereum blockchain. |
| data.issuanceBlockchains.reference String/null | Reference address of the coin on the blockchain. Null means it is the blockchain's native coin. For example this is the smart contract address of a coin if it is issued on the Ethereum blockchain and the asset code if the coin is issued on the Stellar blockchain. |
| data.issuanceBlockchains.blockExplorerUrl String/null | The supplies are fetched from third parties, called block explorers. The url links to the website of the block explorer, and if possible to the specific token. |
| data.issuanceBlockchains.migratedToReference String/null | The new reference address that this coin has moved to on the same blockchain. This happens when a coin's smart contract is upgraded or replaced, and the old contract address is no longer used. |
| data.issuanceBlockchains.migrationDate Number/null | Epoch timestamp of when the coin was migrated to the new reference address. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "VALIDATION_ERROR",
  "messages": [
    "Limit can only be between 1 and 100."
  ]
}
```


### Error responses

| Name | Type | Description |
| --- | --- | --- |
| VALIDATION_ERROR | Object | The request could not be validated. The response should provide more details. |
| INVALID_CURSOR | Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH | Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT | Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Coin Supply Modifiers | Coinranking API Documentation


# Get coin supply modifiers

Get the supply modifiers of a coin. These modifiers are the balances that are subtracted from the total supply in order to get the circulating supply. The balances we use as modifiers are from addresses that are considered not to be in circulation, such as addresses that hold burned or premined coins.

```
https://api.coinranking.com/v2/coin/:uuid/modifiers
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the modifiers for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| limit (optional) Number | Limit. Used for pagination Default value:  50 Size range:  0-100  Example: https://api.coinranking.com/v2/coin/cVaOmQWainv7g?orderBy=amount&limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/coin/cVaOmQWainv7g?orderBy=amount&offset=50 |
| orderBy (optional) String | Order of the modifiers can be either when they were added (createdAt) or by amount Default value:  createdAt Allowed values:  amount createdAt  Example: https://api.coinranking.com/v2/coin/cVaOmQWainv7g?orderBy=amount |
| orderDirection (optional) String | Applies direction to the orderBy query, which can be in ascending or descending order. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/coin/cVaOmQWainv7g?orderBy=amount&orderDirection=asc |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/cVaOmQWainv7g/modifiers?orderBy=amount&limit=50&offset=0' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/cVaOmQWainv7g/modifiers?orderBy=amount&limit=50&offset=0', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/cVaOmQWainv7g/modifiers?orderBy=amount&limit=50&offset=0",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/cVaOmQWainv7g/modifiers?orderBy=amount&limit=50&offset=0", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "total": 3,
    "modifiers": [
      {
        "blockchainName": "Neo",
        "blockExplorerUrl": "https://neotracker.io/address/Ae2d6qj91YL3LVUMkza7WQsaTYjzjHm4z1",
        "name": "Foundation",
        "reference": "Ae2d6qj91YL3LVUMkza7WQsaTYjzjHm4z1",
        "syncedAt": 1593436560,
        "amount": "14146080"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.total Number | Total number of modifiers for the coin's supply. |
| data.modifiers Object |  |
| data.modifiers.blockchainName String | Name of the blockchain to which this modifier applies. |
| data.modifiers.blockExplorerUrl String | URL to block explorer. |
| data.modifiers.name String | Name we have given the modifier. |
| data.modifiers.reference String | Address of the modifier. |
| data.modifiers.syncedAt Number/null | Epoch timestamp in seconds when the amount has last been synced. |
| data.modifiers.amount String/null | Balance on the address retrieved at the syncedAt time. |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "VALIDATION_ERROR",
  "messages": [
    "Limit can only be between 1 and 100."
  ]
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |

---

# Get Coin Market Cap History | Coinranking API Documentation


# Get coin market cap history

With the coin market-caps endpoint you can check out a coin's historical market cap. The market cap for each coin is determined by the latest price for one coin, multiplied by the amount of coins in circulation.

```
https://api.coinranking.com/v2/coin/:uuid/market-cap-history
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the market cap data for. A UUID is our unique identifier for each coin. You can find them in all our coin endpoints, or look them up in the find UUID page. |


## Query parameters

| Parameter | Description |
| --- | --- |
| interval (optional) String | The interval determines the time period over which each market cap item is determined. Default value:  day Allowed values:  hour day week month  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/market-cap-history?interval=hour |
| limit (optional) Number | Limit. Limit the amount of time periods for which the marketCaps are retrieved. For example, when interval=hour and limit is 10, data will be returned for the last 10 hours. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/market-cap-history?limit=10 |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/market-cap-history?interval=hour&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/market-cap-history?interval=hour&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/market-cap-history?interval=hour&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/market-cap-history?interval=hour&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "history": [
      {
        "timestamp": 1698220800,
        "marketCap": "663355719491"
      },
      {
        "timestamp": 1698217200,
        "marketCap": "662740429329"
      },
      {
        "timestamp": 1698213600,
        "marketCap": "666715637188"
      },
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.history Object[] | List of market cap items |
| data.history.timestamp Number | An Epoch timestamp in seconds |
| data.history.marketCap String/null | the market cap in US Dollars |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |

---

# Get Coin Trading Volume History | Coinranking API Documentation


# Get coin trading volume history

With the coin trading-volume-history endpoint you can retrieve a coin's historical trading volume. Each value is the total volume traded over the given interval, expressed in the reference currency (e.g. US Dollar or Bitcoin). Use this data to build volume charts, compare activity across periods, or analyze trends.

```
https://api.coinranking.com/v2/coin/:uuid/trading-volume-history
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request trading volume history for. A UUID is our unique identifier for each coin. You can find them in all our coin endpoints, or look them up in the find UUID page. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of the reference currency (fiat or crypto) in which volumes are expressed. You can find UUIDs in our coin endpoints or the reference currencies endpoint. Default value:  yhjMzLPhuIDl (US Dollar) Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/trading-volume-history?referenceCurrencyUuid=5k-_VTxqtCEI |
| interval (optional) String | The interval determines the time period over which each volume item is aggregated. Default value:  day Allowed values:  hour day week month  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/trading-volume-history?interval=hour |
| limit (optional) Number | Maximum number of history entries to return. For example, when interval=day and limit=30, data is returned for the last 30 days. Free is limited to 100 results per response. All other plans can receive up to 5000 results per response, including previews. Default value:  50 Size range:  1-5000  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/trading-volume-history?limit=100 |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/trading-volume-history?interval=day&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/trading-volume-history?interval=day&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/trading-volume-history?interval=day&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/trading-volume-history?interval=day&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "history": [
      {
        "timestamp": 1770422400000,
        "volume": "42791236212.35"
      },
      {
        "timestamp": 1770508800000,
        "volume": "27425856445.82"
      },
      {
        "timestamp": 1770595200000,
        "volume": "29311576049.00"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.history Object[] | List of trading volume entries |
| data.history.timestamp Number | An Epoch timestamp in seconds |
| data.history.volume String/null | Trading volume over the interval in the reference currency. null when unavailable for that period. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin Rank History | Coinranking API Documentation


# Get coin rank history

With the coin ranks endpoint you can check out how a coin was ranked throughout its existence. We
  have different rankings available for coins; by market cap
(which is also the default ranking on coinranking.com), but also by 24 hour volume moving sum, by
  their sheer price in USD or in the fully diluted market cap.

```
https://api.coinranking.com/v2/coin/:uuid/rank-history
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the rank data for. A UUID is our unique identifier for each coin. You can find them in all our coin endpoints, or look them up in the find UUID page. |


## Query parameters

| Parameter | Description |
| --- | --- |
| interval (optional) String | The interval determines the time period over which each rank item is determined. Default value:  day Allowed values:  hour day week month  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/rank-history?interval=hour |
| limit (optional) Number | Limit. Limit the amount of time periods for which the ranks are retrieved. For example, when interval=hour and limit is 10, data will be returned for the last 10 hours. Free is limited to 100 results per response. Basic, Startup, Growth, and Professional can receive up to 5000 results per response, including previews. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/rank-history?limit=10 |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/rank-history?interval=hour&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/rank-history?interval=hour&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/rank-history?interval=hour&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/rank-history?interval=hour&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "history": [
      {
        "startingAt": 1698310800,
        "tier": "1",
        "marketCapRank": "1",
        "fullyDilutedMarketCapRank": "1",
        "volumeRank": "2",
        "priceRank": "2"
      },
      {
        "startingAt": 1698307200,
        "tier": "1",
        "marketCapRank": "1",
        "fullyDilutedMarketCapRank": "1",
        "volumeRank": "2",
        "priceRank": "2"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.history Object[] | List of rank items |
| data.history.startingAt Number | An Epoch timestamp in seconds marking the start of the time period on which the rank values are based. |
| data.history.tier String/null | Tier of the coin. We have three distinct tiers. |
| data.history.marketCapRank String/null | The rank of the coin based on market cap. This is the rank we use on our website by default. time period |
| data.history.fullyDilutedMarketCapRank String/null | The rank of the coin based on fully diluted market cap. Fully diluted market cap is a coin's price multiplied by its max supply. Or total supply if the max supply is not known. |
| data.history.volumeRank String/null | Market cap based on its trading volume in the past 24 hours. |
| data.history.priceRank String/null | The rank of the coin based on how much US Dollars just one unit of the coin is worth. This metric greatly favors coins with a low supply. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |

---

# Get Coin Supply History | Coinranking API Documentation


# Get coin supply history

With the coin supplies endpoint you can check out a coin's historical amount of supplies. You can
read more about supplies in our FAQ.

```
https://api.coinranking.com/v2/coin/:uuid/supply-history
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the supply data for. A UUID is our unique identifier for each coin. You can find them in all our coin endpoints, or look them up in the find UUID page. |


## Query parameters

| Parameter | Description |
| --- | --- |
| interval (optional) String | The interval determines the time period over which each supply item is determined. Default value:  day Allowed values:  hour day week month  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/supply-history?interval=hour |
| limit (optional) Number | Limit. Limit the amount of time periods for which the supplies are retrieved. For example, when interval=hour and limit is 10, data will be returned for the last 10 hours. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/supply-history?limit=10 |


## Code examples

```
curl 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/supply-history?interval=hour&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/supply-history?interval=hour&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/supply-history?interval=hour&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/supply-history?interval=hour&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "history": [
      {
        "timestamp": 1698624000,
        "circulating": "19527731",
        "total": "19527731"
      },
      {
        "timestamp": 1698537600,
        "circulating": "19526875",
        "total": "19526875"
      },
      {
        "timestamp": 1698451200,
        "circulating": "19525868",
        "total": "19525868"
      }
    ]
  }
}
```


### Response fields

| Parameter | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.history Object[] | List of supply items |
| data.history.timestamp Number | An Epoch timestamp in seconds |
| data.history.circulating String/null | the circulating supply in US Dollars |
| data.history.total String/null | the total supply in US Dollars |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |

---

# Blockchain Endpoints Introduction | Coinranking API Documentation


# Blockchains

Blockchains are where all the listed coins are minted on. We support a wide range of blockchains,
including Bitcoin, Ethereum, Binance Smart Chain, and many more.


## Endpoints

- Blockchains Gets you a list of all the blockchains listed by Coinranking.
- Blockchain details Gets you more specific information about a blockchain, such as the amount of coins listed for the requested blockchain.
- Blockchain contract address To directly check if coinranking has listed a specific coin, by its smart contract address. All our coin related endpoints work with uuids, which are random strings to identify coins specifically with coinrankings database. If you just have a smart contract address for a coin minted on Ethereum, you might not know the uuid we use. You can then use this endpoint to get the appropriate uuid.

---

# Get Blockchains | Coinranking API Documentation


# Get blockchains

Get a list of all blockchains. You can use the names in the list to request more details about a specific blockchain in our blockchain details endpoint, and you can use our Get UUID by contract address endpoint to find out if we have listed a specific token on one of these chains.

```
https://api.coinranking.com/v2/blockchains
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Code examples

```
curl https://api.coinranking.com/v2/blockchains \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/blockchains', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/blockchains",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/blockchains", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "blockchains": [
      "bitcoin",
      "eos",
      "ethereum",
      "tron"
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.blockchains Object[] | List of blockchains |

---

# Get Blockchain Details | Coinranking API Documentation


# Get blockchain details

Find a blockchain

```
https://api.coinranking.com/v2/blockchain/:name
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| blockchain String | Name of the blockchain you want to request. You can find a list of all possible values by making a request to blockchains endpoint. |


## Code examples

```
curl https://api.coinranking.com/v2/blockchain/ethereum \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/blockchain/ethereum', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/blockchain/ethereum",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/blockchain/ethereum", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "blockchain": {
        "name": "ethereum",
        "totalCoins": 2
      }
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.blockchain Object |  |
| data.blockchain.name String | Name of the blockchain |
| data.blockchain.totalCoins Number/null | Amount of coins listed for this blockchain |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "BLOCKCHAIN_NOT_FOUND",
  "message": "Blockchain not found. Find a list of possible values at https://api.coinranking.com/v2/blockchains"
}
```


### Error responses

| Error | Description |
| --- | --- |
| BLOCKCHAIN_NOT_FOUND Object | The blockchain could not be found. |

---

# Get Blockchain Contract Address Lookup | Coinranking API Documentation


# Get UUID by contract address

Find a specific coin by the contract address on its blockchain. We use the term contract address, but the name differs per ecosystem. For example, in Ethereum, it's called a smart contract address, others call it a token address, assetID, or something else.

```
https://api.coinranking.com/v2/blockchain/:blockchain/:address
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| blockchain String | Name of the blockchain you want to request. You can find a list of all possible values by making a request to our blockchains endpoint. |
| address String | Address of the token you want to request. This is the same address as is used on the blockchain the token is minted on. For example, the Tether (USDT) contract address on Ethereum is 0xdac17f958d2ee523a2206206994597c13d831ec7. In our case, the address is case-insensitive. |


## Code examples

```
curl https://api.coinranking.com/v2/blockchain/ethereum/0xdac17f958d2ee523a2206206994597c13d831ec7 \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/blockchain/ethereum/0xdac17f958d2ee523a2206206994597c13d831ec7', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/blockchain/ethereum/0xdac17f958d2ee523a2206206994597c13d831ec7",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/blockchain/ethereum/0xdac17f958d2ee523a2206206994597c13d831ec7", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coin": {
      "uuid": "razxDUgYGNAdQ",
      "name": "Ethereum",
      "symbol": "ETH",
      "contractAddresses": [
        "ethereum/0xNative",
        "bitcoin/0xBtc"
      ],
      "coinrankingUrl": "https://coinranking.com/coin/razxDUgYGNAdQ+ethereum-eth"
    }
  }
}
```


### Response fields

| Parameter | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.coin Object |  |
| data.coin.UUID String | Uuid of the coin |
| data.coin.name String | Name of the coin |
| data.coin.symbol String | Symbol of the coin (e.g. BTC, ETH, XRP) |
| data.coin.contractAddresses Object[] | List of contract addresses for this coin. The format is blockchain/contractAddress. A single coin can be minted on multiple blockchains. For example, Tether (USDT) is available on Ethereum (ethereum/0xda...) Bitcoin Cash (bitcoin-cash/9fc...) and seven other blockchains. |
| data.coin.coinrankingUrl String | Where to find the coin on coinranking.com |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |

---

# Exchange Endpoints Introduction | Coinranking API Documentation


# Exchanges

Exchanges refer to centralized exchanges (CEXs) where cryptocurrencies are traded, such as
Binance,
Coinbase,
and Bybit.
We calculate the prices of coins based on the tickers coming from these exchanges.


## Endpoints

- Exchanges Get a list of centralized exchanges. For each of these exchanges coinranking has built a driver and periodically fetches price data.
- Exchange details More specific information about a centralized exchange, such as links to its socials.
- Exchange coin listings You can fetch coins listed on a specific centralized exchange through our API.
- Exchange new coin listings You can fetch the latest coins listed on a specific centralized exchange through our API.
- Exchange list of markets You can fetch the markets on a specific centralized exchange with our API.

---

# Get Exchanges | Coinranking API Documentation


# Get list of exchanges

Get a list of exchanges. Exchanges are ranked based on their trading volume in the last 24 hours.

On Coinranking, we use this endpoint on our Centralized exchange ranking page.

```
https://api.coinranking.com/v2/exchanges
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. Only usable when no filters are applied. Free is limited to 100 results per response. All paid plans can receive up to 5000 results per response, including previews. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/exchanges?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/exchanges?offset=50 |
| orderBy (optional) String | Order by either 24h volume, number of markets or latest ticker. Ordering can only be done when no filters are applied. Default value:  24hVolume Allowed values:  24hVolume numberOfMarkets lastTickerCreatedAt  Example: https://api.coinranking.com/v2/exchanges?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query, which can be in ascending or descending order. Only usable when no filters are applied. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/exchanges?orderDirection=asc |
| uuids (optional) Array | Exchange UUIDs to filter the exchanges on. Example: https://api.coinranking.com/v2/exchanges?uuids[]=-zdvbieRdZ&uuids[]=kKbFzL8Tp70u |
| search (optional) String | Value to search for within results, e.g. exchange names. Example: https://api.coinranking.com/v2/exchanges?search=binance |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/exchanges?cursor=eyJ0IjoxLC... |
| countries (optional) Array | Filter exchanges by supported countries using ISO 3166-1 alpha-2 country codes. Returns only exchanges that support trading in at least one of the specified countries. See the country codes reference for a full list of supported codes. Example: https://api.coinranking.com/v2/exchanges?countries[]=US&countries[]=GB |
| fiatCurrencyUuids (optional) Array | Filter exchanges by fiat currencies they support for trading pairs, using each currency's UUID. Returns only exchanges that support at least one of the specified fiat currencies. You can find fiat currency UUIDs in the reference currencies endpoint using ?types[]=fiat. Single value example: https://api.coinranking.com/v2/exchanges?fiatCurrencyUuids[]=yhjMzLPhuIDl Multiple values example: https://api.coinranking.com/v2/exchanges?fiatCurrencyUuids[]=yhjMzLPhuIDl&fiatCurrencyUuids[]=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume&orderDirection=desc' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume&orderDirection=desc', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume&orderDirection=desc",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume&orderDirection=desc", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "262456688815",
      "total": 99
    },
    "exchanges": [
      {
          "uuid": "-zdvbieRdZ",
          "rank": 3,
          "name": "Binance",
          "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
          "verified": false,
          "recommended": true,
          "numberOfMarkets": 1566,
          "numberOfCoins": 433,
          "marketShare": "5.15",
          "coinrankingUrl": "https://coinranking.com/exchange/-zdvbieRdZ+binance",
          "24hVolume": "19403991893"
        },
        {
          "uuid": "-4x6SL_Cv",
          "rank": 5,
          "name": "KuCoin",
          "iconUrl": "https://cdn.coinranking.com/A-hAjR-hN/kucoin.png",
          "verified": false,
          "recommended": true,
          "numberOfMarkets": 2399,
          "numberOfCoins": 983,
          "marketShare": "3.7",
          "coinrankingUrl": "https://coinranking.com/exchange/-4x6SL_Cv+kucoin",
          "24hVolume": "13922027316"
        }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLCJyIjo2OTM5NzYxNzYuOTA2MzQxLCJ1IjoiWEhwOGVDaklEYyIsIm8iOiIyNGhWb2x1bWUiLCJkIjoiZGVzYyJ9",
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of exchanges in the reference currency |
| data.stats.total Number | Total number of exchanges |
| data.exchanges Object[] | List of exchanges |
| data.exchanges.uuid String | UUID of the exchange |
| data.exchanges.name String | Name of the exchange |
| data.exchanges.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchanges.verified Boolean | DEPRECATED Exchanges that are verified to not participate in harmful practices such as wash trading are marked as verified. |
| data.exchanges.recommended Boolean | Whether the exchange is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.exchanges.numberOfMarkets Number | Number of markets of the exchange paired with Coinranking |
| data.exchanges.numberOfCoins Number | Number of coins of the exchange paired with Coinranking |
| data.exchanges.24hVolume String | Total volume in 24 hours |
| data.exchanges.rank Number | Rank of the exchange based on volume, taking into account exchange and currency filters |
| data.exchanges.marketShare String | Percentage of the total exchange volume reprented by this exchange. |
| data.exchanges.coinrankingUrl String | Where to find the exchange on coinranking.com |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Exchange Details | Coinranking API Documentation


# Get exchange details

Find information on a specific exchange listed on coinranking. An exchange is a centralized exchange (CEX) where cryptocurrencies are traded.

On Coinranking, we use this endpoint on our exchange detail page.

```
https://api.coinranking.com/v2/exchange/:uuid
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the exchange you want to request. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/exchange/-zdvbieRdZ?referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/exchange/-zdvbieRdZ?referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/exchange/-zdvbieRdZ?referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/exchange/-zdvbieRdZ?referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "exchange": {
      "numberOfMarkets": 3,
      "numberOfCoins": 59,
      "24hVolume": "776337030.2052088",
      "uuid": "-zdvbieRdZ",
      "name": "Binance",
      "description": "Binance is a blockchain ecosystem cryptocurrency exchange.",
      "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
      "websiteUrl": "https://www.binance.com/",
      "verified": true,
      "recommended": true,
      "lastTickerCreatedAt": 1546959293000,
      "links": [
        {
          "name": "binance.com",
          "url": "https://www.binance.com/en/register?ref=35424440",
          "type": "website"
        },
        {
          "name": "Support",
          "url": "https://www.binance.com/en/support",
          "type": "website"
        },
        {
          "name": "binance",
          "url": "https://www.facebook.com/binance",
          "type": "facebook"
        }
      ],
      "rank": 1,
      "marketShare": "12.2209741947213",
      "coinrankingUrl": "https://coinranking.com/exchange/-zdvbieRdZ+binance",
      "delistedAt": null,
      "notices": [
        {
          "type":"DELISTED",
          "value":"This exchange is inactive on Coinranking. Its data is not up to date."
        }
      ],
      "tags": [
        "cex"
      ],
      "supportedCountries": ["AD", "AL", "AM", "AO", "AG", "AR", "AW", "AT", "AZ", "BS", "BH", "BD", "BB"],
      "supportedFiatCurrencies": {
        "total": 10,
        "fiats": [
          {
            "uuid": "5k-_VTxqtCEI",
            "name": "Euro",
            "symbol": "EUR"
          },
          {
            "uuid": "6mUvpzCc2lFo",
            "name": "Turkish Lira",
            "symbol": "TRY"
          }
        ]
      },
      "trustDetails": {
        "foundingCountry": "CN",
        "foundingDate": 1499990400000
      }
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.exchange Object |  |
| data.exchange.uuid String | UUID of the exchange |
| data.exchange.name String | Name of the exchange |
| data.exchange.description String | Description of the exchange |
| data.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchange.websiteUrl String | Website URL to the exchange |
| data.exchange.verified Boolean | DEPRECATED A verified exchange is verified to not participate in harmful practices such as wash trading. |
| data.exchange.recommended Boolean | Whether the exchange is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.exchange.numberOfMarkets Number | Number of markets of the exchange paired with Coinranking |
| data.exchange.numberOfCoins Number | Number of coins listed for this exchange on Coinranking |
| data.exchange.24hVolume String | Total volume in 24 hours |
| data.exchange.lastTickerCreatedAt Number | Timestamp of the latest ticker |
| data.exchange.links Object[] | List of links, like social media pages |
| data.exchange.links.name String | Name of the link |
| data.exchange.links.url String | Url to the specific link |
| data.exchange.links.type String | The type of linkAllowed values: website bitcointalk explorer discord facebook github instagram line-messenger linkedin medium qq quora reddit sina-weibo telegram tiktok twitter vkontakte wechat whitepaper youtube etc. |
| data.exchange.rank Number | Rank of the exchange based on volume, taking into account exchange and currency filters |
| data.exchange.marketShare String | Percentage of the total exchange volume represented by this exchange. |
| data.exchange.coinrankingUrl String | Where to find the exchange on coinranking.com |
| data.exchange.delistedAt String/null | The date at which an exchange is delisted at Coinranking, which means no new data is being fetched from the exchange. This is done when an exchange ceases to exist or is hard to reach. When the value is null, the exchange is not delisted. |
| data.exchange.notices Object[] | List of notices, which signal some important information about the exchange. E.g. that the exchange has been delisted and no new price data is being fetched from it. The notices are in JSON format, and in most cases consist of a "type" property with an important keyword such as "DELISTED", and a more human readable message in a "value" property. |
| data.exchange.tags Object[] | List of tags, like "DEX" or "CEX" |
| data.exchange.supportedCountries String[] | Array of ISO country codes supported by the exchange (e.g., ["US", "GB", "DE"]). Only includes countries where the exchange allows users to trade. See Country Codes Reference for a complete list of country codes and names. |
| data.exchange.supportedFiatCurrencies Object | Fiat currencies supported by the exchange for trading pairs |
| data.exchange.supportedFiatCurrencies.total Number | Total number of supported fiat currencies |
| data.exchange.supportedFiatCurrencies.fiats Object[] | List of supported fiat currencies with UUID, name, and symbol |
| data.exchange.supportedFiatCurrencies.fiats.uuid String | Unique identifier for the fiat currency |
| data.exchange.supportedFiatCurrencies.fiats.name String | Full name of the fiat currency (e.g., "Euro", "Turkish Lira") |
| data.exchange.supportedFiatCurrencies.fiats.symbol String | Currency symbol (e.g., "EUR", "TRY") |
| data.exchange.trustDetails Object | Trust and founding information about the exchange |
| data.exchange.trustDetails.foundingCountry String | ISO 3166-1 alpha-2 country code where the exchange was founded (e.g., "CN" for China). See Country Codes Reference for the complete list. |
| data.exchange.trustDetails.foundingDate Number | Timestamp when the exchange was founded |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |


## Country Codes Reference

The supportedCountries field returns an array of ISO 3166-1 alpha-2 country codes. Below is the complete reference of all country codes and their corresponding country names:

| Code | Country Name |
| --- | --- |
| AD | Andorra |
| AE | United Arab Emirates |
| AF | Afghanistan |
| AG | Antigua and Barbuda |
| AI | Anguilla |
| AL | Albania |
| AM | Armenia |
| AO | Angola |
| AQ | Antarctica |
| AR | Argentina |
| AS | American Samoa |
| AT | Austria |
| AU | Australia |
| AW | Aruba |
| AX | Aland |
| AZ | Azerbaijan |
| BA | Bosnia and Herzegovina |
| BB | Barbados |
| BD | Bangladesh |
| BE | Belgium |
| BF | Burkina Faso |
| BG | Bulgaria |
| BH | Bahrain |
| BI | Burundi |
| BJ | Benin |
| BL | Saint Barthelemy |
| BM | Bermuda |
| BN | Brunei |
| BO | Bolivia |
| BQ | Bonaire |
| BR | Brazil |
| BS | Bahamas |
| BT | Bhutan |
| BV | Bouvet Island |
| BW | Botswana |
| BY | Belarus |
| BZ | Belize |
| CA | Canada |
| CC | Cocos (Keeling) Islands |
| CD | Democratic Republic of the Congo |
| CF | Central African Republic |
| CG | Republic of the Congo |
| CH | Switzerland |
| CI | Ivory Coast |
| CK | Cook Islands |
| CL | Chile |
| CM | Cameroon |
| CN | China |
| CO | Colombia |
| CR | Costa Rica |
| CU | Cuba |
| CV | Cape Verde |
| CW | Curacao |
| CX | Christmas Island |
| CY | Cyprus |
| CZ | Czech Republic |
| DE | Germany |
| DJ | Djibouti |
| DK | Denmark |
| DM | Dominica |
| DO | Dominican Republic |
| DZ | Algeria |
| EC | Ecuador |
| EE | Estonia |
| EG | Egypt |
| EH | Western Sahara |
| ER | Eritrea |
| ES | Spain |
| ET | Ethiopia |
| FI | Finland |
| FJ | Fiji |
| FK | Falkland Islands |
| FM | Micronesia |
| FO | Faroe Islands |
| FR | France |
| GA | Gabon |
| GB | United Kingdom |
| GD | Grenada |
| GE | Georgia |
| GF | French Guiana |
| GG | Guernsey |
| GH | Ghana |
| GI | Gibraltar |
| GL | Greenland |
| GM | Gambia |
| GN | Guinea |
| GP | Guadeloupe |
| GQ | Equatorial Guinea |
| GR | Greece |
| GS | South Georgia and the South Sandwich Islands |
| GT | Guatemala |
| GU | Guam |
| GW | Guinea-Bissau |
| GY | Guyana |
| HK | Hong Kong |
| HM | Heard Island and McDonald Islands |
| HN | Honduras |
| HR | Croatia |
| HT | Haiti |
| HU | Hungary |
| ID | Indonesia |
| IE | Ireland |
| IL | Israel |
| IM | Isle of Man |
| IN | India |
| IO | British Indian Ocean Territory |
| IQ | Iraq |
| IR | Iran |
| IS | Iceland |
| IT | Italy |
| JE | Jersey |
| JM | Jamaica |
| JO | Jordan |
| JP | Japan |
| KE | Kenya |
| KG | Kyrgyzstan |
| KH | Cambodia |
| KI | Kiribati |
| KM | Comoros |
| KN | Saint Kitts and Nevis |
| KP | North Korea |
| KR | South Korea |
| KW | Kuwait |
| KY | Cayman Islands |
| KZ | Kazakhstan |
| LA | Laos |
| LB | Lebanon |
| LC | Saint Lucia |
| LI | Liechtenstein |
| LK | Sri Lanka |
| LR | Liberia |
| LS | Lesotho |
| LT | Lithuania |
| LU | Luxembourg |
| LV | Latvia |
| LY | Libya |
| MA | Morocco |
| MC | Monaco |
| MD | Moldova |
| ME | Montenegro |
| MF | Saint Martin |
| MG | Madagascar |
| MH | Marshall Islands |
| MK | North Macedonia |
| ML | Mali |
| MM | Myanmar |
| MN | Mongolia |
| MO | Macao |
| MP | Northern Mariana Islands |
| MQ | Martinique |
| MR | Mauritania |
| MS | Montserrat |
| MT | Malta |
| MU | Mauritius |
| MV | Maldives |
| MW | Malawi |
| MX | Mexico |
| MY | Malaysia |
| MZ | Mozambique |
| NA | Namibia |
| NC | New Caledonia |
| NE | Niger |
| NF | Norfolk Island |
| NG | Nigeria |
| NI | Nicaragua |
| NL | Netherlands |
| NO | Norway |
| NP | Nepal |
| NR | Nauru |
| NU | Niue |
| NZ | New Zealand |
| OM | Oman |
| PA | Panama |
| PE | Peru |
| PF | French Polynesia |
| PG | Papua New Guinea |
| PH | Philippines |
| PK | Pakistan |
| PL | Poland |
| PM | Saint Pierre and Miquelon |
| PN | Pitcairn Islands |
| PR | Puerto Rico |
| PS | Palestine |
| PT | Portugal |
| PW | Palau |
| PY | Paraguay |
| QA | Qatar |
| RE | Reunion |
| RO | Romania |
| RS | Serbia |
| RU | Russia |
| RW | Rwanda |
| SA | Saudi Arabia |
| SB | Solomon Islands |
| SC | Seychelles |
| SD | Sudan |
| SE | Sweden |
| SG | Singapore |
| SH | Saint Helena |
| SI | Slovenia |
| SJ | Svalbard and Jan Mayen |
| SK | Slovakia |
| SL | Sierra Leone |
| SM | San Marino |
| SN | Senegal |
| SO | Somalia |
| SR | Suriname |
| SS | South Sudan |
| ST | Sao Tome and Principe |
| SV | El Salvador |
| SX | Sint Maarten |
| SY | Syria |
| SZ | Eswatini |
| TC | Turks and Caicos Islands |
| TD | Chad |
| TF | French Southern Territories |
| TG | Togo |
| TH | Thailand |
| TJ | Tajikistan |
| TK | Tokelau |
| TL | East Timor |
| TM | Turkmenistan |
| TN | Tunisia |
| TO | Tonga |
| TR | Türkiye |
| TT | Trinidad and Tobago |
| TV | Tuvalu |
| TW | Taiwan |
| TZ | Tanzania |
| UA | Ukraine |
| UG | Uganda |
| UM | U.S. Minor Outlying Islands |
| US | United States |
| UY | Uruguay |
| UZ | Uzbekistan |
| VA | Vatican City |
| VC | Saint Vincent and the Grenadines |
| VE | Venezuela |
| VG | British Virgin Islands |
| VI | U.S. Virgin Islands |
| VN | Vietnam |
| VU | Vanuatu |
| WF | Wallis and Futuna |
| WS | Samoa |
| XK | Kosovo |
| YE | Yemen |
| YT | Mayotte |
| ZA | South Africa |
| ZM | Zambia |
| ZW | Zimbabwe |

The supportedCountries array only includes countries where the exchange allows trading. Countries not listed in the response are either restricted or not supported by that specific exchange.

---

# Get Exchange Coin Listings | Coinranking API Documentation


# Get exchange coin listings

Find coins listed on a specific exchange. On Coinranking, we use this endpoint on our exchange coin listings page.

```
https://api.coinranking.com/v2/exchange/:uuid/coins
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the exchange you want to request |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?offset=50 |
| orderBy (optional) String | Index to sort on. Default is 24h volume Default value:  24hVolume Allowed values:  24hVolume price numberOfMarkets  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?orderBy=numberOfMarkets |
| orderDirection (optional) String | order in ascending or descending order Default value:  desc Allowed values:  asc desc  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?orderDirection=asc |
| search (optional) String | Filter the results by searching for coin names or symbols.  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?search=bitcoin |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 3
    },
    "coins": [
      {
        "rank": 3,
        "uuid": "ETHxDUgYGNAdQ",
        "symbol": "ETH",
        "name": "Ethereum",
        "iconUrl": "https://cdn.coinranking.com/rk4RKHOuW/eth.svg",
        "price": "203",
        "btcPrice": "0.3",
        "24hVolume": "380",
        "numberOfMarkets": 2,
        "coinrankingUrl": "https://coinranking.com/coin/razxDUgYGNAdQ+ethereum-eth"
      },
      {
        "rank": 2,
        "uuid": "USDxDUgYGNAdQ",
        "symbol": "USDT",
        "name": "Tether",
        "iconUrl": "https://cdn.coinranking.com/SJs1nH_OZ/usdt.svg",
        "price": "1",
        "btcPrice": "0.0055573924999568905",
        "24hVolume": "2795542.586905519",
        "numberOfMarkets": 2,
        "coinrankingUrl": "https://coinranking.com/coin/HIVsRcGKkPFtW+tether-usdt"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "nextCursor": null,
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.total Number | Total number of coins |
| data.coins Object[] |  |
| data.coins.rank String | The rank for this coin in this exchange |
| data.coins.uuid String | UUID of the coin |
| data.coins.symbol String | Currency symbol |
| data.coins.name String | Name of the coin |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.price String | Price of the coin |
| data.coins.btcPrice String | Price of the coin expressed in Bitcoin. |
| data.coins.24hVolume String | 24h trade volume |
| data.coins.numberOfMarkets Number | The amount of markets this coin is exchanged in on this exchange |
| data.coins.coinrankingUrl String | Where to find the coin on coinranking.com |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Exchange New Coin Listings | Coinranking API Documentation


# Get exchange new coin listings

Retrieve the latest coin listings on a specific exchange. On Coinranking, we use this endpoint on our exchange new coin listings page.

```
https://api.coinranking.com/v2/exchange/:uuid/coins/new
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the exchange you want to request |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the market caps are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins/new?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins/new?offset=50 |


## Code examples

```
curl 'https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/exchange/-zdvbieRdZ/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coins": [
      {
        "listedAt": 1742303129,
        "uuid": "a3IXgFhtN",
        "symbol": "BMT",
        "name": "Bubblemaps",
        "iconUrl": "https://cdn.coinranking.com/R1dKV2Onp/Bubblemaps.png",
        "price": "0.1433805008008976",
        "volume": "13704742.016513946"
      },
      {
        "listedAt": 1741698332,
        "uuid": "MU49Lzl6d",
        "symbol": "EPIC",
        "name": "Epic Chain",
        "iconUrl": "https://cdn.coinranking.com/3Iv5Rus_f/EPIC.png",
        "price": "1.339",
        "volume": "2564091.2873"
      },
      {
        "listedAt": 1741093527,
        "uuid": "1-Ajtrq28",
        "symbol": "GPS",
        "name": "GoPlus Security",
        "iconUrl": "https://cdn.coinranking.com/HZi3rfMQ4/GPS.png",
        "price": "0.03128404558295149",
        "volume": "6235184.12285391"
      }
    ]
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.coins Object[] | List of coins, ordered by tier (ascending) then listedAt (descending) |
| data.coins.listedAt Number | An Epoch timestamp in seconds |
| data.coins.uuid String | UUID of the coin |
| data.coins.symbol String | Currency symbol |
| data.coins.name String | Name of the coin |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.price String | Price of the coin |
| data.coins.24hVolume String | 24h trade volume |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Exchange List of Markets | Coinranking API Documentation


# Get exchange list of markets

Find markets on a specific exchange. On Coinranking, we use this endpoint on our exchange markets page.

```
https://api.coinranking.com/v2/exchange/:uuid/markets
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the exchange. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?offset=50 |
| orderBy (optional) String | Index to sort on. Default is 24h volume. Default value:  24hVolume Allowed values:  24hVolume price  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?orderBy=price |
| orderDirection (optional) String | Order in ascending or descending order Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?orderDirection=asc |
| search (optional) String | Value to search for within results, e.g. exchange names, currency names, or currency symbols Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?search=ethereum |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/exchange/-zdvbieRdZ/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "2795922.586905519",
      "total": 3
    },
    "markets": [
      {
        "uuid": "xk9M2LuHuID5",
        "active": 1,
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC"
        },
        "quote": {
          "symbol": "USD",
          "uuid": "yhjMzLPhuIDl"
        },
        "exchange": {
          "name": "Binance",
          "uuid": "-zdvbieRdZ",
          "iconUrl": "https://cdn.coinranking.com/d6w2Hj3z0/BitMEX.svg"
        },
        "24hVolume": "771875964.9750752",
        "price": "3842.9444791178726",
        "btcPrice": "1",
        "rank": 1,
        "marketShare": "30.48",
        "recommended": true,
        "filters": []
      },
      {
        "uuid": "bn7nTLHHuIq2",
        "active": 1,
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC"
        },
        "quote": {
          "symbol": "USDT",
          "uuid": "HIVsRcGKkPFtW"
        },
        "exchange": {
          "name": "Coinbase Pro",
          "uuid": "qn5ZJmPFP",
          "iconUrl": "https://cdn.coinranking.com/Ama6htyHL/coinbase.svg"
        },
        "24hVolume": "311344830.86823833",
        "price": "3869.146354559396",
        "btcPrice": "1",
        "rank": 2,
        "marketShare": "12.35",
        "recommended": true,
        "filters": []
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "nextCursor": null,
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of markets in the reference currency |
| data.stats.total Number | Total number of markets |
| data.markets Object[] |  |
| data.markets.uuid String | UUID of the market |
| data.markets.active Number | If the market is enabled or not |
| data.markets.base String | The coin on the left side of the pair, which price is calculated in units of the quote |
| data.markets.base.symbol String | Symbol of the baseCurrency of the market |
| data.markets.base.uuid String | UUID of the baseCurrency of the market |
| data.markets.quote String | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USD 10.000 means 1 BTC is traded for 10.000 USD. |
| data.markets.quote.uuid String | UUID of the quoteCurrency of the market |
| data.markets.quote.symbol String | Symbol of the quoteCurrency of the market |
| data.markets.exchange String | Exchange this market belongs to |
| data.markets.exchange.name String | Name of the exchange |
| data.markets.exchange.uuid String | UUID of the exchange |
| data.markets.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.markets.24hVolume String | 24h volume of the latest ticker in the reference currency |
| data.markets.price String | Price of the latest ticker in reference currency |
| data.markets.btcPrice String | Price of the latest ticker expressed in Bitcoin. |
| data.markets.rank Number | Rank of the market based on volume, taking into account exchange and currency filters |
| data.markets.marketShare String | Percentage of the total market volume reprented by this market, taking into account exchange and currency filters |
| data.markets.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.markets.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins.Allowed values: PREV_FACTOR EXTERNAL_ZSCORE GEO OUTSIDE_TOP_20 |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# DEX Endpoints Introduction | Coinranking API Documentation


# DEXs

DEXs (Decentralized Exchanges) are platforms where cryptocurrencies are traded without a central authority, such as
Uniswap,
PancakeSwap,
and Aerodrome.
We calculate the prices of coins based on the tickers coming from these exchanges.


## Endpoints

- DEXs Get a list of decentralized exchanges. For each of these exchanges coinranking has built a driver and periodically fetches price data.
- DEX Protocols Get a list of DEX protocols (child exchanges). Shows all child DEX exchanges that are part of parent DEX exchanges.
- DEX details More specific information about a decentralized exchange, such as links to its socials.
- DEX coin listings You can fetch coins listed on a specific decentralized exchange through our API.
- DEX new coin listings You can fetch the latest coins listed on a specific decentralized exchange through our API.
- DEX list of markets You can fetch the markets on a specific decentralized exchange with our API.

---

# Get DEXs | Coinranking API Documentation


# Get list of DEXs

Get a list of DEXs (Decentralized Exchange). DEX exchanges are ranked based on their trading volume in the last 24 hours.

On Coinranking, we use this endpoint on our Decentralized exchange ranking page.

```
https://api.coinranking.com/v2/dexs
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/dexs?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. Only usable when no filters are applied. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/dexs?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/dexs?offset=50 |
| orderBy (optional) String | Order by either 24h volume, number of markets or latest ticker. Ordering can only be done when no filters are applied. Default value:  24hVolume Allowed values:  24hVolume numberOfMarkets lastTickerCreatedAt  Example: https://api.coinranking.com/v2/dexs?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query, which can be in ascending or descending order. Only usable when no filters are applied. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/dexs?orderDirection=asc |
| uuids (optional) Array | DEX Exchange UUIDs to filter the exchanges on. Example: https://api.coinranking.com/v2/dexs?uuids[]=5Sfs67ZcuOWm&uuids[]=oIbmZCdhy |
| search (optional) String | Value to search for within results, e.g. exchange names. Example: https://api.coinranking.com/v2/dexs?search=uniswap |
| countries (optional) Array | Filter exchanges by supported countries using ISO 3166-1 alpha-2 country codes. Returns only exchanges that support trading in at least one of the specified countries. See the country codes reference for a full list of supported codes. Example: https://api.coinranking.com/v2/dexs?countries[]=US&countries[]=GB |
| fiatCurrencyUuids (optional) Array | Filter exchanges by fiat currencies they support for trading pairs, using each currency's UUID. Returns only exchanges that support at least one of the specified fiat currencies. You can find fiat currency UUIDs in the reference currencies endpoint using ?types[]=fiat. Single value example: https://api.coinranking.com/v2/dexs?fiatCurrencyUuids[]=yhjMzLPhuIDl Multiple values example: https://api.coinranking.com/v2/dexs?fiatCurrencyUuids[]=yhjMzLPhuIDl&fiatCurrencyUuids[]=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/dexs?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/dexs?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/dexs?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/dexs?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "113105627347",
      "total": 44
    },
    "exchanges": [
      {
        "uuid": "5Sfs67ZcuOWm",
        "rank": 1,
        "name": "Uniswap",
        "iconUrl": "https://cdn.coinranking.com/k5ItQcYiD/uniswap.png",
        "verified": false,
        "recommended": true,
        "numberOfMarkets": 3723,
        "numberOfCoins": 2477,
        "marketShare": "9.25",
        "coinrankingUrl": "https://coinranking.com/exchange/5Sfs67ZcuOWm+uniswap",
        "24hVolume": "49074772334"
      },
      {
        "uuid": "qcKBLrOdF31B",
        "rank": 2,
        "name": "PancakeSwap",
        "iconUrl": "https://cdn.coinranking.com/TbFf6uLZA/pancake.png",
        "verified": false,
        "recommended": true,
        "numberOfMarkets": 2272,
        "numberOfCoins": 1628,
        "marketShare": "8.17",
        "coinrankingUrl": "https://coinranking.com/exchange/qcKBLrOdF31B+pancakeswap",
        "24hVolume": "43324019249"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of DEX exchanges in the reference currency |
| data.stats.total Number | Total number of DEX exchanges |
| data.exchanges Object[] | List of DEX exchanges |
| data.exchanges.uuid String | UUID of the DEX exchange |
| data.exchanges.name String | Name of the DEX exchange |
| data.exchanges.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchanges.verified Boolean | DEPRECATED DEX exchanges that are verified to not participate in harmful practices such as wash trading are marked as verified. |
| data.exchanges.recommended Boolean | Whether the DEX exchange is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.exchanges.numberOfMarkets Number | Number of markets of the DEX exchange paired with Coinranking |
| data.exchanges.numberOfCoins Number | Number of coins of the DEX exchange paired with Coinranking |
| data.exchanges.24hVolume String | Total volume in 24 hours |
| data.exchanges.rank Number | Rank of the DEX exchange based on volume, taking into account exchange and currency filters |
| data.exchanges.marketShare String | Percentage of the total DEX exchange volume represented by this exchange. |
| data.exchanges.coinrankingUrl String | Where to find the DEX exchange on coinranking.com |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get DEX Protocols | Coinranking API Documentation


# Get list of DEX protocols

Get a list of DEX (Decentralized Exchange) protocols. DEX protocols are child exchanges that are part of a parent DEX exchange. They are ranked based on their trading volume in the last 24 hours.

```
https://api.coinranking.com/v2/dex-protocols
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/dex-protocols?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. Only usable when no filters are applied. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/dex-protocols?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/dex-protocols?offset=50 |
| orderBy (optional) String | Order by either 24h volume, number of markets or latest ticker. Ordering can only be done when no filters are applied. Default value:  24hVolume Allowed values:  24hVolume numberOfMarkets lastTickerCreatedAt  Example: https://api.coinranking.com/v2/dex-protocols?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query, which can be in ascending or descending order. Only usable when no filters are applied. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/dex-protocols?orderDirection=asc |
| uuids (optional) Array | DEX Protocol UUIDs to filter the protocols on. Example: https://api.coinranking.com/v2/dex-protocols?uuids[]=5Sfs67ZcuOWm&uuids[]=oIbmZCdhy |
| search (optional) String | Value to search for within results, e.g. protocol names. Example: https://api.coinranking.com/v2/dex-protocols?search=uniswap |
| countries (optional) Array | Filter DEX protocols by supported countries using ISO 3166-1 alpha-2 country codes. Returns only protocols that support trading in at least one of the specified countries. See the country codes reference for a full list of supported codes. Example: https://api.coinranking.com/v2/dex-protocols?countries[]=US&countries[]=GB |
| fiatCurrencyUuids (optional) Array | Filter DEX protocols by fiat currencies they support for trading pairs, using each currency's UUID. Returns only protocols that support at least one of the specified fiat currencies. You can find fiat currency UUIDs in the reference currencies endpoint using ?types[]=fiat. Single value example: https://api.coinranking.com/v2/dex-protocols?fiatCurrencyUuids[]=yhjMzLPhuIDl Multiple values example: https://api.coinranking.com/v2/dex-protocols?fiatCurrencyUuids[]=yhjMzLPhuIDl&fiatCurrencyUuids[]=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/dex-protocols?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/dex-protocols?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/dex-protocols?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/dex-protocols?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=24hVolume", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "111955679139",
      "total": 59
    },
    "exchanges": [
      {
        "uuid": "oIbmZCdhy",
        "name": "PancakeSwap v3 (BSC)",
        "iconUrl": "https://cdn.coinranking.com/3wigw7gEZ/pancakeswap.png",
        "verified": false,
        "recommended": true,
        "numberOfMarkets": 789,
        "numberOfCoins": 526,
        "marketShare": "11.37",
        "24hVolume": "38330704543"
      },
      {
        "uuid": "FeCJqGOi1",
        "name": "Uniswap v3 (Ethereum)",
        "iconUrl": "https://cdn.coinranking.com/j-19SX5s-/7083.png",
        "verified": false,
        "recommended": true,
        "numberOfMarkets": 675,
        "numberOfCoins": 412,
        "marketShare": "8.01",
        "24hVolume": "26984105104"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of DEX protocols in the reference currency |
| data.stats.total Number | Total number of DEX protocols |
| data.exchanges Object[] | List of DEX protocols (child exchanges) |
| data.exchanges.uuid String | UUID of the DEX protocol |
| data.exchanges.name String | Name of the DEX protocol |
| data.exchanges.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchanges.verified Boolean | DEPRECATED DEX protocols that are verified to not participate in harmful practices such as wash trading are marked as verified. |
| data.exchanges.recommended Boolean | Whether the DEX protocol is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.exchanges.numberOfMarkets Number | Number of markets of the DEX protocol paired with Coinranking |
| data.exchanges.numberOfCoins Number | Number of coins of the DEX protocol paired with Coinranking |
| data.exchanges.24hVolume String | Total volume in 24 hours |
| data.exchanges.marketShare String | Percentage of the total DEX protocol volume represented by this protocol. |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get DEX Details | Coinranking API Documentation


# Get DEX exchange details

Find information on a specific DEX exchange listed on coinranking. A DEX (Decentralized Exchange) is a platform where cryptocurrencies are traded without a central authority.

On Coinranking, we use this endpoint on our DEX exchange detail page.

```
https://api.coinranking.com/v2/dex/:uuid
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the DEX exchange you want to request. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm?referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm?referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm?referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm?referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "exchange": {
      "uuid": "5Sfs67ZcuOWm",
      "name": "Uniswap",
      "description": null,
      "iconUrl": "https://cdn.coinranking.com/k5ItQcYiD/uniswap.png",
      "websiteUrl": "https://app.uniswap.org/",
      "links": [
        {
          "name": "app.uniswap.org",
          "url": "https://app.uniswap.org/",
          "type": "website"
        },
        {
          "name": "discord.com",
          "url": "https://discord.com/invite/FCfyBSbCU5",
          "type": "discord"
        },
        {
          "name": "Uniswap/uniswap-interface",
          "url": "https://github.com/Uniswap/uniswap-interface",
          "type": "github"
        }
      ],
      "lastTickerCreatedAt": 1762918860000,
      "rank": 1,
      "marketShare": "13.19",
      "coinrankingUrl": "https://coinranking.com/exchange/5Sfs67ZcuOWm+uniswap",
      "24hVolume": "49646511999",
      "numberOfMarkets": 3692,
      "numberOfCoins": 2422,
      "verified": false,
      "recommended": true,
      "delistedAt": null,
      "notices": null,
      "tags": [
        "dex"
      ],
      "supportedCountries": [
        "AD",
        "AE",
        "AF",
        "AG",
        "AI",
        "AL",
        "AM",
        "AO",
        "AQ",
        "AR",
        "AS",
        "AT",
        "AU",
        "AW",
        "AX",
        "AZ",
        "BA",
        "BB",
        "BD",
        "BE",
        "BF",
        "BG",
        "BH",
        "BI",
        "BJ",
        "BL",
        "BM",
        "BN",
        "BO",
        "BQ",
        "BR",
        "BS",
        "BT",
        "BV",
        "BW",
        "BZ",
        "CA",
        "CC",
        "CD",
        "CF",
        "CG",
        "CH",
        "CK",
        "CL",
        "CM",
        "CN",
        "CO",
        "CR",
        "CV",
        "CW",
        "CX",
        "CY",
        "CZ",
        "DE",
        "DJ",
        "DK",
        "DM",
        "DO",
        "DZ",
        "EC",
        "EE",
        "EG",
        "EH",
        "ER",
        "ES",
        "ET",
        "FI",
        "FJ",
        "FK",
        "FM",
        "FO",
        "FR",
        "GA",
        "GB",
        "GD",
        "GE",
        "GF",
        "GG",
        "GH",
        "GI",
        "GL",
        "GM",
        "GN",
        "GP",
        "GQ",
        "GR",
        "GS",
        "GT",
        "GU",
        "GW",
        "GY",
        "HK",
        "HM",
        "HN",
        "HR",
        "HT",
        "HU",
        "ID",
        "IE",
        "IL",
        "IM",
        "IN",
        "IO",
        "IS",
        "IT",
        "JE",
        "JM",
        "JO",
        "JP",
        "KE",
        "KG",
        "KH",
        "KI",
        "KM",
        "KN",
        "KR",
        "KW",
        "KY",
        "KZ",
        "LA",
        "LB",
        "LC",
        "LI",
        "LK",
        "LS",
        "LT",
        "LU",
        "LV",
        "LY",
        "MA",
        "MC",
        "MD",
        "ME",
        "MF",
        "MG",
        "MH",
        "MK",
        "ML",
        "MM",
        "MN",
        "MO",
        "MP",
        "MQ",
        "MR",
        "MS",
        "MT",
        "MU",
        "MV",
        "MW",
        "MX",
        "MY",
        "MZ",
        "NA",
        "NC",
        "NE",
        "NF",
        "NG",
        "NI",
        "NL",
        "NO",
        "NP",
        "NR",
        "NU",
        "NZ",
        "OM",
        "PA",
        "PE",
        "PF",
        "PG",
        "PH",
        "PK",
        "PL",
        "PM",
        "PN",
        "PR",
        "PS",
        "PT",
        "PW",
        "PY",
        "QA",
        "RE",
        "RO",
        "RS",
        "RU",
        "RW",
        "SA",
        "SB",
        "SC",
        "SE",
        "SG",
        "SH",
        "SI",
        "SJ",
        "SK",
        "SL",
        "SM",
        "SN",
        "SO",
        "SR",
        "SS",
        "ST",
        "SV",
        "SX",
        "SZ",
        "TC",
        "TD",
        "TF",
        "TG",
        "TH",
        "TJ",
        "TK",
        "TL",
        "TM",
        "TN",
        "TO",
        "TR",
        "TT",
        "TV",
        "TW",
        "TZ",
        "UA",
        "UG",
        "UM",
        "US",
        "UY",
        "UZ",
        "VA",
        "VC",
        "VE",
        "VG",
        "VI",
        "VN",
        "VU",
        "WF",
        "WS",
        "XK",
        "YE",
        "YT",
        "ZA",
        "ZM"
      ],
      "supportedFiatCurrencies": {
        "total": 0,
        "fiats": []
      },
      "trustDetails": {
        "foundingCountry": "US",
        "foundingDate": 1541030400000
      }
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.exchange Object |  |
| data.exchange.uuid String | UUID of the DEX exchange |
| data.exchange.name String | Name of the DEX exchange |
| data.exchange.description String | Description of the DEX exchange |
| data.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchange.websiteUrl String | Website URL to the DEX exchange |
| data.exchange.verified Boolean | DEPRECATED A verified DEX exchange is verified to not participate in harmful practices such as wash trading. |
| data.exchange.recommended Boolean | Whether the DEX exchange is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.exchange.numberOfMarkets Number | Number of markets of the DEX exchange paired with Coinranking |
| data.exchange.numberOfCoins Number | Number of coins listed for this DEX exchange on Coinranking |
| data.exchange.24hVolume String | Total volume in 24 hours |
| data.exchange.lastTickerCreatedAt Number | Timestamp of the latest ticker |
| data.exchange.links Object[] | List of links, like social media pages |
| data.exchange.links.name String | Name of the link |
| data.exchange.links.url String | Url to the specific link |
| data.exchange.links.type String | The type of linkAllowed values: website bitcointalk explorer discord facebook github instagram line-messenger linkedin medium qq quora reddit sina-weibo telegram tiktok twitter vkontakte wechat whitepaper youtube etc. |
| data.exchange.rank Number | Rank of the DEX exchange based on volume, taking into account exchange and currency filters |
| data.exchange.marketShare String | Percentage of the total DEX exchange volume represented by this exchange. |
| data.exchange.coinrankingUrl String | Where to find the DEX exchange on coinranking.com |
| data.exchange.delistedAt String/null | The date at which a DEX exchange is delisted at Coinranking, which means no new data is being fetched from the exchange. This is done when an exchange ceases to exist or is hard to reach. When the value is null, the exchange is not delisted. |
| data.exchange.notices Object[] | List of notices, which signal some important information about the DEX exchange. E.g. that the exchange has been delisted and no new price data is being fetched from it. The notices are in JSON format, and in most cases consist of a "type" property with an important keyword such as "DELISTED", and a more human readable message in a "value" property. |
| data.exchange.tags Object[] | List of tags, like "DEX" or "CEX" |
| data.exchange.supportedCountries String[] | Array of ISO country codes supported by the DEX exchange (e.g., ["US", "GB", "DE"]). Only includes countries where the exchange allows users to trade. See Country Codes Reference for a complete list of country codes and names. |
| data.exchange.supportedFiatCurrencies Object | Fiat currencies supported by the DEX exchange for trading pairs |
| data.exchange.supportedFiatCurrencies.total Number | Total number of supported fiat currencies |
| data.exchange.supportedFiatCurrencies.fiats Object[] | List of supported fiat currencies with UUID, name, and symbol |
| data.exchange.supportedFiatCurrencies.fiats.uuid String | Unique identifier for the fiat currency |
| data.exchange.supportedFiatCurrencies.fiats.name String | Full name of the fiat currency (e.g., "Euro", "Turkish Lira") |
| data.exchange.supportedFiatCurrencies.fiats.symbol String | Currency symbol (e.g., "EUR", "TRY") |
| data.exchange.trustDetails Object | Trust and founding information about the DEX exchange |
| data.exchange.trustDetails.foundingCountry String | ISO 3166-1 alpha-2 country code where the DEX exchange was founded (e.g., "US" for United States). See Country Codes Reference for the complete list. |
| data.exchange.trustDetails.foundingDate Number | Timestamp when the DEX exchange was founded |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The DEX exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |


## Country Codes Reference

The supportedCountries field returns an array of ISO 3166-1 alpha-2 country codes. Below is the complete reference of all country codes and their corresponding country names:

| Code | Country Name |
| --- | --- |
| AD | Andorra |
| AE | United Arab Emirates |
| AF | Afghanistan |
| AG | Antigua and Barbuda |
| AI | Anguilla |
| AL | Albania |
| AM | Armenia |
| AO | Angola |
| AQ | Antarctica |
| AR | Argentina |
| AS | American Samoa |
| AT | Austria |
| AU | Australia |
| AW | Aruba |
| AX | Aland |
| AZ | Azerbaijan |
| BA | Bosnia and Herzegovina |
| BB | Barbados |
| BD | Bangladesh |
| BE | Belgium |
| BF | Burkina Faso |
| BG | Bulgaria |
| BH | Bahrain |
| BI | Burundi |
| BJ | Benin |
| BL | Saint Barthelemy |
| BM | Bermuda |
| BN | Brunei |
| BO | Bolivia |
| BQ | Bonaire |
| BR | Brazil |
| BS | Bahamas |
| BT | Bhutan |
| BV | Bouvet Island |
| BW | Botswana |
| BY | Belarus |
| BZ | Belize |
| CA | Canada |
| CC | Cocos (Keeling) Islands |
| CD | Democratic Republic of the Congo |
| CF | Central African Republic |
| CG | Republic of the Congo |
| CH | Switzerland |
| CI | Ivory Coast |
| CK | Cook Islands |
| CL | Chile |
| CM | Cameroon |
| CN | China |
| CO | Colombia |
| CR | Costa Rica |
| CU | Cuba |
| CV | Cape Verde |
| CW | Curacao |
| CX | Christmas Island |
| CY | Cyprus |
| CZ | Czech Republic |
| DE | Germany |
| DJ | Djibouti |
| DK | Denmark |
| DM | Dominica |
| DO | Dominican Republic |
| DZ | Algeria |
| EC | Ecuador |
| EE | Estonia |
| EG | Egypt |
| EH | Western Sahara |
| ER | Eritrea |
| ES | Spain |
| ET | Ethiopia |
| FI | Finland |
| FJ | Fiji |
| FK | Falkland Islands |
| FM | Micronesia |
| FO | Faroe Islands |
| FR | France |
| GA | Gabon |
| GB | United Kingdom |
| GD | Grenada |
| GE | Georgia |
| GF | French Guiana |
| GG | Guernsey |
| GH | Ghana |
| GI | Gibraltar |
| GL | Greenland |
| GM | Gambia |
| GN | Guinea |
| GP | Guadeloupe |
| GQ | Equatorial Guinea |
| GR | Greece |
| GS | South Georgia and the South Sandwich Islands |
| GT | Guatemala |
| GU | Guam |
| GW | Guinea-Bissau |
| GY | Guyana |
| HK | Hong Kong |
| HM | Heard Island and McDonald Islands |
| HN | Honduras |
| HR | Croatia |
| HT | Haiti |
| HU | Hungary |
| ID | Indonesia |
| IE | Ireland |
| IL | Israel |
| IM | Isle of Man |
| IN | India |
| IO | British Indian Ocean Territory |
| IQ | Iraq |
| IR | Iran |
| IS | Iceland |
| IT | Italy |
| JE | Jersey |
| JM | Jamaica |
| JO | Jordan |
| JP | Japan |
| KE | Kenya |
| KG | Kyrgyzstan |
| KH | Cambodia |
| KI | Kiribati |
| KM | Comoros |
| KN | Saint Kitts and Nevis |
| KP | North Korea |
| KR | South Korea |
| KW | Kuwait |
| KY | Cayman Islands |
| KZ | Kazakhstan |
| LA | Laos |
| LB | Lebanon |
| LC | Saint Lucia |
| LI | Liechtenstein |
| LK | Sri Lanka |
| LR | Liberia |
| LS | Lesotho |
| LT | Lithuania |
| LU | Luxembourg |
| LV | Latvia |
| LY | Libya |
| MA | Morocco |
| MC | Monaco |
| MD | Moldova |
| ME | Montenegro |
| MF | Saint Martin |
| MG | Madagascar |
| MH | Marshall Islands |
| MK | North Macedonia |
| ML | Mali |
| MM | Myanmar |
| MN | Mongolia |
| MO | Macao |
| MP | Northern Mariana Islands |
| MQ | Martinique |
| MR | Mauritania |
| MS | Montserrat |
| MT | Malta |
| MU | Mauritius |
| MV | Maldives |
| MW | Malawi |
| MX | Mexico |
| MY | Malaysia |
| MZ | Mozambique |
| NA | Namibia |
| NC | New Caledonia |
| NE | Niger |
| NF | Norfolk Island |
| NG | Nigeria |
| NI | Nicaragua |
| NL | Netherlands |
| NO | Norway |
| NP | Nepal |
| NR | Nauru |
| NU | Niue |
| NZ | New Zealand |
| OM | Oman |
| PA | Panama |
| PE | Peru |
| PF | French Polynesia |
| PG | Papua New Guinea |
| PH | Philippines |
| PK | Pakistan |
| PL | Poland |
| PM | Saint Pierre and Miquelon |
| PN | Pitcairn Islands |
| PR | Puerto Rico |
| PS | Palestine |
| PT | Portugal |
| PW | Palau |
| PY | Paraguay |
| QA | Qatar |
| RE | Reunion |
| RO | Romania |
| RS | Serbia |
| RU | Russia |
| RW | Rwanda |
| SA | Saudi Arabia |
| SB | Solomon Islands |
| SC | Seychelles |
| SD | Sudan |
| SE | Sweden |
| SG | Singapore |
| SH | Saint Helena |
| SI | Slovenia |
| SJ | Svalbard and Jan Mayen |
| SK | Slovakia |
| SL | Sierra Leone |
| SM | San Marino |
| SN | Senegal |
| SO | Somalia |
| SR | Suriname |
| SS | South Sudan |
| ST | Sao Tome and Principe |
| SV | El Salvador |
| SX | Sint Maarten |
| SY | Syria |
| SZ | Eswatini |
| TC | Turks and Caicos Islands |
| TD | Chad |
| TF | French Southern Territories |
| TG | Togo |
| TH | Thailand |
| TJ | Tajikistan |
| TK | Tokelau |
| TL | East Timor |
| TM | Turkmenistan |
| TN | Tunisia |
| TO | Tonga |
| TR | Türkiye |
| TT | Trinidad and Tobago |
| TV | Tuvalu |
| TW | Taiwan |
| TZ | Tanzania |
| UA | Ukraine |
| UG | Uganda |
| UM | U.S. Minor Outlying Islands |
| US | United States |
| UY | Uruguay |
| UZ | Uzbekistan |
| VA | Vatican City |
| VC | Saint Vincent and the Grenadines |
| VE | Venezuela |
| VG | British Virgin Islands |
| VI | U.S. Virgin Islands |
| VN | Vietnam |
| VU | Vanuatu |
| WF | Wallis and Futuna |
| WS | Samoa |
| XK | Kosovo |
| YE | Yemen |
| YT | Mayotte |
| ZA | South Africa |
| ZM | Zambia |
| ZW | Zimbabwe |

The supportedCountries array only includes countries where the DEX exchange allows trading. Countries not listed in the response are either restricted or not supported by that specific exchange.

---

# Get DEX Coin Listings | Coinranking API Documentation


# Get DEX exchange coin listings

Find coins listed on a specific DEX exchange. On Coinranking, we use this endpoint on our DEX exchange coin listings page.

```
https://api.coinranking.com/v2/dex/:uuid/coins
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the DEX exchange you want to request |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?offset=50 |
| orderBy (optional) String | Index to sort on. Default is 24h volume Default value:  24hVolume Allowed values:  24hVolume price numberOfMarkets  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?orderBy=numberOfMarkets |
| orderDirection (optional) String | order in ascending or descending order Default value:  desc Allowed values:  asc desc  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?orderDirection=asc |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=numberOfMarkets", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 2430
    },
    "coins": [
      {
        "rank": 1,
        "uuid": "Mtfb0obXVh59u",
        "symbol": "WETH",
        "name": "Wrapped Ether",
        "iconUrl": "https://cdn.coinranking.com/0Ema8rdoQ/weth.png",
        "numberOfMarkets": 387,
        "coinrankingUrl": "https://coinranking.com/coin/Mtfb0obXVh59u+wrappedether-weth",
        "price": "3440.2257784066314",
        "btcPrice": "0.033283653246679534",
        "24hVolume": "16478129205.36578"
      },
      {
        "rank": 2,
        "uuid": "i5jggxiwp",
        "symbol": "BSC-USD",
        "name": "Binance-Peg BSC-USD",
        "iconUrl": "https://cdn.coinranking.com/SeA5fxqOR/busdt_32.png",
        "numberOfMarkets": 206,
        "coinrankingUrl": "https://coinranking.com/coin/i5jggxiwp+binance-pegbsc-usd-bsc-usd",
        "price": "0.9999639744442227",
        "btcPrice": "0.000009675302480305863",
        "24hVolume": "15942824524.041134"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJiIjpbXSwidiI6MiwiciI6MiwidCI6Imk1amdneGl3cCIsIm8iOiJ2b2x1bWUiLCJkIjoiZGVzYyIsImMiOiJuZXh0IiwicCI6Mn0",
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.total Number | Total number of coins |
| data.coins Object[] |  |
| data.coins.rank String | The rank for this coin in this DEX exchange |
| data.coins.uuid String | UUID of the coin |
| data.coins.symbol String | Currency symbol |
| data.coins.name String | Name of the coin |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.price String | Price of the coin |
| data.coins.btcPrice String | Price of the coin expressed in Bitcoin. |
| data.coins.24hVolume String | 24h trade volume |
| data.coins.numberOfMarkets Number | The amount of markets this coin is exchanged in on this DEX exchange |
| data.coins.coinrankingUrl String | Where to find the coin on coinranking.com |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The DEX exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get DEX New Coin Listings | Coinranking API Documentation


# Get DEX exchange new coin listings

Retrieve the latest coin listings on a specific DEX exchange. On Coinranking, we use this endpoint on our DEX exchange new coin listings page.

```
https://api.coinranking.com/v2/dex/:uuid/coins/new
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the DEX exchange you want to request |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the market caps are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins/new?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins/new?offset=50 |


## Code examples

```
curl 'https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/coins/new?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coins": [
      {
        "listedAt": 1762902770,
        "uuid": "7P5OHd5iR4JC",
        "symbol": "GON",
        "name": "GoGon Coin",
        "iconUrl": "https://cdn.coinranking.com/SkxEigkkOg/gogon-coin.svg",
        "price": "0.000034465484245165",
        "24hVolume": "0.6619203313111162"
      },
      {
        "listedAt": 1762901931,
        "uuid": "fpJ2NpbWyJf1",
        "symbol": "EQUALITY",
        "name": "Equality Coin",
        "iconUrl": "https://cdn.coinranking.com/_rklVEJvw0/equality-coin.svg",
        "price": "0.000003447184328259",
        "24hVolume": "805.6231538782771"
      },
      ...
    ]
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.coins Object[] | List of coins, ordered by tier (ascending) then listedAt (descending) |
| data.coins.listedAt Number | An Epoch timestamp in seconds |
| data.coins.uuid String | UUID of the coin |
| data.coins.symbol String | Currency symbol |
| data.coins.name String | Name of the coin |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.price String | Price of the coin |
| data.coins.24hVolume String | 24h trade volume |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The DEX exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get DEX List of Markets | Coinranking API Documentation


# Get DEX exchange list of markets

Find markets on a specific DEX exchange. On Coinranking, we use this endpoint on our DEX exchange markets page.

```
https://api.coinranking.com/v2/dex/:uuid/markets
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the DEX exchange. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?offset=50 |
| orderBy (optional) String | Index to sort on. Default is 24h volume. Default value:  24hVolume Allowed values:  24hVolume price  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?orderBy=price |
| orderDirection (optional) String | Order in ascending or descending order Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?orderDirection=asc |
| search (optional) String | Value to search for within results, e.g. exchange names, currency names, or currency symbols Example: https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?search=ethereum |


## Code examples

```
curl 'https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/dex/5Sfs67ZcuOWm/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "54030830805.08821",
      "total": 3611
    },
    "markets": [
      {
        "uuid": "jgJvUYCmY55B",
        "rank": 1,
        "base": {
          "uuid": "H3PgrgCyL",
          "symbol": "QUQ"
        },
        "quote": {
          "uuid": "i5jggxiwp",
          "symbol": "BSC-USD"
        },
        "exchange": {
          "name": "Uniswap v3 (BSC)",
          "uuid": "gEu3FBYGdb",
          "iconUrl": "https://cdn.coinranking.com/I3ZqUTC5S/7083.png"
        },
        "marketShare": "13.17",
        "btcPrice": "3.4810583378e-8",
        "recommended": true,
        "filters": [],
        "price": "0.003598230296669107",
        "24hVolume": "7115923819.1953535"
      },
      {
        "uuid": "Kn5jozcG0rlq",
        "rank": 2,
        "base": {
          "uuid": "i5jggxiwp",
          "symbol": "BSC-USD"
        },
        "quote": {
          "uuid": "h0fv-rQTj",
          "symbol": "KOGE"
        },
        "exchange": {
          "name": "Uniswap v3 (BSC)",
          "uuid": "gEu3FBYGdb",
          "iconUrl": "https://cdn.coinranking.com/I3ZqUTC5S/7083.png"
        },
        "marketShare": "8.89",
        "btcPrice": "0.000009669892405769",
        "recommended": true,
        "filters": [],
        "price": "0.9995379693052033",
        "24hVolume": "4805208932.719478"
      },
      ...
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of markets in the reference currency |
| data.stats.total Number | Total number of markets |
| data.markets Object[] |  |
| data.markets.uuid String | UUID of the market |
| data.markets.active Number | If the market is enabled or not |
| data.markets.base String | The coin on the left side of the pair, which price is calculated in units of the quote |
| data.markets.base.symbol String | Symbol of the baseCurrency of the market |
| data.markets.base.uuid String | UUID of the baseCurrency of the market |
| data.markets.quote String | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USD 10.000 means 1 BTC is traded for 10.000 USD. |
| data.markets.quote.uuid String | UUID of the quoteCurrency of the market |
| data.markets.quote.symbol String | Symbol of the quoteCurrency of the market |
| data.markets.exchange String | DEX exchange this market belongs to |
| data.markets.exchange.name String | Name of the DEX exchange |
| data.markets.exchange.uuid String | UUID of the DEX exchange |
| data.markets.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.markets.24hVolume String | 24h volume of the latest ticker in the reference currency |
| data.markets.price String | Price of the latest ticker in reference currency |
| data.markets.btcPrice String | Price of the latest ticker expressed in Bitcoin. |
| data.markets.rank Number | Rank of the market based on volume, taking into account exchange and currency filters |
| data.markets.marketShare String | Percentage of the total market volume represented by this market, taking into account exchange and currency filters |
| data.markets.recommended Boolean | Whether the market is recommended based on the DEX exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.markets.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins.Allowed values: PREV_FACTOR EXTERNAL_ZSCORE GEO OUTSIDE_TOP_20 |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The DEX exchange could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Market Endpoints Introduction | Coinranking API Documentation


# Markets

Markets on exchanges, also known as trading pairs, are places to trade between two specific
cryptocurrencies. For example, a market with a trading pair of BTC/USDT is a place where people can
buy or sell Bitcoins with Tether.


## Endpoints

- Markets Get a list of markets.
- Market details Gets more specific details about a market, such as a latest ticker for this market.

---

# Get Markets | Coinranking API Documentation


# Get list of markets

Get a list of markets. Markets are ranked by their volume over the last 24 hours. Use our filters to get a subset of the markets.

On Coinranking, we use this endpoint on our market ranking page.

```
https://api.coinranking.com/v2/markets
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/markets?referenceCurrencyUuid=5k-_VTxqtCEI |
| limit (optional) Number | Limit. Used for pagination. Only usable when no filters are applied Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/markets?limit=10 |
| offset (optional) Number | Offset. Used for pagination only usable when no filters are applied Default value:  0  Example: https://api.coinranking.com/v2/markets?offset=50 |
| orderBy (optional) String | Sort by either 24h volume or price. Only usable when no filters are applied Default value:  24hVolume Allowed values:  24hVolume price  Example: https://api.coinranking.com/v2/markets?orderBy=price |
| orderDirection (optional) String | Sort in ascending or descending order. Only usable when no filters are applied. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/markets?orderDirection=asc |
| search (optional) String | Filter the results by searching for coin names, symbols or exchange names. Example: https://api.coinranking.com/v2/markets?search=bitcoin |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/markets?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/markets?referenceCurrencyUuid=5k-_VTxqtCEI&limit=50&offset=0&orderBy=price", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "24hVolume": "6554685985.623574",
      "total": 27521
    },
    "markets": [
      {
        "uuid": "xk9M2LuHuID5",
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC"
        },
        "quote": {
          "uuid": "yhjMzLPhuIDl",
          "symbol": "USD"
        },
        "exchange": {
          "name": "Binance",
          "uuid": "-zdvbieRdZ",
          "iconUrl": "https://cdn.coinranking.com/d6w2Hj3z0/BitMEX.svg"
        },
        "24hVolume": "771875964.9750752",
        "price": "3842.9444791178726",
        "btcPrice": "1",
        "rank": 1,
        "marketShare": "30.48",
        "recommended": true,
        "filters": []
      },
      {
        "uuid": "bn7nTLHHuIq2",
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC"
        },
        "quote": {
          "uuid": "HIVsRcGKkPFtW",
          "symbol": "USDT"
        },
        "exchange": {
          "name": "Coinbase Pro",
          "uuid": "qn5ZJmPFP",
          "iconUrl": "https://cdn.coinranking.com/Ama6htyHL/coinbase.svg"
        },
        "24hVolume": "311344830.86823833",
        "price": "3869.146354559396",
        "btcPrice": "1",
        "rank": 2,
        "marketShare": "12.35",
        "recommended": true,
        "filters": []
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLCJyIjozMTEzNDQ4MzAuODY4MjM4MzMsInUiOiJibjduVExISHVJcTIiLCJvIjoiMjRoVm9sdW1lIiwiZCI6ImRlc2MifQ",
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.24hVolume String | Total 24h volume of markets in the reference currency |
| data.stats.total Number | Total number of markets |
| data.markets Object[] | List of markets |
| data.markets.uuid String | UUID of the market |
| data.markets.base String | The coin on the left side of the pair, which price is calculated in units of the quote |
| data.markets.base.uuid String | UUID of the baseCurrency of the market |
| data.markets.base.symbol String | Symbol of the baseCurrency of the market |
| data.markets.quote String | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USD 10.000 means 1 BTC is traded for 10.000 USD. |
| data.markets.quote.uuid String | UUID of the quoteCurrency of the market |
| data.markets.quote.symbol String | Symbol of the quoteCurrency of the market |
| data.markets.exchange String | Exchange this market belongs to |
| data.markets.exchange.name String | Name of the exchange |
| data.markets.exchange.uuid String | UUID of the exchange |
| data.markets.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.markets.24hVolume String | The 24 hour volume of the base currency in the reference currency which defaults to US Dollar. For example in an ETH/BTC market the volume would be Ethereum in US Dollar. |
| data.markets.price String | The latest price of the base currency in the reference currency which defaults to US Dollar. For example in an ETH/BTC market the price would be Ethereum in US Dollar. |
| data.markets.btcPrice String | The latest price of the base currency in Bitcoin. |
| data.markets.rank Number | Rank of the market based on volume, taking into account exchange and currency filters |
| data.markets.marketShare String | Percentage of the total market volume reprented by this market, taking into account exchange and currency filters |
| data.markets.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.markets.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins.Allowed values: PREV_FACTOR EXTERNAL_ZSCORE GEO OUTSIDE_TOP_20 |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Market Details | Coinranking API Documentation


# Get market details

Find information on a specific market listed on coinranking. On Coinranking, we use this endpoint on our market detail.

```
https://api.coinranking.com/v2/market/:uuid
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid Uuid | Uuid of the market you want to request |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used to calculate the volume. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/market/MP77r-vKf4?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/market/MP77r-vKf4?referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/market/MP77r-vKf4?referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/market/MP77r-vKf4?referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/market/MP77r-vKf4?referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "market": {
      "uuid": "MP77r-vKf4",
      "rank": 7,
      "base": {
        "uuid": "Qwsogvtv82FCd",
        "symbol": "BTC",
        "name": "Bitcoin",
        "type": "coin"
      },
      "quote": {
        "symbol": "USDT",
        "uuid": "HIVsRcGKkPFtW",
        "name": "Tether",
        "type": "coin"
      },
      "exchange": {
        "name": "Binance",
        "uuid": "-zdvbieRdZ",
        "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
        "websiteUrl": "https://www.binance.com"
      },
      "latestTicker": {
        "createdAt": 1594808541,
        "close": "10190.495525500779",
        "base24hVolume": "34878",
        "quote24hVolume": "354103375"
      },
      "marketShare": "1.23",
      "price": "9488.518829659914",
      "btcPrice": "1",
      "24hVolume": "353383358.2006244",
      "recommended": true,
      "filters": []
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.market Object |  |
| data.market.uuid String | Uuid of the market |
| data.markets.base String | The coin on the left side of the pair, which price is calculated in units of the quote |
| data.market.base.uuid String | Uuid of the baseCurrency of the market |
| data.market.base.symbol String | Symbol of the baseCurrency of the market |
| data.market.base.type String | Indicates if the base of the market is a coin or if it is fiatAllowed values: coin fiat |
| data.market.base.name String | Name of the baseCurrency of the market |
| data.markets.quote String | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USD 10.000 means 1 BTC is traded for 10.000 USD. |
| data.market.quote.uuid String | Uuid of the quoteCurrency of the market |
| data.market.quote.symbol String | Symbol of the quoteCurrency of the market |
| data.market.quote.name String | Name of the quoteCurrency of the market |
| data.market.quote.type String | Indicates if the quote of the market is a coin or if it is fiatAllowed values: coin fiat |
| data.markets.exchange String | Exchange this market belongs to |
| data.market.exchange.name String | Name of the exchange |
| data.market.exchange.uuid String | Uuid of the exchange |
| data.market.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.market.exchange.websiteUrl String | Url that points to the website of the exchange |
| data.market.latestTicker.createdAt String | An Epoch timestamp in seconds when the latest ticker was received |
| data.market.latestTicker.close String | The last price received from the market |
| data.market.latestTicker.base24hVolume String | Moving average of the base volume of the market in the last 24 hours. For example in a BTC/USD market it would be the Bitcoins traded within a 24 hour timespan. |
| data.market.latestTicker.quote24hVolume String | Moving average of the quote volume of the market in the last 24 hours. For example in a BTC/USD market it would be the US dollars traded within a 24 hour timespan. |
| data.market.24hVolume String | The 24 hour volume of the base currency in the reference currency which defaults to US Dollar. For example in an ETH/BTC market the volume would be Ethereum in US Dollar. |
| data.market.price String | The latest price of the base currency in the reference currency which defaults to US Dollar. For example in an ETH/BTC market the price would be Ethereum in US Dollar. |
| data.market.btcPrice String | The latest price of the base currency in Bitcoin. |
| data.market.rank Number | Rank of the market based on volume, taking into account exchange and currency filters |
| data.market.marketShare String | Percentage of the total market volume reprented by this market |
| data.market.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.market.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins.Allowed values: PREV_FACTOR EXTERNAL_ZSCORE GEO OUTSIDE_TOP_20 |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID |

---

# Futures Endpoints Introduction | Coinranking API Documentation


# Futures

Futures are derivatives markets where cryptocurrencies are traded through perpetual contracts, such as
Bitcoin futures,
Ethereum futures,
and other coin futures listed on supported exchanges.
We calculate futures metrics based on tickers and aggregates coming from these exchanges.

The futures endpoints expose futures data tracked by Coinranking. Use these endpoints to retrieve current futures coins, exchanges, markets, global stats, funding rates, open interest, and historical futures metrics.


## Endpoints

- Futures coins Get a list of coins that have futures markets, including open interest, funding rates, and volume.
- Futures coin details More specific futures metrics for a single coin.
- Futures coin markets You can fetch futures markets for a specific coin through our API.
- Futures coin exchanges You can fetch exchanges that list futures markets for a specific coin through our API.
- Futures coin OHLCV You can fetch futures OHLCV (Open High Low Close Volume) data for a specific coin through our API.
- Futures exchanges Get a list of exchanges that have futures markets.
- Futures exchange coins You can fetch futures coins listed on a specific exchange through our API.
- Futures exchange markets You can fetch futures markets on a specific exchange through our API.
- Futures markets Get a list of futures markets, including ticker, open interest, funding rate, and volume data.
- Futures market details More specific information about a futures market, such as its latest ticker.

---

# Get Futures Coins | Coinranking API Documentation


# Get futures coins

Get a list of coins with futures data. The response includes global futures statistics and a paginated list of coins ordered by open interest by default. All price, volume, and open interest values are converted to the requested reference currency.

```
https://api.coinranking.com/v2/futures/coins
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/coins?referenceCurrencyUuid=5k-_VTxqtCEI |
| uuids (optional) Array | UUIDs to filter the list on. If you know the UUIDs of the coins you want to fetch, you can use this filter to get specific coins. Example: https://api.coinranking.com/v2/futures/coins?uuids[]=Qwsogvtv82FCd&uuids[]=razxDUgYGNAdQ |
| symbols (optional) Array | Symbols to filter the list on. Note that symbols are not unique. Should you need a specific coin, use the UUIDs filter instead. Example: https://api.coinranking.com/v2/futures/coins?symbols[]=BTC&symbols[]=ETH |
| search (optional) String | Filter coins by name or symbol prefix. Example: https://api.coinranking.com/v2/futures/coins?search=bitcoin |
| orderBy (optional) String | Index to order the list by. Default value:  openInterest Allowed values:  openInterest 24hVolume price fundingRate  Example: https://api.coinranking.com/v2/futures/coins?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/futures/coins?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/coins?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/coins?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/futures/coins?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/coins?orderBy=openInterest&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/coins?orderBy=openInterest&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/coins?orderBy=openInterest&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/coins?orderBy=openInterest&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 764,
      "totalCoins": 764,
      "totalMarkets": 4134,
      "totalExchanges": 10,
      "totalOpenInterest": "71745231130.26796",
      "total24hVolume": "105215795157",
      "fundingRate": "-0.00045426072917752"
    },
    "coins": [
      {
        "uuid": "Qwsogvtv82FCd",
        "symbol": "BTC",
        "name": "Bitcoin",
        "color": "#f7931A",
        "iconUrl": "https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg",
        "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc",
        "rank": 1,
        "price": "65261.3934196038",
        "priceChange": "-0.543",
        "24hVolume": "32400445942",
        "24hVolumeChange": "1.8503",
        "openInterest": "28281554854.323086",
        "openInterestChange": "-0.7643",
        "fundingRate": "-0.002018022324683528"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLC...",
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data.stats Object | Global futures statistics. Scope includes all futures coins, not just the current page. |
| data.stats.total Number | Total number of coins with futures data matching the applied filters. |
| data.stats.totalCoins Number | Total number of coins with active futures markets. |
| data.stats.totalMarkets Number | Total number of active futures markets. |
| data.stats.totalExchanges Number | Total number of exchanges offering futures. |
| data.stats.totalOpenInterest String | Global open interest in the reference currency. |
| data.stats.total24hVolume String | Global 24-hour futures trading volume in the reference currency. |
| data.stats.fundingRate String | Open-interest-weighted average funding rate (8-hour display convention). |
| data.coins[] Object[] | List of futures coins |
| data.coins[].uuid String | UUID of the coin. |
| data.coins[].symbol String | Currency symbol |
| data.coins[].name String | Name of the coin. |
| data.coins[].color String | Main HEX color of the coin |
| data.coins[].iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins[].coinrankingUrl String | Where to find the coin on coinranking.com |
| data.coins[].rank Number | The position in the ranks |
| data.coins[].price String | Price of the futures coin |
| data.coins[].priceChange String | 24-hour price change percentage. |
| data.coins[].24hVolume String | 24h trade volume |
| data.coins[].24hVolumeChange String | 24-hour volume change percentage. |
| data.coins[].openInterest String | Open interest in the reference currency. |
| data.coins[].openInterestChange String | 24-hour open interest change percentage. |
| data.coins[].fundingRate String | OI-weighted average funding rate for this coin (8-hour display convention). Null when unavailable. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String|null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String|null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency with UUID of HxDUgYGNAdQz not available"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Futures Coin Details | Coinranking API Documentation


# Get futures coin details

Get detailed futures metrics for a single coin. The response includes converted price, volume, open interest, funding rate, and metadata such as description and links.

```
https://api.coinranking.com/v2/futures/coin/:uuid
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request. UUIDs of coins can be found using the coins endpoint or by checking the URL on coinranking.com. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd?referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coin": {
      "id": 1,
      "uuid": "Qwsogvtv82FCd",
      "symbol": "BTC",
      "name": "Bitcoin",
      "description": "Bitcoin is a decentralized digital currency...",
      "links": [
        {
          "name": "website",
          "type": "website",
          "url": "https://bitcoin.org"
        }
      ],
      "color": "#f7931A",
      "iconUrl": "https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg",
      "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc",
      "priceAt": 1710000000,
      "btcPrice": "1",
      "price": "65261.3934196038",
      "priceChange": "-0.543",
      "24hVolume": "32400445942",
      "24hVolumeChange": "1.8503",
      "openInterest": "28281554854.323086",
      "openInterestChange": "-0.7643",
      "fundingRate": "-0.002018022324683528",
      "numberOfMarkets": 150,
      "numberOfExchanges": 10
    }
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data.coin Object | Futures metrics and metadata for the requested coin. |
| data.coin.id Number | Internal numeric identifier of the coin. |
| data.coin.uuid String | UUID of the coin. |
| data.coin.symbol String | Currency symbol. |
| data.coin.name String | Name of the coin. |
| data.coin.description String|null | Description text of the coin. Returns null when unavailable. |
| data.coin.links Object[] | List of links associated with the coin (website, explorers, social profiles, etc.). |
| data.coin.color String | Main HEX color of the coin. |
| data.coin.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coin.coinrankingUrl String | Where to find the coin on coinranking.com |
| data.coin.priceAt Number|null | Epoch timestamp in seconds of the latest futures price update. |
| data.coin.btcPrice String|null | Price of the coin expressed in Bitcoin. |
| data.coin.price String | Futures price in the reference currency. |
| data.coin.priceChange String|null | 24-hour price change percentage. |
| data.coin.24hVolume String | 24-hour trading volume in the reference currency. |
| data.coin.24hVolumeChange String|null | 24-hour volume change percentage. |
| data.coin.openInterest String | Open interest in the reference currency. |
| data.coin.openInterestChange String|null | 24-hour open interest change percentage. |
| data.coin.fundingRate String|null | OI-weighted average funding rate (8-hour display convention). |
| data.coin.numberOfMarkets Number | Number of active futures markets for this coin. |
| data.coin.numberOfExchanges Number | Number of exchanges with futures markets for this coin. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

---

# Get Futures Coin Markets | Coinranking API Documentation


# Get futures coin markets

Get futures markets on different exchanges that trade a specific coin. On Coinranking, we use this endpoint on our futures coin market listings page.

```
https://api.coinranking.com/v2/futures/coin/:uuid/markets
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin whose futures markets you want to retrieve. UUIDs can be found using the coins endpoint or by checking the URL on coinranking.com. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?referenceCurrencyUuid=5k-_VTxqtCEI |
| search (optional) String | Filter markets by exchange name, base currency name or symbol. Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?search=binance |
| orderBy (optional) String | Index to order the list by. Default value:  openInterest Allowed values:  openInterest 24hVolume price lastTickerCreatedAt  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?orderBy=openInterest&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?orderBy=openInterest&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?orderBy=openInterest&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/markets?orderBy=openInterest&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 150,
      "24hVolume": "32400445942.00",
      "openInterest": "28281554854.32"
    },
    "markets": [
      {
        "uuid": "9mm7u0M2fkO9R",
        "rank": 1,
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC",
          "name": "Bitcoin"
        },
        "quote": {
          "uuid": "HIVsRcGKkPFtW",
          "symbol": "USDT",
          "name": "Tether"
        },
        "exchange": {
          "uuid": "Ls9K5HaGJpOI",
          "name": "Binance",
          "iconUrl": "https://cdn.coinranking.com/binance.svg",
          "websiteUrl": "https://www.binance.com"
        },
        "marketShare": "32.5",
        "price": "65261.39",
        "markPrice": "65265.00",
        "indexPrice": "65258.50",
        "btcPrice": "1",
        "24hVolume": "12400000000.00",
        "minuteVolume": "8611111.11",
        "openInterest": "9200000000.00",
        "fundingRate": "-0.0025",
        "fundingIntervalHours": 8,
        "recommended": true,
        "filters": []
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLC...",
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request. Allowed values:  success |
| data.stats Object | Aggregate statistics across all markets for this coin (not just the current page). |
| data.stats.total Number | Total number of active futures markets for this coin. |
| data.stats.24hVolume String | Aggregate 24-hour trading volume across all markets, in the reference currency. |
| data.stats.openInterest String | Aggregate open interest across all markets, in the reference currency. |
| data.markets Object[] | List of futures markets for this coin. |
| data.markets.uuid String | UUID of the futures market. |
| data.markets.rank Number | Position in the ranked list. |
| data.markets.base Object | Base currency of the trading pair. |
| data.markets.base.uuid String | UUID of the base currency. |
| data.markets.base.symbol String | Symbol of the base currency. |
| data.markets.base.name String | Name of the base currency. |
| data.markets.quote Object | Quote currency of the trading pair. |
| data.markets.quote.uuid String | UUID of the quote currency. |
| data.markets.quote.symbol String | Symbol of the quote currency. |
| data.markets.quote.name String | Name of the quote currency. |
| data.markets.exchange Object | Exchange this market belongs to. |
| data.markets.exchange.uuid String | UUID of the exchange. |
| data.markets.exchange.name String | Name of the exchange. |
| data.markets.exchange.iconUrl String | Icon URL of the exchange. |
| data.markets.exchange.websiteUrl String|null | Website URL of the exchange. |
| data.markets.marketShare String|null | This market's share of the total 24h volume across all markets for this coin, as a percentage string. |
| data.markets.price String|null | Latest futures price in the reference currency. |
| data.markets.markPrice String|null | Mark price in the reference currency. Used by exchanges to calculate unrealized PnL and trigger liquidations. |
| data.markets.indexPrice String|null | Index price in the reference currency. Typically a weighted average of spot prices across major exchanges. |
| data.markets.btcPrice String|null | Price of the market expressed in Bitcoin. |
| data.markets.24hVolume String|null | 24-hour trading volume in the reference currency. |
| data.markets.minuteVolume String|null | Trading volume in the last minute, in the reference currency. |
| data.markets.openInterest String|null | Open interest in the reference currency. |
| data.markets.fundingRate String|null | Funding rate normalized to an 8-hour display convention. Null when not available. |
| data.markets.fundingIntervalHours Number|null | Funding interval in hours as reported by the exchange (e.g. 8 for standard perpetuals). |
| data.markets.recommended Boolean | Whether this market is recommended by Coinranking as a reliable data source. |
| data.markets.filters String[] | Active filters applied to this market (e.g. volume anomaly flags). |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page. |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page. |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page. |
| pagination.nextCursor String|null | Cursor to use for the next page, or null if there are no more results. |
| pagination.previousCursor String|null | Cursor to use for the previous page, or null if on the first page. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID. |

---

# Get Futures Coin Exchanges | Coinranking API Documentation


# Get futures coin exchanges

Get a list of futures exchanges where a specific coin can be traded. On Coinranking, we use this endpoint on our futures coin exchange listings page.

```
https://api.coinranking.com/v2/futures/coin/:uuid/exchanges
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin whose futures exchanges you want to retrieve. UUIDs can be found using the coins endpoint or by checking the URL on coinranking.com. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI |
| uuids (optional) Array | UUIDs to filter the list on. If you know the UUIDs of the exchanges you want to fetch, you can use this filter to get specific exchanges. Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?uuids[]=Ls9K5HaGJpOI |
| search (optional) String | Filter exchanges by name prefix. Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?search=binance |
| orderBy (optional) String | Index to order the list by. Default value:  openInterest Allowed values:  openInterest 24hVolume numberOfMarkets numberOfCoins lastTickerCreatedAt  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?orderBy=openInterest&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?orderBy=openInterest&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?orderBy=openInterest&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/exchanges?orderBy=openInterest&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 10,
      "24hVolume": "33710029708.55014",
      "openInterest": "17321368464.034107"
    },
    "exchanges": [
      {
        "uuid": "-zdvbieRdZ",
        "rank": 1,
        "name": "Binance",
        "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
        "coinrankingUrl": "https://coinranking.com/exchange/-zdvbieRdZ+binance",
        "btcPrice": "0.0272752330749697387",
        "numberOfMarkets": 3,
        "exchangeType": "Centralized",
        "price": "1773.8848625903568",
        "24hVolume": "10523187054.205961",
        "openInterest": "5434995835.769092"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "nextCursor": null,
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request. Allowed values:  success |
| data.stats Object | Aggregate statistics across all exchanges for this coin (not just the current page). |
| data.stats.total Number | Total number of exchanges with futures markets for this coin. |
| data.stats.24hVolume String | Aggregate 24-hour trading volume across all exchanges, in the reference currency. |
| data.stats.openInterest String | Aggregate open interest across all exchanges, in the reference currency. |
| data.exchanges[] Object[] | List of exchanges with futures markets for this coin. |
| data.exchanges[].uuid String | UUID of the exchange. |
| data.exchanges[].rank Number | Position in the ranked list. |
| data.exchanges[].name String | Name of the exchange. |
| data.exchanges[].iconUrl String | Icon URL of the exchange. |
| data.exchanges[].exchangeType String|null | Type of the exchange (e.g. cex, dex). |
| data.exchanges[].coinrankingUrl String | Where to find the exchange on coinranking.com. |
| data.exchanges[].price String|null | Volume-weighted average futures price on this exchange, in the reference currency. |
| data.exchanges[].btcPrice String|null | Price of the coin on this exchange expressed in Bitcoin. |
| data.exchanges[].24hVolume String|null | 24-hour trading volume on this exchange, in the reference currency. |
| data.exchanges[].openInterest String|null | Open interest on this exchange, in the reference currency. |
| data.exchanges[].numberOfMarkets Number | Number of futures markets for this coin on the exchange. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page. |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page. |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page. |
| pagination.nextCursor String|null | Cursor to use for the next page, or null if there are no more results. |
| pagination.previousCursor String|null | Cursor to use for the previous page, or null if on the first page. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID. |

---

# Get Futures Coin OHLCV | Coinranking API Documentation


# Get futures coin OHLCV

Get historical OHLCV (Open, High, Low, Close, Volume) candlestick data for a specific coin's futures markets. Includes aggregated volume, open interest, and funding rate metrics per time interval.

```
https://api.coinranking.com/v2/futures/coin/:uuid/ohlcv
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin whose futures OHLCV data you want to retrieve. UUIDs can be found using the coins endpoint or by checking the URL on coinranking.com. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?referenceCurrencyUuid=5k-_VTxqtCEI |
| interval (optional) String | The time interval for each OHLCV candle. Default value:  day Allowed values:  minute hour day  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?interval=hour |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?limit=24 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?offset=50 |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?interval=hour&limit=24' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?interval=hour&limit=24', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?interval=hour&limit=24",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/coin/Qwsogvtv82FCd/ohlcv?interval=hour&limit=24", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "ohlc": [
      {
        "startingAt": 1781751600,
        "endingAt": 1781755200,
        "open": "64666.485149336484",
        "high": "64666.485149336484",
        "low": "64246.48003981144",
        "close": "64256.31282669365",
        "avg": "64394.6839676963",
        "fundingRate": "0.0004590414603976",
        "24hVolume": "50763275697.59846",
        "intervalVolume": "2098612030.9823127",
        "openInterest": "27311986293.88096"
      },
      {
        "startingAt": 1781748000,
        "endingAt": 1781751600,
        "open": "64515.10650160997",
        "high": "64729.10228094825",
        "low": "64471.85033569906",
        "close": "64669.42572509435",
        "avg": "64630.49546985798",
        "fundingRate": "0.001634332243547448",
        "24hVolume": "50293148694.23656",
        "intervalVolume": "2095390882.2745335",
        "openInterest": "27333883954.1142"
      }
    ]
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request. Allowed values:  success |
| data.ohlc Object[] | List of OHLC items. |
| data.ohlc.startingAt Number | An Epoch timestamp in seconds marking the start of the time period on which the OHLC values are based. |
| data.ohlc.endingAt Number | An Epoch timestamp in seconds marking the end of the time period on which the OHLC values are based. |
| data.ohlc.open String|null | Opening price of the coin for the time period in the reference currency. |
| data.ohlc.high String|null | Highest price of the coin during the time period in the reference currency. |
| data.ohlc.low String|null | Lowest price of the coin during the time period in the reference currency. |
| data.ohlc.close String|null | Closing price of the coin for the time period in the reference currency. |
| data.ohlc.avg String|null | Average price of the coin over the time period in the reference currency. |
| data.ohlc.24hVolume String|null | Total 24h volume of the coin in the reference currency. |
| data.ohlc.intervalVolume String|null | Total volume of the coin for the specified time interval in the reference currency. |
| data.ohlc.openInterest String|null | Open interest at the end of the interval, in the reference currency. |
| data.ohlc.fundingRate String|null | Open-interest-weighted average 8-hour funding rate across all markets for this coin during the interval. Null when not available. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID. |

---

# Get Futures Exchanges | Coinranking API Documentation


# Get futures exchanges

Get a list of futures exchanges with aggregate statistics and a paginated ranking. On Coinranking, we use this endpoint on our Futures exchanges ranking table.

```
https://api.coinranking.com/v2/futures/exchanges
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/exchanges?referenceCurrencyUuid=5k-_VTxqtCEI |
| uuids (optional) Array | UUIDs to filter the list on. If you know which exchanges you want, use this filter to return only those entries. Example: https://api.coinranking.com/v2/futures/exchanges?uuids[]=Ls9K5HaGJpOI&uuids[]=-zdvbieRdZ |
| search (optional) String | Filter exchanges by name prefix. Example: https://api.coinranking.com/v2/futures/exchanges?search=binance |
| orderBy (optional) String | Index to order the list by. Default value:  openInterest Allowed values:  openInterest 24hVolume numberOfMarkets numberOfCoins lastTickerCreatedAt  Example: https://api.coinranking.com/v2/futures/exchanges?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/futures/exchanges?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. Free is limited to 100 results per response. All paid plans can receive up to 5000 results per response, including previews. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/exchanges?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/exchanges?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/futures/exchanges?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/exchanges?orderBy=openInterest&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/exchanges?orderBy=openInterest&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/exchanges?orderBy=openInterest&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/exchanges?orderBy=openInterest&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 10,
      "24hVolume": "33710029708.55014",
      "openInterest": "17321368464.034107"
    },
    "exchanges": [
      {
        "uuid": "-zdvbieRdZ",
        "rank": 1,
        "name": "Binance",
        "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
        "lastTickerCreatedAt": 1781757395,
        "marketShare": "29.83",
        "coinrankingUrl": "https://coinranking.com/exchange/-zdvbieRdZ+binance",
        "numberOfMarkets": 395,
        "numberOfCoins": 360,
        "recommended": true,
        "exchangeType": "Centralized",
        "24hVolume": "41105887832",
        "openInterest": "17717491955.63013"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": false,
    "hasPreviousPage": false,
    "nextCursor": null,
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request. Allowed values:  success |
| data.stats Object | Aggregate statistics across all futures exchanges (not just the current page). |
| data.stats.total Number | Total number of exchanges. |
| data.stats.24hVolume String | Total 24h volume of exchanges in the reference currency. |
| data.stats.openInterest String | Aggregate open interest across all matching exchanges, in the reference currency. |
| data.exchanges Object[] | List of futures exchanges. |
| data.exchanges.uuid String | UUID of the exchange. |
| data.exchanges.rank Number | Position in the ranked list for the selected ordering. |
| data.exchanges.name String | Name of the exchange. |
| data.exchanges.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchanges.lastTickerCreatedAt Number|null | Unix timestamp (seconds) when this exchange last produced a futures ticker in our dataset. |
| data.exchanges.marketShare String|null | Percentage of the total exchange volume represented by this exchange. |
| data.exchanges.coinrankingUrl String | Where to find the exchange on coinranking.com. |
| data.exchanges.exchangeType String | Type of exchange. Allowed values:  Centralized Decentralized Unknown |
| data.exchanges.24hVolume String | 24-hour trading volume in the reference currency. |
| data.exchanges.openInterest String | Open interest in the reference currency. |
| data.exchanges.numberOfMarkets Number | Number of futures markets of the exchange paired with Coinranking. |
| data.exchanges.numberOfCoins Number | Number of futures coins of the exchange paired with Coinranking. |
| data.exchanges.recommended Boolean | Whether the exchange is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page. |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page. |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page. |
| pagination.nextCursor String|null | Cursor to use for the next page, or null if there are no more results. |
| pagination.previousCursor String|null | Cursor to use for the previous page, or null if on the first page. |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Futures Exchange Coins | Coinranking API Documentation


# Get futures exchange coins

Find futures coins listed on a specific exchange. On Coinranking, we use this endpoint on our futures exchange coin listings.

```
https://api.coinranking.com/v2/futures/exchange/:uuid/coins
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the exchange whose futures coins you want to retrieve. UUIDs can be found using the futures exchanges endpoint. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?referenceCurrencyUuid=5k-_VTxqtCEI |
| search (optional) String | Filter coins by name or symbol prefix. Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?search=bitcoin |
| orderBy (optional) String | Index to order the list by. Default value:  openInterest Allowed values:  openInterest 24hVolume price fundingRate  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?orderBy=openInterest&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?orderBy=openInterest&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?orderBy=openInterest&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/coins?orderBy=openInterest&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 364
    },
    "coins": [
      {
        "uuid": "HIVsRcGKkPFtW",
        "symbol": "USDT",
        "name": "Tether USD",
        "color": "#22a079",
        "iconUrl": "https://cdn.coinranking.com/iqfxcAEV1/tether-usd-usdt.svg",
        "coinrankingUrl": "https://coinranking.com/coin/HIVsRcGKkPFtW+tetherusd-usdt",
        "rank": 1,
        "fundingRate": "-0.001612688073858576",
        "numberOfMarkets": 353,
        "price": "0.9996242792474768",
        "24hVolume": "35517299695.982635",
        "openInterest": "15034462427.315395"
      },
      {
        "uuid": "Qwsogvtv82FCd",
        "symbol": "BTC",
        "name": "Bitcoin",
        "color": "#f7931A",
        "iconUrl": "https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg",
        "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc",
        "rank": 2,
        "fundingRate": "0.00214894631298156",
        "numberOfMarkets": 4,
        "price": "63934.29464920227",
        "24hVolume": "17167029616.132805",
        "openInterest": "7511142889.425773"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLC...",
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request. Allowed values:  success |
| data.stats Object | Aggregate statistics across all futures coins listed on this exchange (not just the current page). |
| data.stats.total Number | Total number of matching coins. |
| data.coins Object[] | List of futures coins listed on this exchange. |
| data.coins.rank Number | The rank of this coin within this exchange result set. |
| data.coins.uuid String | UUID of the coin. |
| data.coins.symbol String | Coin symbol. |
| data.coins.name String | Name of the coin. |
| data.coins.color String|null | Hex color associated with the coin brand. |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.coinrankingUrl String | Where to find the coin on coinranking.com. |
| data.coins.price String|null | Latest futures price of the coin in the reference currency. |
| data.coins.24hVolume String|null | Total 24h volume of this coin on the selected futures exchange, in the reference currency. |
| data.coins.openInterest String|null | Open interest for this coin on the selected futures exchange, in the reference currency. |
| data.coins.fundingRate String|null | Open-interest-weighted average 8-hour funding rate for this coin on the selected exchange. Null when not available. |
| data.coins.numberOfMarkets Number|null | The number of futures markets for this coin on this exchange. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page. |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page. |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page. |
| pagination.nextCursor String|null | Cursor to use for the next page, or null if there are no more results. |
| pagination.previousCursor String|null | Cursor to use for the previous page, or null if on the first page. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "EXCHANGE_NOT_FOUND",
  "message": "Exchange not found"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The exchange could not be found. Try another UUID. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Futures Exchange Markets | Coinranking API Documentation


# Get futures exchange markets

Find futures markets on a specific exchange. On Coinranking, we use this endpoint on our exchange futures markets page.

```
https://api.coinranking.com/v2/futures/exchange/:uuid/markets
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the exchange whose futures coins you want to retrieve. UUIDs can be found using the futures exchanges endpoint. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?referenceCurrencyUuid=5k-_VTxqtCEI |
| search (optional) String | Filter markets by base currency name, base currency symbol, quote currency name, or quote currency symbol. Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?search=BTC |
| orderBy (optional) String | Index to order the list by. Default value:  openInterest Allowed values:  openInterest 24hVolume price lastTickerCreatedAt  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?orderBy=openInterest&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?orderBy=openInterest&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?orderBy=openInterest&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/exchange/-zdvbieRdZ/markets?orderBy=openInterest&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 394,
      "24hVolume": "171549552743.9990481060981808293",
      "openInterest": "71848691689.49994714899281474433"
    },
    "markets": [
      {
        "uuid": "DJs58RjCwUee",
        "rank": 51,
        "base": {
          "uuid": "hnfQfsYfeIGUQ",
          "symbol": "ETC",
          "name": "Ethereum Classic"
        },
        "quote": {
          "uuid": "HIVsRcGKkPFtW",
          "symbol": "USDT",
          "name": "Tether USD"
        },
        "exchange": {
          "uuid": "-zdvbieRdZ",
          "name": "Binance",
          "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
          "websiteUrl": "https://www.binance.com/"
        },
        "btcPrice": "0.000112095873066245",
        "markPrice": "29.13819956742563905268",
        "indexPrice": "29.14870948399999905234",
        "fundingRate": 0.000878,
        "fundingIntervalHours": 8,
        "recommended": true,
        "filters": [],
        "marketShare": "0.05",
        "price": "29.1405798759999990526",
        "24hVolume": "86971558.57710325317245026479",
        "minuteVolume": "60396.91567854391678130379",
        "openInterest": "64734242.96178600764580408022"
      },
      {
        "uuid": "aJtSHzmvEgpT",
        "rank": 52,
        "base": {
          "uuid": "tY54Rg0Gh",
          "symbol": "JTO",
          "name": "JITO"
        },
        "quote": {
          "uuid": "HIVsRcGKkPFtW",
          "symbol": "USDT",
          "name": "Tether USD"
        },
        "exchange": {
          "uuid": "-zdvbieRdZ",
          "name": "Binance",
          "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
          "websiteUrl": "https://www.binance.com/"
        },
        "btcPrice": "0.000011097006711552",
        "markPrice": "2.88479139879999990621",
        "indexPrice": "2.88740722211811990613",
        "fundingRate": 0.005,
        "fundingIntervalHours": 4,
        "recommended": true,
        "filters": [],
        "marketShare": "0.2",
        "price": "2.88479139879999990621",
        "24hVolume": "349706418.62741793703062468272",
        "minuteVolume": "242851.67960237355834948047",
        "openInterest": "64423138.43967040750552646156"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLC...",
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request. Allowed values:  success |
| data.stats Object | Aggregate statistics across all futures markets on this exchange (not just the current page). |
| data.stats.total Number | Total number of matching futures markets on this exchange. |
| data.stats.24hVolume String | Total 24h volume of matching markets in the reference currency. |
| data.stats.openInterest String | Total open interest of matching markets in the reference currency. |
| data.markets Object[] | List of futures markets on this exchange. |
| data.markets.uuid String | UUID of the futures market. |
| data.markets.rank Number | Position in the ranked list for the selected ordering. |
| data.markets.base Object | The coin on the left side of the pair, which price is calculated in units of the quote. |
| data.markets.base.uuid String | UUID of the base currency. |
| data.markets.base.symbol String | Symbol of the base currency. |
| data.markets.base.name String | Name of the base currency. |
| data.markets.quote Object | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USDT 65000 means 1 BTC is traded for 65000 USDT. |
| data.markets.quote.uuid String | UUID of the quote currency. |
| data.markets.quote.symbol String | Symbol of the quote currency. |
| data.markets.quote.name String | Name of the quote currency. |
| data.markets.exchange Object | Exchange this market belongs to. |
| data.markets.exchange.uuid String | UUID of the exchange. |
| data.markets.exchange.name String | Name of the exchange. |
| data.markets.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.markets.exchange.websiteUrl String|null | Website URL of the exchange. |
| data.markets.marketShare String|null | This market's share of the total 24h volume across all markets on this exchange, as a percentage string. |
| data.markets.price String|null | Latest futures price in the reference currency. |
| data.markets.markPrice String|null | Mark price in the reference currency. Used by exchanges to calculate unrealized PnL and trigger liquidations. |
| data.markets.indexPrice String|null | Index price in the reference currency. Typically a weighted average of spot prices across major exchanges. |
| data.markets.btcPrice String|null | Price of the market expressed in Bitcoin. |
| data.markets.24hVolume String|null | 24-hour trading volume in the reference currency. |
| data.markets.minuteVolume String|null | Trading volume in the last minute, in the reference currency. |
| data.markets.openInterest String|null | Open interest in the reference currency. |
| data.markets.fundingRate String|null | Funding rate as reported by the exchange for the most recent funding interval. Null when not available. |
| data.markets.fundingIntervalHours Number|null | Funding interval in hours as reported by the exchange (e.g. 8 for standard perpetuals). |
| data.markets.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges. |
| data.markets.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page. |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page. |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page. |
| pagination.nextCursor String|null | Cursor to use for the next page, or null if there are no more results. |
| pagination.previousCursor String|null | Cursor to use for the previous page, or null if on the first page. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "EXCHANGE_NOT_FOUND",
  "message": "Exchange not found"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| EXCHANGE_NOT_FOUND Object | The exchange could not be found. Try another UUID. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Futures Markets | Coinranking API Documentation


# Get futures markets

Get a list of futures markets. Markets are ranked by their open interest by default. Use the filters to narrow down the list to specific exchanges, coins, or trading pairs.

On Coinranking, we use this endpoint on our futures market ranking table.

```
https://api.coinranking.com/v2/futures/markets
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/markets?referenceCurrencyUuid=5k-_VTxqtCEI |
| search (optional) String | Filter markets by exchange name, base currency name, base currency symbol, quote currency name, or quote currency symbol. Example: https://api.coinranking.com/v2/futures/markets?search=BTC |
| orderBy (optional) String | Index to order the list by. Default value:  openInterest Allowed values:  openInterest 24hVolume price  Example: https://api.coinranking.com/v2/futures/markets?orderBy=24hVolume |
| orderDirection (optional) String | Applies direction to the orderBy query. Default value:  desc Allowed values:  desc asc  Example: https://api.coinranking.com/v2/futures/markets?orderDirection=asc |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  0-5000  Example: https://api.coinranking.com/v2/futures/markets?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/futures/markets?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/futures/markets?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/markets?orderBy=openInterest&limit=50' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/markets?orderBy=openInterest&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/markets?orderBy=openInterest&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/markets?orderBy=openInterest&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 8240,
      "24hVolume": "152318730542.0596",
      "openInterest": "98765432109.7654"
    },
    "markets": [
      {
        "uuid": "9mm7u0M2fkO9R",
        "rank": 1,
        "base": {
          "uuid": "Qwsogvtv82FCd",
          "symbol": "BTC",
          "name": "Bitcoin"
        },
        "quote": {
          "uuid": "HIVsRcGKkPFtW",
          "symbol": "USDT",
          "name": "Tether"
        },
        "exchange": {
          "uuid": "-zdvbieRdZ",
          "name": "Binance",
          "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
          "websiteUrl": "https://www.binance.com"
        },
        "marketShare": "8.14",
        "price": "65261.39",
        "markPrice": "65265.00",
        "indexPrice": "65258.50",
        "btcPrice": "1",
        "24hVolume": "12400000000.00",
        "minuteVolume": "8611111.11",
        "openInterest": "9200000000.00",
        "fundingRate": "-0.0025",
        "fundingIntervalHours": 8,
        "recommended": true,
        "filters": []
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLC...",
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request.Allowed values: success |
| data Object |  |
| data.stats Object | Aggregate statistics across all matching futures markets (not just the current page). |
| data.stats.total Number | Total number of matching futures markets. |
| data.stats.24hVolume String | Total 24h volume of matching markets in the reference currency. |
| data.stats.openInterest String | Total open interest of matching markets in the reference currency. |
| data.markets Object[] | List of futures markets. |
| data.markets.uuid String | UUID of the futures market. |
| data.markets.rank Number | Position in the ranked list for the selected ordering. |
| data.markets.base Object | The coin on the left side of the pair, which price is calculated in units of the quote. |
| data.markets.base.uuid String | UUID of the base currency. |
| data.markets.base.symbol String | Symbol of the base currency. |
| data.markets.base.name String | Name of the base currency. |
| data.markets.quote Object | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USDT 65000 means 1 BTC is traded for 65000 USDT. |
| data.markets.quote.uuid String | UUID of the quote currency. |
| data.markets.quote.symbol String | Symbol of the quote currency. |
| data.markets.quote.name String | Name of the quote currency. |
| data.markets.exchange Object | Exchange this market belongs to. |
| data.markets.exchange.uuid String | UUID of the exchange. |
| data.markets.exchange.name String | Name of the exchange. |
| data.markets.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.markets.exchange.websiteUrl String/null | Website URL of the exchange. |
| data.markets.marketShare String/null | This market's share of the total 24h volume across all matching markets, as a percentage string. |
| data.markets.price String/null | Latest futures price in the reference currency. |
| data.markets.markPrice String/null | Mark price in the reference currency. Used by exchanges to calculate unrealized PnL and trigger liquidations. |
| data.markets.indexPrice String/null | Index price in the reference currency. Typically a weighted average of spot prices across major exchanges. |
| data.markets.btcPrice String/null | Price of the market expressed in Bitcoin. |
| data.markets.24hVolume String/null | 24-hour trading volume in the reference currency. |
| data.markets.minuteVolume String/null | Trading volume in the last minute, in the reference currency. |
| data.markets.openInterest String/null | Open interest in the reference currency. |
| data.markets.fundingRate String/null | Funding rate as reported by the exchange for the most recent funding interval. Null when not available. |
| data.markets.fundingIntervalHours Number/null | Funding interval in hours as reported by the exchange (e.g. 8 for standard perpetuals). |
| data.markets.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges. |
| data.markets.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page. |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page. |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page. |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results. |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page. |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Futures Market Details | Coinranking API Documentation


# Get futures market details

Find information on a specific futures market, including base and quote currencies, exchange, prices, volumes, open interest, funding rate, and the latest ticker received from the exchange.

```
https://api.coinranking.com/v2/futures/market/:uuid
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid Uuid | UUID of the futures market you want to request |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all prices, volume, and open interest values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/futures/market/9mm7u0M2fkO9R?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/futures/market/9mm7u0M2fkO9R?referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/futures/market/9mm7u0M2fkO9R?referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/futures/market/9mm7u0M2fkO9R?referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/futures/market/9mm7u0M2fkO9R?referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "market": {
      "uuid": "AFmfuKdbtjG3",
      "base": {
        "uuid": "Qwsogvtv82FCd",
        "symbol": "BTC",
        "name": "Bitcoin"
      },
      "quote": {
        "uuid": "HIVsRcGKkPFtW",
        "symbol": "USDT",
        "name": "Tether USD"
      },
      "exchange": {
        "uuid": "-zdvbieRdZ",
        "name": "Binance",
        "iconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
        "websiteUrl": "https://www.binance.com/"
      },
      "btcPrice": "1.0024435587482128",
      "markPrice": "64096.2",
      "indexPrice": "64121.20934783",
      "fundingRate": 0.002346,
      "fundingIntervalHours": 8,
      "recommended": true,
      "filters": [],
      "latestTicker": {
        "createdAt": 1781765176,
        "close": "64079.6",
        "base24hVolume": "213830.062",
        "quote24hVolume": "13884087686.75",
        "baseOpenInterest": "99964.281",
        "quoteOpenInterest": "6405671140.7676"
      },
      "marketShare": "9.84",
      "price": "64079.6",
      "24hVolume": "13884087686.75",
      "minuteVolume": "9641727.560243055",
      "openInterest": "6405671140.7676"
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request.Allowed values: success |
| data Object |  |
| data.market Object |  |
| data.market.uuid String | UUID of the futures market. |
| data.market.base Object | The coin on the left side of the pair, which price is calculated in units of the quote. |
| data.market.base.uuid String | UUID of the base currency. |
| data.market.base.symbol String | Symbol of the base currency. |
| data.market.base.name String | Name of the base currency. |
| data.market.quote Object | The coin on the right side of the pair. The amount in tickers are how much quote you get for one unit of base. E.g. BTC/USDT 65000 means 1 BTC is traded for 65000 USDT. |
| data.market.quote.uuid String | UUID of the quote currency. |
| data.market.quote.symbol String | Symbol of the quote currency. |
| data.market.quote.name String | Name of the quote currency. |
| data.market.exchange Object | Exchange this market belongs to. |
| data.market.exchange.uuid String | UUID of the exchange. |
| data.market.exchange.name String | Name of the exchange. |
| data.market.exchange.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.market.exchange.websiteUrl String/null | URL that points to the website of the exchange. |
| data.market.latestTicker Object | The latest raw ticker received from the exchange, expressed in the market's own base and quote currencies (not the reference currency). |
| data.market.latestTicker.createdAt Number | Epoch timestamp in seconds when the latest ticker was received. |
| data.market.latestTicker.close String/null | The last price received from the market, in the quote currency. |
| data.market.latestTicker.base24hVolume String/null | Base-currency volume of the market over the last 24 hours. |
| data.market.latestTicker.quote24hVolume String/null | Quote-currency volume of the market over the last 24 hours. |
| data.market.latestTicker.baseOpenInterest String/null | Open interest expressed in the base currency. |
| data.market.latestTicker.quoteOpenInterest String/null | Open interest expressed in the quote currency. |
| data.market.marketShare String/null | Percentage of the total futures market 24h volume represented by this market. |
| data.market.price String/null | Latest futures price in the reference currency. |
| data.market.markPrice String/null | Mark price in the reference currency. Used by exchanges to calculate unrealized PnL and trigger liquidations. |
| data.market.indexPrice String/null | Index price in the reference currency. Typically a weighted average of spot prices across major exchanges. |
| data.market.btcPrice String/null | Price of the market expressed in Bitcoin. |
| data.market.24hVolume String/null | 24-hour trading volume in the reference currency. |
| data.market.minuteVolume String/null | Trading volume in the last minute, in the reference currency. |
| data.market.openInterest String/null | Open interest in the reference currency. |
| data.market.fundingRate String/null | Funding rate as reported by the exchange for the most recent funding interval. Null when not available. |
| data.market.fundingIntervalHours Number/null | Funding interval in hours as reported by the exchange (e.g. 8 for standard perpetuals). |
| data.market.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges. |
| data.market.filters String[] | An array of filters that are applied to the market. Most of the filters will cause the market to not be included in the price calculation of the coins. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "MARKET_NOT_FOUND",
  "message": "Market not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| MARKET_NOT_FOUND Object | The market could not be found. Try another UUID. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Reference Currencies | Coinranking API Documentation


# Reference currencies

The price of a coin is shown in a reference currency. Currencies include, but are not limited to, coins. In contrast to coins, currencies also includes Fiat currencies like US Dollar, EURO, YEN and more. Furthermore, currencies also comprehends denominators as Satoshi and Wei (these are the atomic units for respectively Bitcoin and Ethereum, or - perhaps overly simplified - one could compare them with what the cent is to the Dollar.) Additionally, currencies include commodities, indices, and stocks like Gold, S&P 500, Tesla, etc, which can also be used as reference currencies.


## Get list of reference currencies

Get a list of reference currencies, which can be used as reference for coins. The response includes all the essentials for this use-case, such as the symbol (e.g. USD) and - if available - the sign (e.g. $).

```
https://api.coinranking.com/v2/reference-currencies
```


## Query parameters

| Parameter | Description |
| --- | --- |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  20 Size range:  0-5000  Example: https://api.coinranking.com/v2/reference-currencies?limit=10 |
| offset (optional) Number | Offset. Used for pagination Default value:  0  Example: https://api.coinranking.com/v2/reference-currencies?offset=50 |
| types (optional) Array | A currency is one of six types: coin (e.g. Bitcoin, Ethereum, etc.), fiat (US Dollar, Euro, Yen, etc.), denominator (e.g. Satoshi), commodities (e.g. Gold, Silver, etc.), indices (e.g. S&P 500, NASDAQ, etc.), or stocks (e.g. Tesla, Apple, etc.). Filter the response by providing one or more types. Allowed values:  coin fiat denominator commodities indices stocks  Example: https://api.coinranking.com/v2/reference-currencies?types[]=coin&types[]=fiat |
| search (optional) String | Filter the results by searching for currency names or symbols. Example: https://api.coinranking.com/v2/reference-currencies?search=EUR |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/reference-currencies?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/reference-currencies?limit=50&offset=0&types[]=coin&types[]=fiat' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/reference-currencies?limit=50&offset=0&types[]=coin&types[]=fiat', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/reference-currencies?limit=50&offset=0&types[]=coin&types[]=fiat",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/reference-currencies?limit=50&offset=0&types[]=coin&types[]=fiat", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "total": 3
    },
    "currencies": [
      {
        "uuid": "Qwsogvtv82FCd",
        "type": "coin",
        "symbol": "BTC",
        "name": "Bitcoin",
        "iconUrl": "https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg",
        "sign": "₿"
      },
      {
        "uuid": "razxDUgYGNAdQ",
        "type": "coin",
        "symbol": "ETH",
        "name": "Ethereum",
        "iconUrl": "https://cdn.coinranking.com/rk4RKHOuW/eth.svg",
        "sign": "Ξ"
      },
      {
        "uuid": "yhjMzLPhuIDl",
        "type": "fiat",
        "symbol": "USD",
        "name": "US Dollar",
        "iconUrl": "https://cdn.coinranking.com/kz6a7w6vF/usd.svg",
        "sign": "$"
      }
    ]
  },
  "pagination": {
    "limit": 20,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLCJyIjpudWxsLCJ1IjoieWhqTXpMUGh1SURsIiwibyI6bnVsbCwiZCI6bnVsbH0",
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.total Number | Total number of coins |
| data.currencies Object[] | List of reference currencies |
| data.currencies.uuid String | UUID of the reference currency |
| data.currencies.type String | The type of the currency can be either 'coin' (BTC, ETH, etc.), 'fiat' (USD, EUR, etc.), 'denominator' (Satoshi, Wei, etc.), 'commodities' (Gold, Silver, etc.), 'indices' (S&P, NASDAQ, etc.), or 'stocks' (Tesla, Apple, etc.) |
| data.currencies.symbol String | Currency symbol |
| data.currencies.name String | Name of the currency |
| data.currencies.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.currencies.sign String | Some currencies have a symbol, like $ for USD and ₿ for BTC |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "VALIDATION_ERROR",
  "message": "limit must be at least 1 and most 100"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Stats Endpoints Introduction | Coinranking API Documentation


# Stats

Stats endpoint are meant for endpoints summarizing data over multiple coins. Such as how many coins
have we listed in total, what is the dominance of BTC compared to other coins, etc.


## Endpoints

- Global stats Stats about the market entirely.
- Stats for selection of coins If you need summarized data for a subset of coins, e.g. all stablecoins, this is your endpoint. The endpoint provides filters to define a subset of your choosing.
- Global market cap history The crypto market cap fluctuates throughout time by differing supply and price values. You can find the history in this endpoint.
- Global trading volume history If you need historical data on the total trading volume across all coins, this is your endpoint. It is useful for analyzing trends and market activity over time.
- Bitcoin dominance history Access historical bitcoin dominance data with timestamps.

---

# Get Global Stats | Coinranking API Documentation


# Get global stats

These global statistics tell about the data available on coinranking.

```
https://api.coinranking.com/v2/stats
```


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/stats?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/stats?referenceCurrencyUuid=5k-_VTxqtCEI'  \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/stats?referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/stats?referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/stats?referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "totalCoins": 3220,
    "totalMarkets": 27497,
    "totalExchanges": 190,
    "totalMarketCap": "425992114544",
    "total24hVolume": "23752040073",
    "btcDominance": 39.65
    "bestCoins": [
      {
        "uuid": "razxDUgYGNAdQ",
        "symbol": "ETH",
        "name": "Ethereum",
        "iconUrl": "https://cdn.coinranking.com/rk4RKHOuW/eth.svg",
        "coinrankingUrl": "https://coinranking.com/coin/razxDUgYGNAdQ+ethereum-eth"
      },
      {
        "uuid": "Qwsogvtv82FCd",
        "symbol": "BTC",
        "name": "Bitcoin",
        "iconUrl": "https://cdn.coinranking.com/Sy33Krudb/btc.svg",
        "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc"
      },
      {
        "uuid": "HIVsRcGKkPFtW",
        "symbol": "USDT",
        "name": "Tether",
        "iconUrl": "https://cdn.coinranking.com/mgHqwlCLj/usdt.svg",
        "coinrankingUrl": "https://coinranking.com/coin/HIVsRcGKkPFtW+tetherusd-usdt"
      }
    ],
    "newestCoins": [
      {
        "uuid": "razxDUgYGNAdQ",
        "symbol": "ETH",
        "name": "Ethereum",
        "iconUrl": "https://cdn.coinranking.com/rk4RKHOuW/eth.svg",
        "coinrankingUrl": "https://coinranking.com/coin/razxDUgYGNAdQ+ethereum-eth"
      },
      {
        "uuid": "Qwsogvtv82FCd",
        "symbol": "BTC",
        "name": "Bitcoin",
        "iconUrl": "https://cdn.coinranking.com/Sy33Krudb/btc.svg",
        "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc"
      },
      {
        "uuid": "HIVsRcGKkPFtW",
        "symbol": "USDT",
        "name": "Tether",
        "iconUrl": "https://cdn.coinranking.com/mgHqwlCLj/usdt.svg",
        "coinrankingUrl": "https://coinranking.com/coin/HIVsRcGKkPFtW+tetherusd-usdt"
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.totalCoins Number | Total number of coins |
| data.totalMarkets Number | Total amount of markets used for price calculation |
| data.totalExchanges Number | Total amount of exchanges paired with Coinranking |
| data.totalMarketCap String | Market capitalization. Price times circulating supply |
| data.total24hVolume String | Total trade volume in 24 hours, calculated in the reference currency |
| data.btcDominance Number | Current percentage of the total crypto market capitalization accounted for by Bitcoin |
| data.bestCoins Object[] | List of the three best performing coins in the selected timePeriod |
| data.bestCoins.uuid String | UUID of the coin |
| data.bestCoins.symbol String | Currency symbol |
| data.bestCoins.name String | Name of the coin |
| data.bestCoins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.bestCoins.coinrankingUrl String | Where to find the coin on coinranking.com |
| data.newestCoins Object[] | List of the three newest coins |
| data.newestCoins.uuid String | UUID of the coin |
| data.newestCoins.symbol String | Currency symbol |
| data.newestCoins.name String | Name of the coin |
| data.newestCoins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.newestCoins.coinrankingUrl String | Where to find the coin on coinranking.com |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Stats for Selection of Coins | Coinranking API Documentation


# Get stats for selection of coins

Get stats for a selection of coins.

```
https://api.coinranking.com/v2/stats/coins
```


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/stats/coins?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | Negative changes, positive changes and the change in market cap are influenced by the time period. The maximum timePeriod is 1y for Free and 5y for all paid plans. This endpoint supports up to five years of data. These limits apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y  Example: https://api.coinranking.com/v2/stats/coins?timePeriod=1y |
| uuids (optional) Array | UUIDs to filter the list on. If you know the UUIDs of the coins you want to fetch, you can use this filter to get the specific coins. Uuids does not work in combination with tag. If you use both filters, the tag filter takes precedence. Example: https://api.coinranking.com/v2/stats/coins?uuids[]=razxDUgYGNAdQ&uuids[]=Qwsogvtv82FCd |
| tag (optional) String | Tag to filter the list on. If you provide a tag, this takes precedence over the uuids filter. We have many tags you can check out. Allowed values:  defi stablecoin nft many more...  Example: https://api.coinranking.com/v2/stats/coins?tag=defi |


## Code examples

```
curl 'https://api.coinranking.com/v2/stats/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d'  \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/stats/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/stats/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/stats/coins?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "stats": {
      "positiveChanges": 3118,
      "negativeChanges": 3725,
      "numberOfCoins": 31110,
      "volume": "226221134262.99506",
      "volumeShare": "100",
      "marketCap": "1278354560622",
      "marketCapChange": "0.06",
      "marketCapShare": "100",
      "topCurrencySymbol": "BTC",
      "topCurrencyMarketCap": "668081784272",
      "topCurrencyDominance": "52.26"
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object |  |
| data.stats Object |  |
| data.stats.positiveChanges Number | The amount of coins within the group that now have a higher price than at the beginning of the selected timeperiod. |
| data.stats.negativeChanges Number | The amount of coins within the group that now have a lower price than at the beginning of the selected timeperiod. |
| data.stats.numberOfCoins Number | The amount of coins selected for these stats based on the filters provided. See either the tag or uuids filter for more information about filtering these stats. |
| data.stats.volume String | The trading volume in US Dollar of the coins within the group, within the time period. |
| data.stats.volumeShare String | The percentage of trading volume compared to coins outside of the selection. E.g. if you have used the tag filter to only get DeFi coins, this is the percentage of trading volume of DeFi coins compared to all other coins. |
| data.stats.marketCap String | The market cap in US Dollars of the selected coins. |
| data.stats.marketCapChange String | The change in market cap in US Dollars of the selected coins, as compared to the beginning of the selected time period. |
| data.stats.marketCapShare String | Similar to volumeShare, this compares the selection of coins against all other coins, but for market cap. |
| data.stats.topCurrencySymbol String | The symbol of the currency that currently holds the highest market cap within the selection. |
| data.stats.topCurrencyMarketCap String | The market cap in US Dollars of the currency that currently holds the highest market cap |
| data.stats.topCurrencyDominance String | A percentage that tells you how big the biggest coin in the selection is compared to the rest of the selection, measured in market cap. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "TAG_NOT_FOUND",
  "message": "Tag not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| TAG_NOT_FOUND Object | The tag could not be found. Try another tag. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Global Market Cap History | Coinranking API Documentation


# Get global market cap history

With the global market caps history endpoint, you can retrieve historical cryptocurrency market capitalization data, enabling you to analyze trends and track market performance over time.

On Coinranking, we use this endpoint on our global market cap chart.

```
https://api.coinranking.com/v2/stats/global-market-caps
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the market caps are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/stats/global-market-caps?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | Timeperiod where the marketCap are based on The maximum timePeriod is 1y for Free, 5y for Basic, and all for Startup, Growth, and Professional. These historical windows apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y all  Example: https://api.coinranking.com/v2/stats/global-market-caps?timePeriod=1y |


## Code examples

```
curl 'https://api.coinranking.com/v2/stats/global-market-caps?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d'  \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/stats/global-market-caps?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/stats/global-market-caps?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/stats/global-market-caps?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "timestamp": 1743053100,
      "marketCap": "2929340825269"
    },
    {
      "timestamp": 1743053400,
      "marketCap": "2930113691065"
    },
    {
      "timestamp": 1743053700,
      "marketCap": "2926999657324"
    }
  ]
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.timestamp Number | An Epoch timestamp in seconds |
| data.marketCap Number/null | The market cap in the reference currency |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Global Trading Volume History | Coinranking API Documentation


# Get global trading volume history

With the global trading volume history endpoint, you can retrieve historical cryptocurrency trading data, enabling you to analyze market trends and track cryptocurrency trading activity over time.

On Coinranking, we use this endpoint on our global trading volume chart.

```
https://api.coinranking.com/v2/stats/global-trading-volumes
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the trading volumes are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/stats/global-trading-volumes?referenceCurrencyUuid=5k-_VTxqtCEI |
| interval (optional) String | The interval determines the time period over which each trading volume item is calculated.  day: the total volume traded in a single day week: the total volume traded over a week month: the total volume traded over an entire month  Default value:  day Allowed values:  day week month  Example: https://api.coinranking.com/v2/stats/global-trading-volumes?interval=day |
| limit (optional) Number | Limit. Limit the amount of time periods for which the intervalVolume are retrieved. For example, when interval=day and limit is 10, data will be returned for the last 10 days. The maximum amount of results you can fetch in one request is 100 for Free and 1000 for all paid plans, including previews where available. Default value:  50 Size range:  1-1000  Example: https://api.coinranking.com/v2/stats/global-trading-volumes?limit=10 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/stats/global-trading-volumes?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/stats/global-trading-volumes?referenceCurrencyUuid=5k-_VTxqtCEI&interval=day&limit=50'  \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/stats/global-trading-volumes?referenceCurrencyUuid=5k-_VTxqtCEI&interval=day&limit=50', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/stats/global-trading-volumes?referenceCurrencyUuid=5k-_VTxqtCEI&interval=day&limit=50",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/stats/global-trading-volumes?referenceCurrencyUuid=5k-_VTxqtCEI&interval=day&limit=50", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "volumes": [
      {
        "timestamp": 1742947200,
        "intervalVolume": "68304365278.00"
      },
      {
        "timestamp": 1743033600,
        "intervalVolume": "64019945571.00"
      },
      {
        "timestamp": 1743120000,
        "intervalVolume": "32021315171.25"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0cyI6MTc0MzEyMDAwMH0",
    "previousCursor": null
  }
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.volumes Object[] | Array of trading volume data points |
| data.volumes.timestamp Number | An Epoch timestamp in seconds |
| data.volumes.intervalVolume String/null | The total trading volume within the requested time interval in the reference currency |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different interval parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Bitcoin Dominance History | Coinranking API Documentation


# Get bitcoin dominance history

Get a list of bitcoin dominance history along with the bitcoin market capitalization data.

On Coinranking, we use this endpoint on our bitcoin dominance chart.

```
https://api.coinranking.com/v2/stats/bitcoin-dominance-history
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the market caps are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/stats/bitcoin-dominance-history?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | Timeperiod where the percentage and marketCap are based on The maximum timePeriod is 1y for Free, 5y for Basic, and all for Startup and higher plans. These historical windows apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y all  Example: https://api.coinranking.com/v2/stats/bitcoin-dominance-history?timePeriod=1y |


## Code examples

```
curl 'https://api.coinranking.com/v2/stats/bitcoin-dominance-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d'  \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/stats/bitcoin-dominance-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php

  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/stats/bitcoin-dominance-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/stats/bitcoin-dominance-history?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "timestamp": 1742814600,
      "percentage": 58.91,
      "marketCap": 1740828021051
    },
    {
      "timestamp": 1742814900,
      "percentage": 58.9,
      "marketCap": 1740456972714
    },
    {
      "timestamp": 1742815200,
      "percentage": 58.89,
      "marketCap": 1739283421198
    }
  ]
}
```


#### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.timestamp Number | An Epoch timestamp in seconds |
| data.percentage Number/null | Percentage of bitcoin dominance by market cap |
| data.marketCap Number/null | Bitcoin market cap, calculated in the reference currency |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


#### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Search Suggestions | Coinranking API Documentation


# Search suggestions


## Get search suggestions

Search suggestions are a quick and easy way to find data on coinranking. With a query you can find currencies (including fiat), exchanges, markets and categories by their symbol, name or contract address.

While searching you can provide either part of a name or symbol, or a complete smart contract address. None are case sensitive. By default, the response returns a set of the most prominent coins, exchanges, markets, fiat currencies, categories, commodities, indices and stocks matching your query.

```
https://api.coinranking.com/v2/search-suggestions
```


## Query parameters

| Parameter | Description |
| --- | --- |
| query (optional) String | Value to search on. Can be a part of a name or symbol, or a complete smart contract address. Example: https://api.coinranking.com/v2/search-suggestions?query=bitco |
| types (optional) String[] | Suggestion buckets to search. Defaults to all buckets. You can provide a single value, repeated array values, or comma-separated values. The response includes every bucket; buckets that were not requested are returned as empty arrays. Allowed values:  coins exchanges markets fiat categories commodities indices stocks all  Default value:  all  Example: https://api.coinranking.com/v2/search-suggestions?query=bitco&types[]=coins&types[]=exchanges |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/search-suggestions?referenceCurrencyUuid=Qwsogvtv82FCd |


## Code examples

```
curl https://api.coinranking.com/v2/search-suggestions?query=bitco \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/search-suggestions?query=bitco', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/search-suggestions?query=bitco",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/search-suggestions?query=bitco", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coins": [
      {
        "uuid": "Qwsogvtv82FCd",
        "iconUrl": "https://cdn.coinranking.com/gNsKAuE-W/bitcoin_btc.svg",
        "name": "Bitcoin",
        "symbol": "BTC",
        "price": "65955.43592725793773050345"
      },
      {
        "uuid": "ZlZpzOJo43mIo",
        "iconUrl": "https://cdn.coinranking.com/By8ziihX7/bch.svg",
        "name": "Bitcoin Cash",
        "symbol": "BCH",
        "price": "629.06361906860411030862"
      }
    ],
    "exchanges": [
      {
        "uuid": "YY5LBnZ-G",
        "iconUrl": "https://cdn.coinranking.com/tG3ps5jPI/bitforex.svg",
        "name": "Bitforex",
        "recommended": false
      },
      {
        "uuid": "C2gDcXEHIFD",
        "iconUrl": "https://cdn.coinranking.com/lQYXlA0LJ/hotbit.svg",
        "name": "HOTBIT",
        "recommended": false
      }
    ],
    "markets": [
      {
        "uuid": "MP77r-vKf4",
        "baseSymbol": "BTC",
        "quoteSymbol": "USDT",
        "baseUuid": "Qwsogvtv82FCd",
        "quoteUuid": "HIVsRcGKkPFtW",
        "exchangeIconUrl": "https://cdn.coinranking.com/mDTK5qrmq/binance.svg",
        "exchangeName": "Binance",
        "exchangeUuid": "-zdvbieRdZ",
        "recommended": true
      },
      {
        "uuid": "6NVfmwRwJEp",
        "baseSymbol": "BTC",
        "quoteSymbol": "USDT",
        "baseUuid": "Qwsogvtv82FCd",
        "quoteUuid": "HIVsRcGKkPFtW",
        "exchangeIconUrl": "https://cdn.coinranking.com/tBA4j321g/Okex.svg",
        "exchangeName": "OKEx",
        "exchangeUuid": "hUlMcwWZp_",
        "recommended": true
      }
    ],
    "fiat": [
      {
        "uuid": "yhjMzLPhuIDl",
        "iconUrl": "https://cdn.coinranking.com/kz6a7w6vF/usd.svg",
        "name": "US Dollar",
        "symbol": "USD",
        "price": "1"
      }
    ],
    "categories": [
      {
        "slug": "defi",
        "shortname": "DeFi",
        "name": "DeFi coins",
        "iconUrl": "https://cdn.coinranking.com/MlN0Muv9-/defi.svg",
        "numberOfCoins": 100
      }
    ]
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| data.coins Object[] | List of coins matching the search pattern |
| data.coins.uuid String | UUID of the coin |
| data.coins.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coins.name String | Name of the coin |
| data.coins.symbol String | Currency symbol |
| data.coins.price String | Price of the coin |
| data.exchanges Object[] | List of exchanges matching the search pattern |
| data.exchanges.uuid String | UUID of the exchange |
| data.exchanges.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.exchanges.name String | Name of the exchange |
| data.exchanges.recommended Boolean | Whether the exchange is recommended based on our criteria, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.markets Object[] | List of markets matching the search pattern |
| data.markets.uuid String | UUID of the market |
| data.markets.baseSymbol String | The base symbol of this market |
| data.markets.quoteSymbol String | The quote symbol of this market |
| data.markets.baseUuid String | The UUID of the base currency |
| data.markets.quoteUuid String | The UUID of the quote currency |
| data.markets.exchangeIconUrl String | Location of the icon of the exchange this market belongs to. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.markets.exchangeName String | Name of the exchange |
| data.markets.exchangeUuid String | UUID of the exchange |
| data.markets.recommended Boolean | Whether the market is recommended based on the exchange it belongs to, see https://support.coinranking.com/article/82-recommended-exchanges |
| data.fiat Object[] | List of fiat currencies matching the search pattern |
| data.fiat.uuid String | UUID of the currency |
| data.fiat.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.fiat.name String | Name of the currency |
| data.fiat.symbol String | Currency symbol |
| data.fiat.price String | Rate of the currency |
| data.categories Object[] | List of categories matching the search pattern |
| data.categories.slug String | Slug of the category |
| data.categories.shortname String | Shortened name of the category |
| data.categories.name String | Full name of the category |
| data.categories.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.categories.numberOfCoins Number | Number of coins in the category |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency with UUID of HxDUgYGNAdQz not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Tag Endpoints Introduction | Coinranking API Documentation


# Tags

Tags categorize groups of cryptocurrencies into themes such as DeFi coins, Stablecoins, and Meme
Coins. Each tag provides insights into the number of coins it encompasses, along with
market-specific statistics like volume and market capitalization.

The tags can be used to filter coins in the
coins endpoint (look for
tags in the query parameter table). We use tags ourselves on our
category pages on coinranking.com.


## Endpoints

- Tags Get a list of tags.
- Tag details Gets more specific details about a tag, such as a description.

---

# Get Tags | Coinranking API Documentation


# Get list of tags

Get a list of all our tags. Each tag provides insights into the number of coins it
encompasses, along with market-specific statistics like volume and market capitalization. The tags
can also be used in the coins endpoint as a filter.

```
https://api.coinranking.com/v2/tags
```


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used in all the values that represent a price, e.g. 24hVolume and marketCap. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/tags?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | Time period where the change and sparkline are based on The maximum timePeriod is 1y for Free and 5y for all paid plans. This endpoint supports up to five years of data. These limits apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y  Example: https://api.coinranking.com/v2/tags?timePeriod=1y |
| type (optional) String | Filter tags by type. Use this to get only categories or only ecosystems. Allowed values:  category ecosystem  Example: https://api.coinranking.com/v2/tags?type=ecosystem |
| limit (optional) Number | Limit. Used for pagination. The maximum amount of results you can fetch in one request is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50  Example: https://api.coinranking.com/v2/tags?limit=10 |
| offset (optional) Number | Offset. Used for pagination. Default value:  0  Example: https://api.coinranking.com/v2/tags?offset=10 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results, or the previousCursor value to navigate back to the previous page. See Pagination for more information. Example: https://api.coinranking.com/v2/tags?cursor=eyJ0IjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/tags?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/tags?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/tags?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/tags?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d&limit=50&offset=0", headers=headers)

print(response.text)
```


## Response

```
{
  "status": "success",
  "data": {
    "stats": {
      "total": 61
    },
    "tags": [
      {
        "slug": "defi",
        "shortname": "DeFi",
        "name": "DeFi coins",
        "type": "category",
        "description": "DeFi is a new way to do finance without banks. You can trade assets with others online, with low fees and high interest.",
        "iconUrl": "https://cdn.coinranking.com/mXMAEpdTf/defi.svg",
        "hasContent": true,
        "numberOfCoins": 1118,
        "24hVolume": "5471264386.786922",
        "volumeShare": "7.67",
        "marketCap": "76706768342.49992",
        "marketCapChange": "-3.86",
        "marketCapShare": "2.48",
        "topCurrencySymbol": "LINK",
        "topCurrencyMarketCap": "10163230777.470625",
        "topCurrencyDominance": "13.25",
        "coinrankingUrl": "https://coinranking.com/coins/defi"
      },
      {
        "slug": "solana-ecosystem",
        "shortname": "Solana",
        "name": "Solana Ecosystem",
        "type": "ecosystem",
        "description": "Coins built on Solana, a high-speed, low-cost Layer-1 blockchain known for its scalability and developer-friendly ecosystem.",
        "iconUrl": "https://cdn.coinranking.com/iImvX5-OG/5426.png",
        "hasContent": false,
        "numberOfCoins": 8190,
        "24hVolume": "88151257772",
        "volumeShare": "107.41",
        "marketCap": "407175085214",
        "marketCapChange": "1.16",
        "marketCapShare": "10.33",
        "topCurrencySymbol": "SOL",
        "topCurrencyMarketCap": "91480000271.383912",
        "topCurrencyDominance": "2.33",
        "coinrankingUrl": "https://coinranking.com/ecosystems/solana-ecosystem"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ0IjoxLCJyIjpudWxsLCJ1Ijoic29sYW5hLWVjb3N5c3RlbSIsIm8iOm51bGwsImQiOm51bGx9",
    "previousCursor": null
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.stats Object |  |
| data.stats.total Number | Total number of tags available. |
| data.tags Array | List of tag objects. |
| data.tags[] Object | A tag object. Read more about what a tag is in the introduction. |
| data.tags[].slug String | Slug identifier for the tag. This is a short url-friendly name, so for example the tag with the name "Layer-2 coins" has layer-2 as slug. These slugs can also be used as a filter in the coins endpoint (Look for the tags query parameter). |
| data.tags[].shortname String | As the name implies, it is a shorter version of the name. It mostly omits the tokens or coins part of the name, so instead of the "Layer-2 coins" you get just "Layer-2". In contrast to the slug, these short names are not url-friendly perse and cannot be used for filtering. |
| data.tags[].name String | Full name of the tag. It is the name we use on our categories page or ecosystems page. |
| data.tags[].type String | Type of the tag. Indicates the classification of the tag. Example values:  category ecosystem |
| data.tags[].iconUrl String | URL of the tag's icon. Every tag has it's own icon, and you can find it through this url. The images might change over time. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.tags[].hasContent Boolean | Indicates if the tag has any coins associated with it. This should be the case in almost all cases, but new categories or ecosystems can be made before there are any coins related to them. |
| data.tags[].numberOfCoins Number | Number of coins associated with the tag. Should you use the filter on the coins endpoint to get the coins related to a specific tag, numberOfCoins is the amount of coins that you can expect to get back (with pagination, that is). |
| data.tags[].24hVolume String | The aggregated 24-hour trading volume for all coins that are associated to this tag. |
| data.tags[].volumeShare String | Share of the total trading volume. Meaning, the percentage the aggregated 24 hour volume (see the previous property) compared to the 24 hour volume of all coins listed on Coinranking. |
| data.tags[].marketCap String | Market capitalization for coins associated to the tag. In other words, the aggregated market cap for every coin that is related to this tag. Market cap itself is a product of the amount of coins in circulation, multiplied by the value of each of these coins. |
| data.tags[].marketCapChange String | Percentage change in market capitalization. The previous property (marketCap) represents how much the market cap for all coins with a specific tag is. This value compares the current market cap for a tag to the same one 24 hours ago. |
| data.tags[].marketCapShare String | Share of the total market capitalization. Meaning, the percentage the aggregated market cap (see the previous property) compared to market cap of all coins listed on Coinranking. |
| data.tags[].topCurrencySymbol String | Symbol of the top currency within the tag. The top currency being the coin with the highest market cap. A requirement is that this coin has to be a tier 1 coin.. If there is no tier 1 coin available, this value is null. |
| data.tags[].topCurrencyMarketCap String | Market capitalization of the top currency. See topCurrencySymbol. Can be null |
| data.tags[].topCurrencyDominance String | How dominant the top coin is compared to all the other coins with this tag, as a percentage. See topCurrencySymbol. Can be null. |
| data.tags[].coinrankingUrl String | URL to the Coinranking page for the tag. |
| pagination Object | Pagination information. See Pagination for more details. |
| pagination.limit Number | The number of results per page |
| pagination.hasNextPage Boolean | Whether there are more results available after the current page |
| pagination.hasPreviousPage Boolean | Whether there are results available before the current page |
| pagination.nextCursor String/null | Cursor to use for the next page, or null if there are no more results |
| pagination.previousCursor String/null | Cursor to use for the previous page, or null if on the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor string is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different orderBy or orderDirection parameters. Match the original parameters or start over. |
| PAGINATION_CONFLICT Object | Both cursor and offset parameters were provided. Use only one pagination method per request. |

---

# Get Tag Details | Coinranking API Documentation


# Get tag details

Find information about a specific tag. On Coinranking, we use this data on our
coin categories and coin ecosystems page.

```
https://api.coinranking.com/v2/tag/:slug
```


## Path parameters

| Parameter | Description |
| --- | --- |
| slug slug | Slug of the tag you want to request. Consult the tags endpoint  for possible slug values. |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), the price of the reference currency is used in all the values that represent a price, e.g. 24hVolume and marketCap. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/tag/defi?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | Time period where the change and sparkline are based on The maximum timePeriod is 1y for Free and 5y for all paid plans. This endpoint supports up to five years of data. These limits apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y  Example: https://api.coinranking.com/v2/tag/defi?timePeriod=1y |


## Code examples

```
curl 'https://api.coinranking.com/v2/tag/defi?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d'  \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/tag/defi?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/tag/defi?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
      "x-access-token: your-api-key"
    ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/tag/defi?referenceCurrencyUuid=5k-_VTxqtCEI&timePeriod=7d", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "tag": [
      {
        "slug": "defi",
        "shortname": "DeFi",
        "name": "DeFi coins",
        "type": "category",
        "description": "DeFi is a new way to do finance without banks. You can trade assets with others online, with low fees and high interest.",
        "iconUrl": "https://cdn.coinranking.com/mXMAEpdTf/defi.svg",
        "hasContent": true,
        "numberOfCoins": 1112,
        "24hVolume": "5325976225.8202715",
        "volumeShare": "6.37",
        "marketCap": "86905953192.16096",
        "marketCapChange": "1.55",
        "marketCapShare": "2.72",
        "topCurrencySymbol": "LINK",
        "topCurrencyMarketCap": "11451177789.44087",
        "topCurrencyDominance": "13.18",
        "coinrankingUrl": "https://coinranking.com/coins/defi"
      }
   }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object |  |
| data.tag Object | A tag object. Read more about what a tag is in the introduction. |
| data.tag.slug String | Slug identifier for the tag. This is a short url-friendly name, so for example the tag with the name "Layer-2 coins" has layer-2 as slug. These slugs can also be used as a filter in the coins endpoint (Look for the tags query parameter). |
| data.tag.shortname String | As the name implies, it is a shorter version of the name. It mostly omits the tokens or coins part of the name, so instead of the "Layer-2 coins" you get just "Layer-2". In contrast to the slug, these short names are not url-friendly perse and cannot be used for filtering. |
| data.tag.name String | Full name of the tag. It is the name we use on our categories page or ecosystems page. |
| data.tag.type String | Type of the tag. Indicates the category or classification of the tag. Example values:  category ecosystem |
| data.tag.description String | A short description in one or two sentences of what this tag is about. We use it on our category pages, see for example our DeFi coins page. |
| data.tag.iconUrl String | URL of the tag's icon. Every tag has it's own icon, and you can find it through this url. The images might change over time. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.tag.hasContent Boolean | Indicates if the tag has any coins associated with it. This should be the case in almost all cases, but new categories or ecosystems can be made before there are any coins related to them. |
| data.tag.numberOfCoins Number | Number of coins associated with the tag. Should you use the filter on the coins endpoint to get the coins related to a specific tag, numberOfCoins is the amount of coins that you can expect to get back (with pagination, that is). |
| data.tag.24hVolume String | The aggregated 24-hour trading volume for all coins that are associated to this tag. |
| data.tag.volumeShare String | Share of the total trading volume. Meaning, the percentage the aggregated 24 hour volume (see the previous property) compared to the 24 hour volume of all coins listed on Coinranking. |
| data.tag.marketCap String | Market capitalization for coins associated to the tag. In other words, the aggregated market cap for every coin that is related to this tag. Market cap itself is a product of the amount of coins in circulation, multiplied by the value of each of these coins. |
| data.tag.marketCapChange String | Percentage change in market capitalization. The previous property (marketCap) represents how much the market cap for all coins with a specific tag is. This value compares the current market cap for a tag to the same one 24 hours ago. |
| data.tag.marketCapShare String | Share of the total market capitalization. Meaning, the percentage the aggregated market cap (see the previous property) compared to market cap of all coins listed on Coinranking. |
| data.tag.topCurrencySymbol String | Symbol of the top currency within the tag. The top currency being the coin with the highest market cap. A requirement is that this coin has to be a tier 1 coin.. If there is no tier 1 coin available, this value is null. |
| data.tag.topCurrencyMarketCap String | Market capitalization of the top currency. See topCurrencySymbol. Can be null |
| data.tag.topCurrencyDominance String | How dominant the top coin is compared to all the other coins with this tag, as a percentage. See topCurrencySymbol. Can be null. |
| data.tag.coinrankingUrl String | URL to the Coinranking page for the tag. |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "REFERENCE_UNAVAILABLE",
  "message": "Reference currency not available"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Indicator Endpoints Introduction | Coinranking API Documentation


# Indicators

Indicators are tools that help traders analyze price action, volume, and overall market trends. They can reveal signals such as momentum, volatility, and potential entry or exit opportunities. Common examples include moving averages, the RSI, the MACD, the ATR, the Supertrend and the Fear and Greed Index.


## Endpoints

- Coin moving averages Get the 20, 50, 100 and 200-period simple (SMA) and exponential (EMA) moving averages for a coin throughout time, counted in candles of the interval you request, plus Bollinger Bands around the 20-period average. Moving averages smooth out price data over a number of candles, helping to identify longer-term trends; the bands show how far the closing price is spread around ma20, the 20-period average.
- Coin RSI Get the 14-period Relative Strength Index for a coin throughout time, counted in candles of the interval you request, together with a 14-candle average of it. The RSI weighs recent gains against recent losses on a 0-100 scale, and is read for momentum and for overbought or oversold conditions.
- Coin MACD Get the MACD line, signal line and histogram for a coin throughout time, at the conventional 12/26/9 lengths. MACD tracks the gap between a fast and a slow moving average against an average of that gap, so crossings between the two lines mark shifts in momentum.
- Coin ATR Get the 14-period Average True Range for a coin throughout time, counted in candles of the interval you request. The ATR measures volatility — the average height of a candle, gaps included — as a price in the reference currency, so it says how far a coin is moving without saying which way.
- Coin Supertrend Get the Supertrend (10, 3) line for a coin throughout time, together with the direction it is reading. The line trails the price by 3 ATRs and flips sides when the price closes through it, so it is read as a trend-following stop that widens for a volatile coin and tightens for a quiet one.
- Fear and Greed Index Get the Fear and Greed Index for the cryptocurrency market throughout time. This market-wide sentiment indicator measures the current mood of the crypto market on a scale from 0 (extreme fear) to 100 (extreme greed).

---

# Get Coin Moving Averages | Coinranking API Documentation


# Get coin moving averages

Get the moving averages for a coin throughout time, in both the simple (SMA) and exponential (EMA) flavours. The supported windows are 20, 50, 100 and 200 periods, and a period is one candle of the interval you request — so interval=day gives the familiar 20/50/100/200-day averages, while interval=hour gives 20/50/100/200-hour ones.

A simple moving average (ma20 … ma200) weights every candle in its window equally. An exponential moving average (ema20 … ema200) weights the most recent candles more heavily, so it turns sooner when the price changes direction. Both are expressed in the reference currency, and both become available on the same candle — an EMA is seeded from the simple average of its first window.

The response also carries Bollinger Bands around the 20-period average: bbUpper20 and bbLower20 sit two standard deviations either side of it, so the band widens when the price is volatile and narrows when it settles. There is no middle-band field because a Bollinger middle band is the simple moving average of the same window — it is already published as ma20.

The band is published at two standard deviations, and that is not a limitation. The deviation itself is (bbUpper20 - ma20) / 2, so a band at any other width can be derived from the response without another request.

The window follows the interval rather than always meaning days. A request without an interval uses the default for the chosen timePeriod (see the table below), so pass interval=day explicitly if you want day-denominated averages. Note that interval=day is only available from timePeriod=7d upwards — the shorter periods (1h, 3h, 12h and 24h) do not span enough days to allow it.

```
https://api.coinranking.com/v2/indicators/:uuid/moving-averages
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the moving averages for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| timePeriod (optional) String | The time period for which the moving average data is returned. The number of data points and the default interval are determined by the time period. Growth and higher plans can use every time period up to all. Preview requests follow your plan’s historical window: Free is limited to one year, Basic to five years, and Startup can use all available history. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y 10y all  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/moving-averages?timePeriod=7d |
| interval (optional) String | The interval determines the granularity of each data point. If not provided, a default interval is used based on the selected timePeriod. Only certain intervals are available per timePeriod — see the table below.     timePeriod Available intervals (default in bold)     1h minute, 5minutes   3h minute, 5minutes, hour   12h minute, 5minutes, hour   24h minute, 5minutes, hour, 8hours   7d hour, 8hours, day   30d hour, 8hours, day, week   3m hour, 8hours, day, week, month   1y day, week, month   3y day, week, month   5y day, week, month   10y day, week, month   all day, week, month     Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/moving-averages?timePeriod=7d&interval=day | timePeriod | Available intervals (default in bold) | 1h | minute, 5minutes | 3h | minute, 5minutes, hour | 12h | minute, 5minutes, hour | 24h | minute, 5minutes, hour, 8hours | 7d | hour, 8hours, day | 30d | hour, 8hours, day, week | 3m | hour, 8hours, day, week, month | 1y | day, week, month | 3y | day, week, month | 5y | day, week, month | 10y | day, week, month | all | day, week, month |
| timePeriod | Available intervals (default in bold) |
| 1h | minute, 5minutes |
| 3h | minute, 5minutes, hour |
| 12h | minute, 5minutes, hour |
| 24h | minute, 5minutes, hour, 8hours |
| 7d | hour, 8hours, day |
| 30d | hour, 8hours, day, week |
| 3m | hour, 8hours, day, week, month |
| 1y | day, week, month |
| 3y | day, week, month |
| 5y | day, week, month |
| 10y | day, week, month |
| all | day, week, month |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the moving average values are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/moving-averages?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/moving-averages?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/moving-averages?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/moving-averages?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/moving-averages?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "startingAt": 1774936800,
      "ma20": "61051.50263116225",
      "ma50": "59938.44387892327",
      "ma100": "67917.84166179039",
      "ma200": "79262.68876699556",
      "ema20": "61204.88911204417",
      "ema50": "60312.77410038255",
      "ema100": "66984.31220149077",
      "ema200": "77105.44992018813",
      "bbUpper20": "62890.11447209318",
      "bbLower20": "59212.89079023132"
    },
    {
      "startingAt": 1774933200,
      "ma20": "61050.102576064244",
      "ma50": "59937.069348890385",
      "ma100": "67916.28414532698",
      "ma200": "79260.87108640283",
      "ema20": "61203.11764018829",
      "ema50": "60311.02218804471",
      "ema100": "66982.90116644302",
      "ema200": "77103.61884770195",
      "bbUpper20": "62888.42137705441",
      "bbLower20": "59211.78377507408"
    }
  ]
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object[] | List of moving average data points |
| data.startingAt Number | An Epoch startingAt in seconds marking the start of the time period. |
| data.ma20 String/null | The 20-period simple moving average price in the reference currency: the mean closing price over the last 20 candles of the requested interval. null until 20 candles of history exist. |
| data.ma50 String/null | The 50-period simple moving average price in the reference currency: the mean closing price over the last 50 candles of the requested interval. null until 50 candles of history exist. |
| data.ma100 String/null | The 100-period simple moving average price in the reference currency: the mean closing price over the last 100 candles of the requested interval. null until 100 candles of history exist. |
| data.ma200 String/null | The 200-period simple moving average price in the reference currency: the mean closing price over the last 200 candles of the requested interval. null until 200 candles of history exist. |
| data.ema20 String/null | The 20-period exponential moving average price in the reference currency, over the last 20 candles of the requested interval. Weights recent candles more heavily than ma20, so it responds faster to a change in direction. null until 20 candles of history exist. |
| data.ema50 String/null | The 50-period exponential moving average price in the reference currency, over the last 50 candles of the requested interval. Weights recent candles more heavily than ma50, so it responds faster to a change in direction. null until 50 candles of history exist. |
| data.ema100 String/null | The 100-period exponential moving average price in the reference currency, over the last 100 candles of the requested interval. Weights recent candles more heavily than ma100, so it responds faster to a change in direction. null until 100 candles of history exist. |
| data.ema200 String/null | The 200-period exponential moving average price in the reference currency, over the last 200 candles of the requested interval. Weights recent candles more heavily than ma200, so it responds faster to a change in direction. null until 200 candles of history exist. |
| data.bbUpper20 String/null | The upper Bollinger Band: ma20 plus two standard deviations of the closing price over the same 20 candles. null until 20 candles of history exist, alongside ma20. |
| data.bbLower20 String/null | The lower Bollinger Band: ma20 minus the same two standard deviations. The band is centred exactly on ma20, which is why no middle-band field is returned and why the deviation can be recovered as (bbUpper20 - ma20) / 2. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin RSI | Coinranking API Documentation


# Get coin RSI

Get the Relative Strength Index (RSI) for a coin throughout time, together with a 14-candle simple average of it. The RSI compares the size of recent gains against recent losses on a 0-100 scale: readings above 70 are often called overbought and below 30 oversold, though in a strong trend a coin can sit there for a long time.

The period is 14 candles, and a candle is one bucket of the interval you request — so interval=day gives the familiar 14-day RSI, while interval=hour gives a 14-hour one.

This uses Wilder's smoothing, the original definition, rather than a plain mean of the last 14 changes. Every value therefore depends on the one before it, and we read a long run of earlier candles before the first one we return so that the series has converged by the time you see it. That is also why the first returned candle already carries both values rather than starting blank.

```
https://api.coinranking.com/v2/indicators/:uuid/rsi
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the RSI for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| timePeriod (optional) String | The time period for which the RSI data is returned. The number of data points and the default interval are determined by the time period. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y 10y all  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/rsi?timePeriod=7d |
| interval (optional) String | The interval determines the granularity of each data point, and therefore what one RSI period means. If not provided, a default interval is used based on the selected timePeriod. Only certain intervals are available per timePeriod — see the table below.     timePeriod Available intervals (default in bold)     1h minute, 5minutes   3h minute, 5minutes, hour   12h minute, 5minutes, hour   24h minute, 5minutes, hour, 8hours   7d hour, 8hours, day   30d hour, 8hours, day, week   3m hour, 8hours, day, week, month   1y day, week, month   3y day, week, month   5y day, week, month   10y day, week, month   all day, week, month     Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/rsi?timePeriod=7d&interval=day | timePeriod | Available intervals (default in bold) | 1h | minute, 5minutes | 3h | minute, 5minutes, hour | 12h | minute, 5minutes, hour | 24h | minute, 5minutes, hour, 8hours | 7d | hour, 8hours, day | 30d | hour, 8hours, day, week | 3m | hour, 8hours, day, week, month | 1y | day, week, month | 3y | day, week, month | 5y | day, week, month | 10y | day, week, month | all | day, week, month |
| timePeriod | Available intervals (default in bold) |
| 1h | minute, 5minutes |
| 3h | minute, 5minutes, hour |
| 12h | minute, 5minutes, hour |
| 24h | minute, 5minutes, hour, 8hours |
| 7d | hour, 8hours, day |
| 30d | hour, 8hours, day, week |
| 3m | hour, 8hours, day, week, month |
| 1y | day, week, month |
| 3y | day, week, month |
| 5y | day, week, month |
| 10y | day, week, month |
| all | day, week, month |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in whose terms the price is measured before the RSI is calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  The RSI itself is a dimensionless 0-100 reading, but it is not independent of this choice: the conversion happens before the calculation, so the RSI of a coin priced in Bitcoin is a genuinely different series from its RSI priced in US Dollars. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/rsi?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/rsi?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/rsi?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/rsi?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/rsi?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "startingAt": 1774936800,
      "rsi": "63.2148930274",
      "rsiMa": "61.8402117395"
    },
    {
      "startingAt": 1774933200,
      "rsi": "61.9930418822",
      "rsiMa": "61.5518830471"
    }
  ]
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object[] | List of RSI data points, newest first |
| data.startingAt Number | An Epoch startingAt in seconds marking the start of the time period. |
| data.rsi String | The 14-period Relative Strength Index, on a 0-100 scale, over the last 14 candles of the requested interval. Above 70 is commonly read as overbought and below 30 as oversold. |
| data.rsiMa String/null | A 14-candle simple average of rsi — an average of the indicator, not of the price. Crossings between the two are read as momentum shifts. null only for a coin whose history is shorter than the calculation needs. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| FORBIDDEN Object | This endpoint requires the growth plan or higher. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin MACD | Coinranking API Documentation


# Get coin MACD

Get the Moving Average Convergence Divergence (MACD) for a coin throughout time: the MACD line, its signal line, and the histogram between them. MACD tracks the gap between a fast and a slow exponential moving average of the price, and reads that gap against an average of itself — crossings between the two lines, and the histogram's changes of sign, are read as shifts in momentum.

The lengths are the conventional 12, 26 and 9, and a length counts candles of the interval you request — so interval=day gives the familiar 12/26/9-day MACD, while interval=hour gives an hourly one.

The signal line is an exponential average of the MACD line, not of the price. That is what makes the crossings meaningful: both lines are then in the same units, and macdHistogram is exactly their difference. Because two exponential averages are chained, we read a long run of earlier candles before the first one we return so that both have converged by the time you see them.

```
https://api.coinranking.com/v2/indicators/:uuid/macd
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the MACD for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| timePeriod (optional) String | The time period for which the MACD data is returned. The number of data points and the default interval are determined by the time period. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y 10y all  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/macd?timePeriod=7d |
| interval (optional) String | The interval determines the granularity of each data point, and therefore what one MACD length means. If not provided, a default interval is used based on the selected timePeriod. Only certain intervals are available per timePeriod — see the table below.     timePeriod Available intervals (default in bold)     1h minute, 5minutes   3h minute, 5minutes, hour   12h minute, 5minutes, hour   24h minute, 5minutes, hour, 8hours   7d hour, 8hours, day   30d hour, 8hours, day, week   3m hour, 8hours, day, week, month   1y day, week, month   3y day, week, month   5y day, week, month   10y day, week, month   all day, week, month     Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/macd?timePeriod=7d&interval=day | timePeriod | Available intervals (default in bold) | 1h | minute, 5minutes | 3h | minute, 5minutes, hour | 12h | minute, 5minutes, hour | 24h | minute, 5minutes, hour, 8hours | 7d | hour, 8hours, day | 30d | hour, 8hours, day, week | 3m | hour, 8hours, day, week, month | 1y | day, week, month | 3y | day, week, month | 5y | day, week, month | 10y | day, week, month | all | day, week, month |
| timePeriod | Available intervals (default in bold) |
| 1h | minute, 5minutes |
| 3h | minute, 5minutes, hour |
| 12h | minute, 5minutes, hour |
| 24h | minute, 5minutes, hour, 8hours |
| 7d | hour, 8hours, day |
| 30d | hour, 8hours, day, week |
| 3m | hour, 8hours, day, week, month |
| 1y | day, week, month |
| 3y | day, week, month |
| 5y | day, week, month |
| 10y | day, week, month |
| all | day, week, month |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in whose terms the price is measured before the MACD is calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  All three values are expressed in the reference currency, and the conversion happens before the calculation rather than after — so a MACD priced in Bitcoin is a genuinely different series from one priced in US Dollars, not the same numbers rescaled. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/macd?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/macd?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/macd?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/macd?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/macd?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "startingAt": 1774936800,
      "macd": "412.7719284471",
      "macdSignal": "355.1042938810",
      "macdHistogram": "57.6676345661"
    },
    {
      "startingAt": 1774933200,
      "macd": "398.2214005593",
      "macdSignal": "340.7873602395",
      "macdHistogram": "57.4340403198"
    }
  ]
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object[] | List of MACD data points, newest first |
| data.startingAt Number | An Epoch startingAt in seconds marking the start of the time period. |
| data.macd String | The MACD line in the reference currency: the 12-candle exponential moving average minus the 26-candle one, over candles of the requested interval. Positive means the fast average is above the slow one. |
| data.macdSignal String/null | The signal line: a 9-candle exponential moving average of macd itself, not of the price. null for candles where that window has not filled, which is the case for a short stretch at the oldest end of the returned range. |
| data.macdHistogram String/null | macd minus macdSignal. Crosses zero at exactly the candle where the two lines cross, which is what makes it a momentum reading rather than a second copy of the line. null alongside macdSignal and never on its own. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| FORBIDDEN Object | Production access requires the Growth plan or higher. Free, Basic and Startup plans can use preview access. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin ATR | Coinranking API Documentation


# Get coin ATR

Get the Average True Range (ATR) for a coin throughout time. The ATR measures volatility: it is the average height of a candle, counting any gap from the previous candle's close as part of that height. A rising ATR means the coin is moving further per candle than it was, in either direction — the ATR says nothing about which way.

The period is 14 candles, and a candle is one bucket of the interval you request — so interval=day gives the familiar 14-day ATR, while interval=hour gives a 14-hour one.

The ATR is a price, not a percentage. It is denominated in whatever referenceCurrencyUuid you request, so an ATR of 412 on Bitcoin in US Dollars means the average candle spans about $412. Comparing volatility between two coins therefore means dividing by their prices yourself — a $412 range on a $100,000 coin is a much quieter market than a $412 range on a $2,000 one.

This uses Wilder's smoothing, the original definition, rather than a plain mean of the last 14 ranges. Every value therefore depends on the one before it, and we read a long run of earlier candles before the first one we return so that the series has converged by the time you see it. That is also why the first returned candle already carries a value rather than starting blank.

```
https://api.coinranking.com/v2/indicators/:uuid/atr
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the ATR for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| timePeriod (optional) String | The time period for which the ATR data is returned. The number of data points and the default interval are determined by the time period. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y 10y all  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/atr?timePeriod=7d |
| interval (optional) String | The interval determines the granularity of each data point, and therefore what one ATR period means. If not provided, a default interval is used based on the selected timePeriod. Only certain intervals are available per timePeriod — see the table below.     timePeriod Available intervals (default in bold)     1h minute, 5minutes   3h minute, 5minutes, hour   12h minute, 5minutes, hour   24h minute, 5minutes, hour, 8hours   7d hour, 8hours, day   30d hour, 8hours, day, week   3m hour, 8hours, day, week, month   1y day, week, month   3y day, week, month   5y day, week, month   10y day, week, month   all day, week, month     Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/atr?timePeriod=7d&interval=day | timePeriod | Available intervals (default in bold) | 1h | minute, 5minutes | 3h | minute, 5minutes, hour | 12h | minute, 5minutes, hour | 24h | minute, 5minutes, hour, 8hours | 7d | hour, 8hours, day | 30d | hour, 8hours, day, week | 3m | hour, 8hours, day, week, month | 1y | day, week, month | 3y | day, week, month | 5y | day, week, month | 10y | day, week, month | all | day, week, month |
| timePeriod | Available intervals (default in bold) |
| 1h | minute, 5minutes |
| 3h | minute, 5minutes, hour |
| 12h | minute, 5minutes, hour |
| 24h | minute, 5minutes, hour, 8hours |
| 7d | hour, 8hours, day |
| 30d | hour, 8hours, day, week |
| 3m | hour, 8hours, day, week, month |
| 1y | day, week, month |
| 3y | day, week, month |
| 5y | day, week, month |
| 10y | day, week, month |
| all | day, week, month |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in whose terms the price is measured before the ATR is calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  The returned atr is a price in this currency, so this choice sets both the calculation and the units it comes back in. The conversion happens before the calculation, so the ATR of a coin priced in Bitcoin is a genuinely different series from its ATR priced in US Dollars — not a rescaling of it. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/atr?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/atr?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/atr?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/atr?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/atr?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "startingAt": 1774936800,
      "atr": "412.8371029163"
    },
    {
      "startingAt": 1774933200,
      "atr": "408.5192837465"
    }
  ]
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object[] | List of ATR data points, newest first |
| data.startingAt Number | An Epoch startingAt in seconds marking the start of the time period. |
| data.atr String | The 14-period Average True Range over the last 14 candles of the requested interval, as a price in the reference currency. Higher means larger candles, in either direction. |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| FORBIDDEN Object | Production access requires the Growth plan or higher. Free, Basic and Startup plans can use preview access. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Coin Supertrend | Coinranking API Documentation


# Get coin Supertrend

Get the Supertrend for a coin throughout time — a trend-following line that sits below the price while the trend is up and above it while the trend is down, together with the direction it is currently reading. It is drawn from the Average True Range: the line trails the price by 3 ATRs, so it gives a volatile coin more room before it calls a reversal than a quiet one.

The settings are the conventional (10, 3) — a 10-candle ATR, placed 3 ATRs from the midpoint of each candle — and a candle is one bucket of the interval you request, so interval=day gives a 10-day Supertrend and interval=hour a 10-hour one.

Read the trend from direction, not by comparing supertrend against the price. The two agree on almost every candle, and disagree on exactly the one that matters: on the candle a reversal lands, the line has already moved to the other side while the closing price has not yet crossed it. direction is the value the calculation itself carried forward, so it is the one that is right on a flip.

The line is path-dependent: while a trend holds it only ever tightens toward the price, and it releases when the price closes through it. A value therefore depends on everything that has happened since the last reversal rather than on a fixed window, which is why we read a long run of earlier candles before the first one we return.

```
https://api.coinranking.com/v2/indicators/:uuid/supertrend
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| uuid String | UUID of the coin you want to request the Supertrend for. |


## Query parameters

| Parameter | Description |
| --- | --- |
| timePeriod (optional) String | The time period for which the Supertrend data is returned. The number of data points and the default interval are determined by the time period. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y 10y all  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/supertrend?timePeriod=7d |
| interval (optional) String | The interval determines the granularity of each data point, and therefore what one Supertrend period means. If not provided, a default interval is used based on the selected timePeriod. Only certain intervals are available per timePeriod — see the table below.     timePeriod Available intervals (default in bold)     1h minute, 5minutes   3h minute, 5minutes, hour   12h minute, 5minutes, hour   24h minute, 5minutes, hour, 8hours   7d hour, 8hours, day   30d hour, 8hours, day, week   3m hour, 8hours, day, week, month   1y day, week, month   3y day, week, month   5y day, week, month   10y day, week, month   all day, week, month     Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/supertrend?timePeriod=7d&interval=day | timePeriod | Available intervals (default in bold) | 1h | minute, 5minutes | 3h | minute, 5minutes, hour | 12h | minute, 5minutes, hour | 24h | minute, 5minutes, hour, 8hours | 7d | hour, 8hours, day | 30d | hour, 8hours, day, week | 3m | hour, 8hours, day, week, month | 1y | day, week, month | 3y | day, week, month | 5y | day, week, month | 10y | day, week, month | all | day, week, month |
| timePeriod | Available intervals (default in bold) |
| 1h | minute, 5minutes |
| 3h | minute, 5minutes, hour |
| 12h | minute, 5minutes, hour |
| 24h | minute, 5minutes, hour, 8hours |
| 7d | hour, 8hours, day |
| 30d | hour, 8hours, day, week |
| 3m | hour, 8hours, day, week, month |
| 1y | day, week, month |
| 3y | day, week, month |
| 5y | day, week, month |
| 10y | day, week, month |
| all | day, week, month |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in whose terms the price is measured before the Supertrend is calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  The returned supertrend is a price in this currency, and the conversion happens before the calculation — so this choice can change direction too, not just the units. A coin trending up against the US Dollar may be trending down against Bitcoin, and this endpoint will say so. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/supertrend?referenceCurrencyUuid=5k-_VTxqtCEI |


## Code examples

```
curl 'https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/supertrend?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/supertrend?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/supertrend?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/indicators/Qwsogvtv82FCd/supertrend?timePeriod=7d&interval=hour&referenceCurrencyUuid=5k-_VTxqtCEI", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "startingAt": 1774936800,
      "supertrend": "102847.3910284756",
      "direction": "up"
    },
    {
      "startingAt": 1774933200,
      "supertrend": "102847.3910284756",
      "direction": "up"
    }
  ]
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object[] | List of Supertrend data points, newest first |
| data.startingAt Number | An Epoch startingAt in seconds marking the start of the time period. |
| data.supertrend String | The Supertrend (10, 3) line, as a price in the reference currency. It sits below the price while direction is up and above it while direction is down. Repeated values are normal — the line holds its level until the price moves it. |
| data.direction String | Which side of the price the line is on, and so which way the trend is currently reading. Always present alongside supertrend.Allowed values: updown |


## Error response

```
HTTP/1.1 404 Not Found
{
  "status": "fail",
  "type": "COIN_NOT_FOUND",
  "message": "Coin not found"
}
```


### Error responses

| Error | Description |
| --- | --- |
| FORBIDDEN Object | This endpoint requires the growth plan or higher. |

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | The coin could not be found. Try another UUID |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Fear and Greed Index | Coinranking API Documentation


# Get Fear and Greed Index

Get the Fear and Greed Index for the cryptocurrency market throughout time. The Fear and Greed Index is a market-wide sentiment indicator that measures the current mood of the crypto market on a scale from 0 (extreme fear) to 100 (extreme greed). It is calculated based on factors such as volatility, market momentum, social media sentiment, and more. On Coinranking, we use this endpoint on our AI Fear & Greed chart.

```
https://api.coinranking.com/v2/indicators/fear-and-greed
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.


## Query parameters

| Parameter | Description |
| --- | --- |
| timePeriod (optional) String | The time period for which the Fear and Greed Index data is returned. The number of data points and the default interval are determined by the time period. Every time period up to all is available. Your plan’s historical window applies to both preview and production requests. Default value:  24h Allowed values:  24h 7d 30d 3m 1y 3y 5y 10y all  Example: https://api.coinranking.com/v2/indicators/fear-and-greed?timePeriod=7d |
| interval (optional) String | The interval determines the granularity of each data point. If not provided, a default interval is used based on the selected timePeriod. Only certain intervals are available per timePeriod — see the table below.     timePeriod Available intervals (default in bold)     24h hour   7d hour, day   30d hour, day   3m hour, day, week   1y day, week, month   3y day, week, month   5y day, week, month   10y day, week, month   all day, week, month     Example: https://api.coinranking.com/v2/indicators/fear-and-greed?timePeriod=7d&interval=day | timePeriod | Available intervals (default in bold) | 24h | hour | 7d | hour, day | 30d | hour, day | 3m | hour, day, week | 1y | day, week, month | 3y | day, week, month | 5y | day, week, month | 10y | day, week, month | all | day, week, month |
| timePeriod | Available intervals (default in bold) |
| 24h | hour |
| 7d | hour, day |
| 30d | hour, day |
| 3m | hour, day, week |
| 1y | day, week, month |
| 3y | day, week, month |
| 5y | day, week, month |
| 10y | day, week, month |
| all | day, week, month |


## Code examples

```
curl 'https://api.coinranking.com/v2/indicators/fear-and-greed?timePeriod=7d&interval=day' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/indicators/fear-and-greed?timePeriod=7d&interval=day', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.coinranking.com/v2/indicators/fear-and-greed?timePeriod=7d&interval=day",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => array(
        "x-access-token: your-api-key"
      ),
  ));

  $response = curl_exec($curl);

  curl_close($curl);
  echo $response;
```

```
import requests

headers = {
  'x-access-token': 'your-api-key'
}

response = requests.request("GET", "https://api.coinranking.com/v2/indicators/fear-and-greed?timePeriod=7d&interval=day", headers=headers)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": [
    {
      "timestamp": 1774948648,
      "value": 39.2714
    },
    {
      "timestamp": 1774944000,
      "value": 38.1845
    }
  ]
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the requestAllowed values: success |
| data Object[] | List of Fear and Greed Index data points |
| data.timestamp Number | An Epoch timestamp in seconds. |
| data.value Number/null | The Fear and Greed Index value on a scale from 0 to 100. A value of 0 represents extreme fear, while 100 represents extreme greed. Returns null if no data is available for this time period. |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "VALIDATION_ERROR",
  "message": "timePeriod must be one of 24h, 7d, 30d, 3m, 1y, 3y, 5y, 10y, all"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response should provide more details. |

---

# Get Coin by External Provider ID | Coinranking API Documentation


# Coin mapping

Resolve a coin by its external provider ID and receive the full Coinranking coin detail response.
This is useful when you already have CoinGecko or CoinMarketCap IDs in your system and want to
cross-reference them with Coinranking data without having to look up our UUIDs first.

The response is identical to our coin details endpoint.

```
https://api.coinranking.com/v2/mappings/:provider/coin/:providerId
```


## Preview access

Free, Basic and Startup plans can test this endpoint with five successful requests per account per UTC day. Use the documented endpoint URL with your existing API key. Preview access is applied automatically. The allowance resets at 00:00 UTC.

All API keys, resource IDs, query parameters and pagination requests share this endpoint's allowance for your account. Failed requests do not consume the preview allowance. Successful previews also count toward your normal API usage, and your plan's result, historical-window and rate limits still apply. See endpoint previews for limits, response headers and quota errors.


## Path parameters

| Parameter | Description |
| --- | --- |
| provider String | The external data provider to resolve the coin from. Allowed values:  coingecko coinmarketcap  Example: https://api.coinranking.com/v2/mappings/coingecko/coin/bitcoin |
| providerId String | The ID of the coin on the external provider's platform. Example (CoinGecko): bitcoin, ethereum, tether  Example (CoinMarketCap): 1 (Bitcoin), 1027 (Ethereum) |


## Query parameters

| Parameter | Description |
| --- | --- |
| referenceCurrencyUuid (optional) String | UUID of coin (either fiat or crypto), in which all the prices are calculated. Defaults to US Dollar, but you can use any coin. You can find UUIDs for reference currencies in any coin endpoint, including a convenient dedicated reference currency endpoint  Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/mappings/coingecko/coin/bitcoin?referenceCurrencyUuid=5k-_VTxqtCEI |
| timePeriod (optional) String | Time period where the change and sparkline are based on The maximum timePeriod is 1y for Free and 5y for all paid plans. This endpoint supports up to five years of data. These limits apply to both preview and production requests. Default value:  24h Allowed values:  1h 3h 12h 24h 7d 30d 3m 1y 3y 5y  Example: https://api.coinranking.com/v2/mappings/coingecko/coin/bitcoin?timePeriod=1y |


## Code examples

```
curl 'https://api.coinranking.com/v2/mappings/coingecko/coin/bitcoin' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
curl 'https://api.coinranking.com/v2/mappings/coinmarketcap/coin/1' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/mappings/coingecko/coin/bitcoin', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "coin": {
      "uuid": "Qwsogvtv82FCd",
      "symbol": "BTC",
      "name": "Bitcoin",
      "description": "Bitcoin is the first decentralized digital currency.",
      "color": "#f7931A",
      "iconUrl": "https://cdn.coinranking.com/Sy33Krudb/btc.svg",
      "websiteUrl": "https://bitcoin.org",
      "links": [
        {
          "name": "Bitcoin",
          "url": "https://www.reddit.com/r/Bitcoin/",
          "type": "reddit"
        }
      ],
      "supply": {
        "confirmed": true,
        "supplyAt": 1640757180,
        "circulating": "17009275",
        "total": "17009275",
        "max": "21000000"
      },
      "24hVolume": "6818750000",
      "marketCap": "159393904304",
      "fullyDilutedMarketCap": "196790985529",
      "price": "9370.9993109108",
      "btcPrice": "1",
      "priceAt": 1640757180,
      "change": "-0.52",
      "rank": 1,
      "numberOfMarkets": 9800,
      "numberOfExchanges": 190,
      "sparkline": [
        "9515.0454185372",
        "9540.1812284677",
        "9554.2212643043",
        "9593.571539283",
        "9592.8596962985",
        "9562.5310295967",
        "9556.7860427046",
        "9388.823394515",
        "9335.3004209165",
        "9329.4331700521",
        "9370.9993109108"
      ],
      "allTimeHigh": {
        "price": "19500.471361532",
        "timestamp": 1513555200
      },
      "coinrankingUrl": "https://coinranking.com/coin/Qwsogvtv82FCd+bitcoin-btc",
      "tier": 1,
      "lowVolume": false,
      "listedAt": 1483228800,
      "notices": [
        {
          "type": "MESSAGE",
          "value": "Lorem ipsum dolor sit amet"
        }
      ],
      "contractAddresses": [],
      "tags": [
        "staking",
        "layer-1"
       ],
      "isWrappedTrustless": false,
      "wrappedTo": null,
      "coinGeckoId": "bitcoin",
      "coinMarketCapId": "1"
    }
  }
}
```


### Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values: success |
| data Object |  |
| data.coin Object |  |
| data.coin.uuid String | UUID of the coin |
| data.coin.symbol String | Currency symbol |
| data.coin.name String | Name of the coin |
| data.coin.description String | Small description of the coin |
| data.coin.color String | Main HEX color of the coin |
| data.coin.iconUrl String | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| data.coin.websiteUrl String | URL of the primary website |
| data.coin.links Object[] | List of links, like social media pages |
| data.coin.links.name String | Name of the link |
| data.coin.links.url String | Url to the specific link |
| data.coin.links.type String | The type of link Allowed values:  website bitcointalk explorer discord facebook github instagram line-messenger linkedin medium qq quora reddit sina-weibo telegram tiktok twitter vkontakte wechat whitepaper youtube etc. |
| data.coin.supply Object |  |
| data.coin.supply.confirmed Boolean | Coins without a confirmed supply are ranked below coins with a confirmed supply. Read about our methodology. |
| data.coin.supply.supplyAt Number/null | Epoch timestamp of when the supply was synchronized. If the supply was never synchronized or the supply is manually updated the API will return null. |
| data.coin.supply.total String | Number of coins that are in existence |
| data.coin.supply.circulating String | Number of coins that are circulating in the public market |
| data.coin.supply.max String | Maximum amount the coin's supply can ever be. |
| data.coin.marketCap String | Market capitalization. Price times circulating supply |
| data.coin.fullyDilutedMarketCap String | Market capitalization. Price times circulating supply Full Market capitalization. Fully diluted market cap is a coin's price multiplied by its max supply. Or total supply if the max supply is not known. It shows what the market cap could be if all coins were in circulation, with the current price. |
| data.coin.price String | Price of the coin |
| data.coin.btcPrice String | Price of the coin expressed in Bitcoin |
| data.coin.priceAt Number/null | Epoch timestamp of when the price was calculated. |
| data.coin.24hVolume String | 24h trade volume |
| data.coin.change String | Percentage of change over the given time period |
| data.coin.rank Number | The position in the ranks |
| data.coin.numberOfMarkets Number | The number of markets that contain the this coin |
| data.coin.numberOfExchanges Number | The number of exchanges that trade this coin |
| data.coin.sparkline String | Array of prices based on the time period parameter, useful for a sparkline |
| data.coin.allTimeHigh Object |  |
| data.coin.allTimeHigh.price String/null | The highest price that the coin has reached, expressed in the reference currency. Returns null if no all-time high data is available. |
| data.coin.allTimeHigh.timestamp Number/null | An Epoch timestamp in seconds when the coin reached its highest price. Returns null if no all-time high data is available. |
| data.coin.coinrankingUrl String | Where to find the coin on coinranking.com |
| data.coin.tier Number/null | Tier of the coin. We separate coins into three tiers. Learn more about our ranking methodology. |
| data.coin.lowVolume Boolean | If the coin is not much traded on listed exchanges it is marked as having a low volume. The threshold is currently set at the equivalent of 500.000 US Dollar in 24 hours |
| data.coin.listedAt Number/null | Epoch timestamp of when we started listing the coin. |
| data.coin.notices Object[] | List of notices, which signal some important information about the coin. The notices are in JSON format, and in most cases consist of a "type" property with an important keyword such as "WARNING", and a more human readable message in a "value" property. |
| data.coin.contractAddresses Object[] | List of contract addresses for this coin. The format is blockchain/contractAddress. A single coin can be minted on multiple blockchains. For example, Tether (USDT) is available on Ethereum (ethereum/0xda...) , Bitcoin Cash (bitcoin-cash/9fc...) and seven other blockchains. |
| data.coin.tags Object[] | List of tags, like "Staking" or "Meme" |
| data.coin.isWrappedTrustless Boolean | Indicates whether this coin is a wrapped version of another asset where the wrapping relationship is enforced by smart contracts without requiring trust in a third party. |
| data.coin.wrappedTo String/null | UUID of the coin that this coin is wrapped to. Returns null when this coin is not a wrapped version of another asset. |
| data.coin.coinGeckoId String/null | The CoinGecko ID of the coin. Returns null if no CoinGecko mapping is available. |
| data.coin.coinMarketCapId String/null | The CoinMarketCap ID of the coin. Returns null if no CoinMarketCap mapping is available. |


## Error responses

| Error | Description |
| --- | --- |
| COIN_NOT_FOUND Object | No Coinranking coin was found for the given provider ID. Verify the ID is correct for the specified provider. |

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. Check that provider is one of the supported values and that providerId is not empty. |
| REFERENCE_UNAVAILABLE Object | The reference currency used in the request is not available. Choose another UUID. |

---

# Get Bulk Coins Data | Coinranking API Documentation


# Bulk coins

Get all our coins at once! This endpoint streams our entire set of coins with their complete metadata in compressed (gzip) 
  JSON format. It is particularly suited for scenarios where having the data managed in-house is
  necessary, allowing organizations to maintain complete control over data usage and analysis.
  Unlike other API endpoints, this endpoint does not offer filtering or sorting options, as it
  delivers all available coin metadata in bulk.

To ensure optimal performance and manage the load on our systems, this endpoint is rate-limited
  to 25 requests per day per client. The metadata dataset is refreshed every ten minutes, which enables you
  to download a fresh batch of data every hour. For most coins this frequency should be more than
  enough. For frequently traded coins (such as Bitcoin, Ethereum or any other tier 1
  coin we advise to use this endpoint in conjuction with either
real-time or the
regular coin endpoints to get more frequent price updates.


## Get bulk metadata of all coins

```
https://api.coinranking.com/v2/bulk/coins
```


## Code examples

```
curl https://api.coinranking.com/v2/bulk/coins \
  -H 'x-access-token: your-api-key' \
  -G \
  --compressed \
  -o output.json
```

```
const https = require('https');
const fs = require('fs');
const zlib = require('zlib');
const { pipeline } = require('stream');
const { promisify } = require('util');

const pipe = promisify(pipeline);

const options = {
    headers: {
        'x-access-token': 'your-api-key',
    }
};

const request = https.request('https://api.coinranking.com/v2/bulk/coins', options, (response) => {
    if (response.statusCode !== 200) {
        console.error(`HTTP error! status: ${response.statusCode}`);
        return;
    }

    const fileStream = fs.createWriteStream('output.json');
    const gunzip = zlib.createGunzip();

    response.on('error', (error) => {
        console.error('Response error:', error);
    });

    pipe(response, gunzip, fileStream)
        .then(() => console.log('Finished writing to file.'))
        .catch((error) => console.error('Pipe error:', error));
});

request.on('error', (error) => {
    console.error('Request error:', error);
});

request.end();
```


## Response

The sparklines in this example are shortened to three points; real responses hold about 25 points each.

```
HTTP/1.1 200 OK
[
  {
    "uuid": "Qwsogvtv82FCd",
    "updatedAt": 1717497619,
    "symbol": "BTC",
    "name": "Bitcoin",
    "iconUrl": "https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg",
    "links": [
      {
        "name": "coinmarketcap.com",
        "url": "https://coinmarketcap.com/currencies/bitcoin/",
        "type": "cmc"
      },
      {
        "name": "bitcoin.org",
        "type": "website",
        "url": "https://bitcoin.org"
      },
      {
        "name": "bitcoinmagazine.com",
        "url": "https://bitcoinmagazine.com/",
        "type": "website"
      },
      {
        "name": "bitcointalk.org",
        "url": "https://bitcointalk.org/",
        "type": "bitcointalk"
      },
      {
        "name": "bitcoin/bitcoin",
        "url": "https://github.com/bitcoin/bitcoin",
        "type": "github"
      },
      {
        "name": "r/bitcoin",
        "url": "https://www.reddit.com/r/bitcoin/",
        "type": "reddit"
      },
      {
        "name": "Bitcoin_Magazine",
        "url": "https://t.me/Bitcoin_Magazine",
        "type": "telegram"
      },
      {
        "name": "bitcoin",
        "url": "https://t.me/bitcoin",
        "type": "telegram"
      },
      {
        "name": "Bitcoin Whitepaper",
        "url": "https://bitcoin.org/bitcoin.pdf",
        "type": "whitepaper"
      }
    ],
    "color": "#f7931A",
    "listedAt": 1330214400,
    "tags": [
      "halal",
      "layer-1",
      "proof-of-work"
    ],
    "maxSupply": "21000000",
    "issuanceBlockchains": [
      {
        "name": "Bitcoin",
        "reference": null
      }
    ],
    "price": "63862.61655770243",
    "marketCap": "1260990482199",
    "fullyDilutedMarketCap": "1341114947712",
    "volume": "18250228627",
    "price1hAgo": "63726.554724983194",
    "price3hAgo": "63678.81020397417",
    "price12hAgo": "64307.79866234446",
    "price24hAgo": "63875.484884689606",
    "price7dAgo": "58276.0082622311",
    "price30dAgo": "68209.40347294786",
    "price3mAgo": "69292.28673341914",
    "price1yAgo": "26105.28335075832",
    "price3yAgo": "48964.152023526825",
    "price5yAgo": "11128.14084828205",
    "sparkline1h": [
      "63732.6373736823",
      "63804.065328475575",
      "63805.210272342294"
    ],
    "sparkline3h": [
      "63687.76257058441",
      "63680.83148990669",
      "63687.49773374934"
    ],
    "sparkline12h": [
      "64209.36059539615",
      "64045.41146503717",
      "63956.316769021374"
    ],
    "sparkline24h": [
      "63854.824634413206",
      "63960.263376078954",
      "64086.60855653837"
    ],
    "sparkline7d": [
      "58315.7416229473",
      "58791.701413270544",
      "60301.55942385245"
    ],
    "sparkline30d": [
      "68272.70659573431",
      "67828.649680657",
      "68608.93468746012"
    ],
    "sparkline3m": [
      "70102.4792279725",
      "67572.28256716863",
      "65054.84486125128"
    ],
    "sparkline1y": [
      "27961.943919693163",
      "26371.625474865472",
      "29633.24486966322"
    ],
    "sparkline3y": [
      "45555.62253995916",
      "46068.47710174408",
      "57649.81453020378"
    ],
    "sparkline5y": [
      "10581.577361264544",
      "9777.0862199913",
      "8403.771596580265"
    ],
    "allTimeHighPrice": 73646.0632562494,
    "allTimeHighDate": 1710400080,
    "tier": 1,
    "circulatingSupply": "19745362",
    "totalSupply": "19745362",
    "marketCapRank": 1,
    "fullyDilutedMarketCapRank": 1,
    "volumeRank": 2,
    "change1hRank": 166,
    "change3hRank": 281,
    "change12hRank": 349,
    "change24hRank": 301,
    "change7dRank": 485,
    "change30dRank": 307,
    "change3mRank": 80,
    "change1yRank": 114,
    "change3yRank": 38,
    "change5yRank": 35,
    "numberOfExchanges": 109,
    "numberOfMarkets": 2665,
    "coinGeckoId": "bitcoin",
    "coinMarketCapId": "1"
  }
]
```


### Response fields

| Property | Description |
| Object[] | The response is a list of objects containing comprehensive metadata for all our coins |
| uuid String | UUID of a coin; a unique identifier |
| updatedAt Number | Timestamp of the last change made to the coin's static data |
| symbol String | Symbol of a coin |
| name String | Name of a coin |
| iconUrl String | URL to the icon of a coin. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. See Icons for more details. |
| links Object[] | List of links, like social media pages |
| links.name String | Name of the link |
| links.url String | Url to the specific link |
| links.type String | The type of linkAllowed values: website bitcointalk explorer discord facebook github instagram line-messenger linkedin medium qq quora reddit sina-weibo telegram tiktok twitter vkontakte wechat whitepaper youtube etc. |
| color String | of the coin in hexadecimal format |
| listedAt Number | Timestamp of when the coin was listed on coinranking |
| tags String[] | List of tags, like "Staking" or "Meme" |
| issuanceBlockchains Object[] | List of issuance blockchains. This is our name for blockchains where the coin is issued on, which in some cases means multiple blockchains. For example Tether is issued on nine different blockchains. |
| issuanceBlockchains.name String | The name of the blockchain |
| issuanceBlockchains.reference String | The reference, such as a smart contract address, of a coin on the blockchain |
| price String | Price of the coin in US Dollar |
| marketCap String | Market capitalization in US Dollar. Price times circulating supply |
| fullyDilutedMarketCap String | Market capitalization in US Dollar. Price times circulating supply Full Market capitalization. Fully diluted market cap is a coin's price multiplied by its max supply. Or total supply if the max supply is not known. It shows what the market cap could be if all coins were in circulation, with the current price. |
| 24hVolume String | 24h trade volume in US Dollar |
| price1hAgo String | Price 1 hour ago in US Dollar. Useful to calculate the change percentage over 1 hour. You can use the 1h price of a different coin to calculate the price in a different reference currency. For example, you can look up the current price of Euro now and 1 hour ago, and use its rate to calculate the Bitcoin price in Euro. Next, you could use these rates to calculate the change percentage of Bitcoin in Euro. In our regular coins endpoint we can do this for you; we return a change percentage in the response and you can provide a reference currency of your choosing (such as EUR, YEN or BTC) and all the prices including the change percentage are calculated using this reference currency. |
| price3hAgo String | Price 3 hours ago in US Dollar. See price1hAgo for more details. |
| price12hAgo String | Price 12 hours ago in US Dollar. See price1hAgo for more details. |
| price24hAgo String | Price 24 hours ago in US Dollar. See price1hAgo for more details. |
| price7dAgo String | Price 7 days ago in US Dollar. See price1hAgo for more details. |
| price30dAgo String | Price 30 days ago in US Dollar. See price1hAgo for more details. |
| price3mAgo String | Price 3 months ago in US Dollar. See price1hAgo for more details. |
| price1yAgo String | Price 1 year ago in US Dollar. See price1hAgo for more details. |
| price3yAgo String | Price 3 years ago in US Dollar. See price1hAgo for more details. |
| price5yAgo String | Price 5 years ago in US Dollar. See price1hAgo for more details. |
| sparkline1h String[] | Array of about 25 price points spread out over the last 1 hour. Useful for a small chart |
| sparkline3h String[] | Array of about 25 price points spread out over the last 3 hours. Useful for a small chart |
| sparkline12h String[] | Array of about 25 price points spread out over the last 12 hours. Useful for a small chart |
| sparkline24h String[] | Array of about 25 price points spread out over the last 24 hours. Useful for a small chart |
| sparkline7d String[] | Array of about 25 price points spread out over the last 7 days. Useful for a small chart |
| sparkline30d String[] | Array of about 25 price points spread out over the last 30 days. Useful for a small chart |
| sparkline3m String[] | Array of about 25 price points spread out over the last 3 months. Useful for a small chart |
| sparkline1y String[] | Array of about 25 price points spread out over the last 1 year. Useful for a small chart |
| sparkline3y String[] | Array of about 25 price points spread out over the last 3 years. Useful for a small chart |
| sparkline5y String[] | Array of about 25 price points spread out over the last 5 years. Useful for a small chart |
| allTimeHighPrice String | Highest price the coin ever reached in US Dollar |
| allTimeHighDate String | Timestamp of when the coin reached its highest price ever reached in US Dollar |
| circulatingSupply String | Number of coins that are circulating in the public market |
| totalSupply String | Number of coins that are in existence |
| maxSupply String | Maximum amount the coin's supply can ever be. |
| marketCapRank Integer | Ranking of the coin based on its market capitalization. |
| fullyDilutedMarketCapRank Integer | Ranking of the coin based on its fully diluted market capitalization. |
| volumeRank Integer | Ranking of the coin based on its trading volume. |
| change1hRank Integer | Ranking of the coin based on its performance in the last 1 hour. |
| change3hRank Integer | Ranking of the coin based on its performance in the last 3 hours. |
| change12hRank Integer | Ranking of the coin based on its performance in the last 12 hours. |
| change24hRank Integer | Ranking of the coin based on its performance in the last 24 hours. |
| change7dRank Integer | Ranking of the coin based on its performance in the last 7 days. |
| change30dRank Integer | Ranking of the coin based on its performance in the last 30 days. |
| change3mRank Integer | Ranking of the coin based on its performance in the last 3 months. |
| change1yRank Integer | Ranking of the coin based on its performance in the last 1 year. |
| change3yRank Integer | Ranking of the coin based on its performance in the last 3 years. |
| change5yRank Integer | Ranking of the coin based on its performance in the last 5 years. |
| numberOfExchanges Integer | The number of exchanges that the coin is listed on. |
| numberOfMarkets Integer | The number of markets that the coin is available in. |
| coinGeckoId String/null | The CoinGecko ID of the coin. Returns null if no CoinGecko mapping is available. |
| coinMarketCapId String/null | The CoinMarketCap ID of the coin. Returns null if no CoinMarketCap mapping is available. |

---

# Get List of Assets | Coinranking API Documentation


# List of assets

Retrieve market data for fiat currencies, wrapped tokens, staked tokens, commodities, indices,
and stocks in one request. Use this endpoint to build asset directories, market overviews, search
filters, or comparison views that include financial assets beyond regular cryptocurrencies.

Assets are grouped by type, making it easy to display each category separately or request only the
categories relevant to your application. Each asset includes its current price, market cap,
24-hour volume and price change, sparkline, all-time high, icon, and Coinranking page URL. Monetary
values can be converted to a reference currency of your choice.

```
https://api.coinranking.com/v2/assets
```


## Query parameters

| Parameter | Description |
| --- | --- |
| types (optional) String[] | Asset types to include. By default, all asset types are selected. The response always includes every asset-type array; arrays that were not requested are returned empty. Allowed values:  fiat wrapped staked commodities indices stocks  Example: https://api.coinranking.com/v2/assets?types[]=commodities&types[]=stocks |
| referenceCurrencyUuid (optional) String | UUID of the currency in which all prices, market caps, volumes, sparklines, and all-time-high prices are calculated. Defaults to US Dollar, but you can use any supported reference currency. You can find UUIDs in the dedicated reference currency endpoint. Default value:  yhjMzLPhuIDl  Example: https://api.coinranking.com/v2/assets?referenceCurrencyUuid=Qwsogvtv82FCd |
| limit (optional) Number | Limit used for pagination. It applies separately to every selected asset-type array. For example, a limit of 10 can return up to 10 fiat currencies and 10 stocks in the same response. The maximum is 100 for Free and 5000 for all paid plans, including previews where available. Default value:  50 Size range:  1-5000  Example: https://api.coinranking.com/v2/assets?limit=10 |
| offset (optional) Number | Offset used for pagination. The same offset is applied to every selected asset type. Deprecated — use cursor-based pagination instead. The maximum allowed offset is 5000. A non-zero offset cannot be combined with a cursor. Default value:  0 Maximum value:  5000  Example: https://api.coinranking.com/v2/assets?offset=50 |
| cursor (optional) String | Cursor for pagination. Use the nextCursor value from the previous response to get the next grouped page, or previousCursor to navigate back. One cursor advances every selected asset-type array. Use it with the same types and limit values as the request that created it. See Pagination for more information. Example: https://api.coinranking.com/v2/assets?cursor=eyJ2ZXJzaW9uIjoxLC... |


## Code examples

```
curl 'https://api.coinranking.com/v2/assets?types[]=fiat&types[]=stocks&limit=10' \
  -H 'x-access-token: your-api-key' \
  -G
```

```
const options = {
  headers: {
    'x-access-token': 'your-api-key',
  },
};

fetch('https://api.coinranking.com/v2/assets?types[]=fiat&types[]=stocks&limit=10', options)
  .then((response) => response.json())
  .then((result) => console.log(result));
```

```
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.coinranking.com/v2/assets?types[]=fiat&types[]=stocks&limit=10",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array("x-access-token: your-api-key"),
));

$response = curl_exec($curl);
curl_close($curl);
echo $response;
```

```
import requests

headers = {'x-access-token': 'your-api-key'}
params = [('types[]', 'fiat'), ('types[]', 'stocks'), ('limit', 10)]
response = requests.get(
    'https://api.coinranking.com/v2/assets',
    headers=headers,
    params=params,
)

print(response.text)
```


## Response

```
HTTP/1.1 200 OK
{
  "status": "success",
  "data": {
    "fiat": [
      {
        "uuid": "nZY8MfaFVjFUf",
        "symbol": "CNH",
        "name": "Chinese Yuan",
        "type": "fiat",
        "color": "#fcdc44",
        "iconUrl": "https://cdn.coinranking.com/yIMHfDY76/cnh.svg",
        "marketCap": "51769256347210",
        "price": "0.14910929562259842",
        "listedAt": 1589224800,
        "change": "0.09",
        "sparkline": [
          "0.14896525013127562",
          "0.14892010585241122",
          "0.1489248075668099",
          "0.14913486862709424"
        ],
        "allTimeHigh": {
          "price": "0.15548454404004358",
          "timestamp": 1609891200
        },
        "24hVolume": "0",
        "coinrankingUrl": "https://coinranking.com/fiat/nZY8MfaFVjFUf+chineseyuan-cnh"
      }
    ],
    "wrapped": [
      {
        "uuid": "CiixT63n3",
        "symbol": "wstETH",
        "name": "Wrapped liquid staked Ether 2.0",
        "type": "wrapped",
        "color": "#70b9dc",
        "iconUrl": "https://cdn.coinranking.com/LQg69oxqx/wstETH.PNG",
        "marketCap": "12598228477",
        "price": "3385.6432305844396",
        "listedAt": 1638756833,
        "change": "2.87",
        "sparkline": [
          "3286.462768789981",
          "3305.704312749915",
          "3319.760741573033",
          "3375.402395234937"
        ],
        "allTimeHigh": {
          "price": "11664.34019294299",
          "timestamp": 1738406820
        },
        "24hVolume": "5030061",
        "coinrankingUrl": "https://coinranking.com/coin/CiixT63n3+wrappedliquidstakedether20-wsteth"
      }
    ],
    "staked": [
      {
        "uuid": "VINVMYf0u",
        "symbol": "stETH",
        "name": "Lido Staked Ether",
        "type": "staked",
        "color": "#41c0f5",
        "iconUrl": "https://cdn.coinranking.com/UJ-dQdgYY/8085.png",
        "marketCap": "26560027279",
        "price": "2697.366677100907",
        "listedAt": 1627012680,
        "change": "2.55",
        "sparkline": [
          "2625.1099998663385",
          "2637.017763150984",
          "2646.0134433365615",
          "2690.5698587315483"
        ],
        "allTimeHigh": {
          "price": "5455.843963898697",
          "timestamp": 1636761600
        },
        "24hVolume": "5055977",
        "coinrankingUrl": "https://coinranking.com/coin/VINVMYf0u+lidostakedether-steth"
      }
    ],
    "commodities": [
      {
        "uuid": "YOGFcFnKEHN7",
        "symbol": "GOLD",
        "name": "Gold",
        "type": "commodities",
        "color": "#fce3ab",
        "iconUrl": "https://cdn.coinranking.com/7peSpvC2F/gold.svg",
        "marketCap": "29305176736585",
        "price": "4145.200195",
        "listedAt": 946857600,
        "change": "-0.33",
        "sparkline": [
          "4156.899902",
          "4158.299805",
          "4152.299805",
          "4141.100098"
        ],
        "allTimeHigh": {
          "price": "5522.799805",
          "timestamp": 1769558400
        },
        "24hVolume": "0",
        "coinrankingUrl": "https://coinranking.com/commodities/YOGFcFnKEHN7+gold-gold"
      }
    ],
    "indices": [
      {
        "uuid": "U9Vr_skh4",
        "symbol": "GSPC",
        "name": "S&P 500 Index",
        "type": "indices",
        "color": "#e48c94",
        "iconUrl": "https://cdn.coinranking.com/2AfVKiej2/s-and-p-500.svg",
        "marketCap": "65251327965694",
        "price": "7683.69",
        "listedAt": 946684800,
        "change": "-0.77",
        "sparkline": [
          "7743.41",
          "7743.41",
          "7743.41",
          "7683.69"
        ],
        "allTimeHigh": {
          "price": "7815.22",
          "timestamp": 1786632060
        },
        "24hVolume": "0",
        "coinrankingUrl": "https://coinranking.com/indices/U9Vr_skh4+s-and-p500index-gspc"
      }
    ],
    "stocks": [
      {
        "uuid": "hg0x52gV6",
        "symbol": "NVDA",
        "name": "NVIDIA Corporation",
        "type": "stocks",
        "color": "#74bc04",
        "iconUrl": "https://cdn.coinranking.com/DKgIFXEIA/nvidia.svg",
        "marketCap": "5562213440000",
        "price": "228.86",
        "listedAt": 916963200,
        "change": "1.68",
        "sparkline": [
          "225.07",
          "225.07",
          "225.07",
          "228.86"
        ],
        "allTimeHigh": {
          "price": "235.74000549316406",
          "timestamp": 1778716800
        },
        "24hVolume": "0",
        "coinrankingUrl": "https://coinranking.com/stocks/hg0x52gV6+nvidiacorporation-nvda"
      }
    ]
  },
  "pagination": {
    "limit": 50,
    "hasNextPage": true,
    "hasPreviousPage": false,
    "nextCursor": "eyJ2ZXJzaW9uIjoxLC...",
    "previousCursor": null
  }
}
```


## Response fields

| Property | Description |
| --- | --- |
| status String | Status of the request Allowed values:  success |
| data Object | Assets grouped by type. The response does not include aggregate statistics or ranks. |
| data.fiat Object[] | List of fiat currencies. The array is empty when fiat was not requested or has no results on the current page. |
| data.wrapped Object[] | List of wrapped tokens. The array is empty when wrapped was not requested or has no results on the current page. |
| data.staked Object[] | List of staked tokens. The array is empty when staked was not requested or has no results on the current page. |
| data.commodities Object[] | List of commodities. The array is empty when commodities were not requested or have no results on the current page. |
| data.indices Object[] | List of market indices. The array is empty when indices were not requested or have no results on the current page. |
| data.stocks Object[] | List of stocks. The array is empty when stocks were not requested or have no results on the current page. |
| data.*.uuid String | UUID of the asset |
| data.*.symbol String/null | Currency or ticker symbol of the asset. Returns null when no symbol is available. |
| data.*.name String | Name of the asset |
| data.*.type String | Type of the asset and the name of the array in which it is returned Allowed values:  fiat wrapped staked commodities indices stocks |
| data.*.color String/null | Main HEX color of the asset. Returns null when no color is available. |
| data.*.iconUrl String/null | Location of the icon. Replace .svg with .png or .webp, optionally with ?size=WIDTHxHEIGHT (e.g. ?size=28x28) to control dimensions. Returns null when no icon is available. See Icons for more details. |
| data.*.marketCap String/null | Market capitalization expressed in the selected reference currency. Returns null when no market-cap data is available. |
| data.*.price String/null | Current price expressed in the selected reference currency. Returns null when no price is available. |
| data.*.listedAt Number/null | Epoch timestamp in seconds of when we started listing the asset. Returns null when the listing time is unknown. |
| data.*.change String/null | Price change percentage over the last 24 hours. Returns null when the change cannot be calculated. |
| data.*.sparkline (String/null)[] | Array of prices over the last 24 hours, expressed in the selected reference currency and useful for displaying a sparkline. Missing price points are returned as null. |
| data.*.allTimeHigh Object | The highest recorded price of the asset and when it was reached |
| data.*.allTimeHigh.price String/null | The highest recorded price expressed in the selected reference currency. Returns null when no all-time-high data is available. |
| data.*.allTimeHigh.timestamp Number/null | Epoch timestamp in seconds of when the asset reached its highest price. Returns null when no all-time-high data is available. |
| data.*.24hVolume String/null | Trading volume over the last 24 hours, expressed in the selected reference currency. Returns null when no volume data is available. |
| data.*.coinrankingUrl String | Location of the type-specific asset page on coinranking.com |
| pagination Object | Pagination information shared by all selected asset types. See Pagination for more details. |
| pagination.limit Number | The maximum number of results requested for each selected asset type |
| pagination.hasNextPage Boolean | Whether at least one selected asset type has more results after the current page |
| pagination.hasPreviousPage Boolean | Whether a previous grouped page is available |
| pagination.nextCursor String/null | Cursor to use for the next grouped page, or null when none of the selected asset types has more results |
| pagination.previousCursor String/null | Cursor to use for the previous grouped page, or null when the current page is the first page |


## Error response

```
HTTP/1.1 422 Unprocessable Entity
{
  "status": "fail",
  "type": "INVALID_CURSOR",
  "message": "The provided cursor is invalid or malformed"
}
```


### Error responses

| Error | Description |
| --- | --- |
| VALIDATION_ERROR Object | The request could not be validated. The response provides more details. |
| REFERENCE_UNAVAILABLE Object | The requested reference currency is not available. Choose another UUID. |
| INVALID_CURSOR Object | The cursor is malformed or could not be decoded. Start pagination from the beginning without a cursor. |
| CURSOR_MISMATCH Object | The cursor was created with different types or limit values. Match the original values or start pagination from the beginning. |
| PAGINATION_CONFLICT Object | A cursor and a non-zero offset were provided together. Use only one pagination method per request. |
| OFFSET_TOO_LARGE Object | The offset exceeds the maximum of 5000. Offset-based pagination is deprecated; use cursor-based pagination for deeper results. |

---

# Icon URLs | Coinranking API Documentation


# Icons

Most resources returned by the API expose an iconUrl field — coins, exchanges,
markets, fiat currencies, categories, indices and commodities all include one.
The value is an SVG hosted on our CDN, for example:

```
https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg
```

SVG renders crisply at any resolution and is the right choice for most web
clients. For native mobile apps, embedded views, email templates, and
rendering pipelines that can't reliably parse SVG, request a raster format
instead — Coinranking's CDN converts on demand.


## Convert format

Replace the .svg extension with .png or .webp. No other change is needed
and the response is cached at the edge.

| URL | Content type |
| --- | --- |
| https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.svg | image/svg+xml |
| https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.png | image/png |
| https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.webp | image/webp |

Use WebP when your target supports it (modern browsers, recent iOS/Android)
— it's typically 30-60% smaller than PNG for the same icon. Fall back to PNG
when broad compatibility matters (email, legacy clients, image-processing
tooling).


## Request a size

Append ?size=WIDTHxHEIGHT to the PNG or WebP URL to get the icon rendered at
exact pixel dimensions:

```
https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.png?size=28x28
https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.webp?size=28x28
```

Common sizes for retina-aware layouts:

```
<img
  src="https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.png?size=28x28"
  srcset="
    https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.png?size=28x28 1x,
    https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.png?size=56x56 2x,
    https://cdn.coinranking.com/bOabBYkcX/bitcoin_btc.png?size=84x84 3x
  "
  alt="Bitcoin"
/>
```

Only request the dimensions you actually display — smaller sizes are cheaper to
generate and quicker to load.


## When to use which

- SVG — web pages and any client that renders SVG natively. Single asset,
scales perfectly, smallest payload at small sizes.
- PNG — native iOS/Android, email, server-side rendering, any tooling that
can't reliably parse SVG. Combine with ?size= and srcset for sharp icons
at 2x/3x density.
- WebP — best size/quality trade-off when the client supports it. Same
?size= parameter applies.

The conversion endpoints work for every resource's iconUrl, not just coins —
the same rules apply to exchanges, markets, categories, fiat currencies,
indices and commodities.

---

# API Playground | Coinranking API Documentation


# Playground

The API playground is a great way to quickly explore and experiment with the API. It's an interactive environment that allows you to easily test if our API is useful for you, by creating small code snippets and viewing the results in real time.


## Bitcoin price widget example

In this example, we made a small widget for you to play around with. Currently it fetches data about Bitcoin from our API, and it renders the icon and the price. Feel free to edit around, or copy it to use it on your own site. There is a limited amount of requests you can do without an API key, so be sure to generate one for free!

See the Pen 
bitcoin price widget (@coinranking)
  on CodePen.
