import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getMarketSnapshotBySlug('MARKET_SLUG');
curl --request GET \
--url https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot \
--header 'x-api-key: <api-key>'import requests
url = "https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot', 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://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot",
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-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://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-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://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"market": {
"exchange": "polymarket",
"hasDepth": true,
"id": "<string>",
"isTradable": true,
"marketKind": "binary",
"outcomes": [
{
"label": "<string>",
"price": 123
}
],
"pricingMode": "orderbook",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"volume": 123,
"category": "<string>",
"clobTokenIds": [
"<string>"
],
"closeDate": "<string>",
"collectionId": "<string>",
"comboEligible": true,
"comboGroup": "<string>",
"createdAt": "<string>",
"description": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTicker": "<string>",
"eventTitle": "<string>",
"gammaMarketId": "<string>",
"groupItemTitle": "<string>",
"icon": "<string>",
"image": "<string>",
"legCount": 1,
"legs": [
{
"label": "<string>",
"side": "yes",
"eventDate": "<string>",
"exclusionGroup": "<string>",
"lifecycleStatus": "<string>",
"officialLegId": "<string>",
"positionId": "<string>",
"sport": "<string>",
"underlyingMarketId": "<string>",
"underlyingTitle": "<string>"
}
],
"line": 123,
"liquidity": 123,
"materializationState": "<string>",
"openInterest": 1,
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"parentEventUrl": "<string>",
"rawTitle": "<string>",
"seriesTicker": "<string>",
"seriesTitle": "<string>",
"settlementRule": "<string>",
"sportsMarketType": "<string>",
"tags": [
"<string>"
],
"ticker": "<string>",
"tradeCount24h": 1,
"url": "<string>",
"volume24h": 123
},
"midpoint": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"midpoint": 123
},
"openInterest": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"totalTrades": 1,
"totalVolumeTokens": 123,
"uniqueHolders": 1,
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"openInterest": 1
},
"orderbook": {
"estimated": true,
"source": "<string>",
"stale": true,
"asks": [
{
"price": 123,
"size": 123
}
],
"bids": [
{
"price": 123,
"size": 123
}
],
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"midpoint": 123,
"spread": 123
},
"price": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"ask": 123,
"bid": 123,
"change24h": 123,
"lastTradePrice": 123,
"price": 123,
"volume24h": 123
},
"recentTrades": {
"count": 1,
"data": [
{
"exchange": "polymarket",
"id": "<string>",
"marketId": "<string>",
"price": 123,
"quantity": 123,
"side": "<string>",
"timestampMs": 123,
"countFp": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"image": "<string>",
"isCombo": true,
"noPrice": 123,
"noPriceDollars": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"quantityE2": 123,
"traderAddress": "<string>",
"traderUsername": "<string>",
"txHash": "<string>",
"yesPrice": 123,
"yesPriceDollars": "<string>",
"yesPriceE6": 123
}
],
"hasMore": true,
"cursor": "<string>"
},
"related": [
{
"exchange": "polymarket",
"hasDepth": true,
"id": "<string>",
"isTradable": true,
"marketKind": "binary",
"outcomes": [
{
"label": "<string>",
"price": 123
}
],
"pricingMode": "orderbook",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"volume": 123,
"category": "<string>",
"clobTokenIds": [
"<string>"
],
"closeDate": "<string>",
"collectionId": "<string>",
"comboEligible": true,
"comboGroup": "<string>",
"createdAt": "<string>",
"description": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTicker": "<string>",
"eventTitle": "<string>",
"gammaMarketId": "<string>",
"groupItemTitle": "<string>",
"icon": "<string>",
"image": "<string>",
"legCount": 1,
"legs": [
{
"label": "<string>",
"side": "yes",
"eventDate": "<string>",
"exclusionGroup": "<string>",
"lifecycleStatus": "<string>",
"officialLegId": "<string>",
"positionId": "<string>",
"sport": "<string>",
"underlyingMarketId": "<string>",
"underlyingTitle": "<string>"
}
],
"line": 123,
"liquidity": 123,
"materializationState": "<string>",
"openInterest": 1,
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"parentEventUrl": "<string>",
"rawTitle": "<string>",
"seriesTicker": "<string>",
"seriesTitle": "<string>",
"settlementRule": "<string>",
"sportsMarketType": "<string>",
"tags": [
"<string>"
],
"ticker": "<string>",
"tradeCount24h": 1,
"url": "<string>",
"volume24h": 123
}
],
"spread": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"ask": 123,
"bid": 123,
"spread": 123
}
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}Bundled market snapshot by slug
Returns market plus optional sections. Default include is lean: price,midpoint. Pass include=all or an explicit list for the full bundle. Sets X-Cache header.
import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getMarketSnapshotBySlug('MARKET_SLUG');
curl --request GET \
--url https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot \
--header 'x-api-key: <api-key>'import requests
url = "https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot', 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://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot",
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-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://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-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://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prediction-market-api.solanatracker.io/v1/markets/slug/{slug}/snapshot")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"market": {
"exchange": "polymarket",
"hasDepth": true,
"id": "<string>",
"isTradable": true,
"marketKind": "binary",
"outcomes": [
{
"label": "<string>",
"price": 123
}
],
"pricingMode": "orderbook",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"volume": 123,
"category": "<string>",
"clobTokenIds": [
"<string>"
],
"closeDate": "<string>",
"collectionId": "<string>",
"comboEligible": true,
"comboGroup": "<string>",
"createdAt": "<string>",
"description": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTicker": "<string>",
"eventTitle": "<string>",
"gammaMarketId": "<string>",
"groupItemTitle": "<string>",
"icon": "<string>",
"image": "<string>",
"legCount": 1,
"legs": [
{
"label": "<string>",
"side": "yes",
"eventDate": "<string>",
"exclusionGroup": "<string>",
"lifecycleStatus": "<string>",
"officialLegId": "<string>",
"positionId": "<string>",
"sport": "<string>",
"underlyingMarketId": "<string>",
"underlyingTitle": "<string>"
}
],
"line": 123,
"liquidity": 123,
"materializationState": "<string>",
"openInterest": 1,
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"parentEventUrl": "<string>",
"rawTitle": "<string>",
"seriesTicker": "<string>",
"seriesTitle": "<string>",
"settlementRule": "<string>",
"sportsMarketType": "<string>",
"tags": [
"<string>"
],
"ticker": "<string>",
"tradeCount24h": 1,
"url": "<string>",
"volume24h": 123
},
"midpoint": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"midpoint": 123
},
"openInterest": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"totalTrades": 1,
"totalVolumeTokens": 123,
"uniqueHolders": 1,
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"openInterest": 1
},
"orderbook": {
"estimated": true,
"source": "<string>",
"stale": true,
"asks": [
{
"price": 123,
"size": 123
}
],
"bids": [
{
"price": 123,
"size": 123
}
],
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"midpoint": 123,
"spread": 123
},
"price": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"ask": 123,
"bid": 123,
"change24h": 123,
"lastTradePrice": 123,
"price": 123,
"volume24h": 123
},
"recentTrades": {
"count": 1,
"data": [
{
"exchange": "polymarket",
"id": "<string>",
"marketId": "<string>",
"price": 123,
"quantity": 123,
"side": "<string>",
"timestampMs": 123,
"countFp": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"image": "<string>",
"isCombo": true,
"noPrice": 123,
"noPriceDollars": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"quantityE2": 123,
"traderAddress": "<string>",
"traderUsername": "<string>",
"txHash": "<string>",
"yesPrice": 123,
"yesPriceDollars": "<string>",
"yesPriceE6": 123
}
],
"hasMore": true,
"cursor": "<string>"
},
"related": [
{
"exchange": "polymarket",
"hasDepth": true,
"id": "<string>",
"isTradable": true,
"marketKind": "binary",
"outcomes": [
{
"label": "<string>",
"price": 123
}
],
"pricingMode": "orderbook",
"slug": "<string>",
"status": "<string>",
"title": "<string>",
"volume": 123,
"category": "<string>",
"clobTokenIds": [
"<string>"
],
"closeDate": "<string>",
"collectionId": "<string>",
"comboEligible": true,
"comboGroup": "<string>",
"createdAt": "<string>",
"description": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTicker": "<string>",
"eventTitle": "<string>",
"gammaMarketId": "<string>",
"groupItemTitle": "<string>",
"icon": "<string>",
"image": "<string>",
"legCount": 1,
"legs": [
{
"label": "<string>",
"side": "yes",
"eventDate": "<string>",
"exclusionGroup": "<string>",
"lifecycleStatus": "<string>",
"officialLegId": "<string>",
"positionId": "<string>",
"sport": "<string>",
"underlyingMarketId": "<string>",
"underlyingTitle": "<string>"
}
],
"line": 123,
"liquidity": 123,
"materializationState": "<string>",
"openInterest": 1,
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"parentEventUrl": "<string>",
"rawTitle": "<string>",
"seriesTicker": "<string>",
"seriesTitle": "<string>",
"settlementRule": "<string>",
"sportsMarketType": "<string>",
"tags": [
"<string>"
],
"ticker": "<string>",
"tradeCount24h": 1,
"url": "<string>",
"volume24h": 123
}
],
"spread": {
"estimated": true,
"source": "<string>",
"stale": true,
"exchange": "polymarket",
"marketId": "<string>",
"timestamp": "<string>",
"indexedAt": "<string>",
"sourceUpdatedAt": "<string>",
"unavailableReason": "<string>",
"ask": 123,
"bid": 123,
"spread": 123
}
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}SDK Example
import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getMarketSnapshotBySlug('MARKET_SLUG');
Autorizaciones
Solana Tracker Data API key
Parámetros de ruta
Market slug
Parámetros de consulta
kalshi, polymarket, or poly
Comma-separated sections: price,midpoint,spread,oi,orderbook,trades,related — or all (default price,midpoint)
Max recent trades when include has trades (default 50, max 200)
x >= 0Orderbook levels per side (default 10, max 50)
x >= 0Max related markets (default 10, max 50)
x >= 0Respuesta
Market snapshot
Bundled market detail for the market detail page.
A single market in normalized form.
Polymarket markets in grouped events include eventId, eventSlug, groupItemTitle,
description, image, and icon. Kalshi markets include eventTicker and optional kalshi metadata.
Show child attributes
Show child attributes
Midpoint price for a market.
Show child attributes
Show child attributes
Aggregated open interest for a market.
Show child attributes
Show child attributes
Orderbook snapshot for a market.
Show child attributes
Show child attributes
Current price snapshot for a market.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Spread for a market.
Show child attributes
Show child attributes
¿Esta página le ayudó?