Skip to main content
GET
/
metrics
/
v1
/
markets
Get markets
curl --request GET \
  --url https://api.messari.io/metrics/v1/markets \
  --header 'X-Messari-API-Key: <api-key>'
import requests

url = "https://api.messari.io/metrics/v1/markets"

headers = {"X-Messari-API-Key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'X-Messari-API-Key': '<api-key>'}};

fetch('https://api.messari.io/metrics/v1/markets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.messari.io/metrics/v1/markets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Messari-API-Key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.messari.io/metrics/v1/markets"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("X-Messari-API-Key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.messari.io/metrics/v1/markets")
.header("X-Messari-API-Key", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.messari.io/metrics/v1/markets")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-Messari-API-Key"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "error": null,
  "data": [
    {
      "id": "6057-649-44",
      "baseAsset": {
        "id": "1e31218a-e44e-4285-820c-8282ee222035",
        "name": "Bitcoin",
        "slug": "bitcoin",
        "symbol": "BTC"
      },
      "baseAssetSector": "Cryptocurrency",
      "quoteAsset": {
        "id": "60dcd17b-00f3-49f8-907c-f390c2521c59",
        "name": "United States Dollar",
        "slug": "fedcoin",
        "symbol": "USD"
      },
      "quoteAssetSector": "",
      "exchange": {
        "id": "181f44f6-f9b7-4c11-9e44-7c7f803d808e",
        "name": "Coinbase",
        "slug": "coinbase"
      },
      "network": null,
      "sectors": [
        "Cryptocurrency"
      ],
      "firstTradeAt": "2014-12-01T06:00:00Z",
      "lastTradeAt": "2026-03-04T23:34:00Z",
      "isNewMarket": false,
      "isRecentlyListed": false,
      "liveness": "live",
      "metrics": {
        "exchangeVolumePercentage24h": 44.03,
        "latestPrice24hOpen": 68435.06,
        "latestPrice24hHigh": 74100,
        "latestPrice24hLow": 67391.17,
        "latestPrice24hClose": 72432.08,
        "premiumDiscount": -0.015,
        "volume24h": 1496297599.8,
        "tradeCount24h": 1219331
      }
    }
  ],
  "metadata": {
    "pageSize": 1,
    "page": 1,
    "totalRows": 742,
    "totalPages": 742
  }
}
{
"data": "<unknown>",
"error": "<string>"
}
{
"data": "<unknown>",
"error": "<string>"
}
{
"data": "<unknown>",
"error": "<string>"
}
x402 Support: Supported. See the x402 guide.

Authorizations

X-Messari-API-Key
string
header
required

Query Parameters

limit
integer<int64>
default:10

Number of items per page

Example:

10

pageSize
integer<int64>

Number of items per page. Kept for backward compatibility

page
integer<int64>
default:1

Page number

Example:

1

exchangeId
string
exchangeSlug
string
quoteAssetId
string
quoteAssetSlug
string
baseAssetId
string
baseAssetSlug
string
volume24hAbove
number<double>
volume24hBelow
number<double>
liveness
string

Comma-separated list of liveness statuses to filter by. Possible values:

  • live: The market has had a trade in approximately the last 10 minutes.
  • stale: The market has had a trade in the last 24 hours, but not in the last ~10 minutes.
  • inactive: The market has not had any trades for more than 24 hours.
Example:

"live,stale"

activitySince
string

Filter to markets that have had a trade since this date. Accepts RFC3339 (e.g. 2024-01-15T00:00:00Z), YYYY-MM-DD, or a unix timestamp.

Example:

"2024-01-15"

Response

Default response

data
object[]
required
error
string
metadata
object

Pagination metadata