import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getMarketSnapshot('MARKET_TICKER');
curl --request GET \
--url https://prediction-market-api.solanatracker.io/v1/markets/{ticker}/snapshot \
--header 'x-api-key: <api-key>'import requests
url = "https://prediction-market-api.solanatracker.io/v1/markets/{ticker}/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/{ticker}/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/{ticker}/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/{ticker}/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/{ticker}/snapshot")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prediction-market-api.solanatracker.io/v1/markets/{ticker}/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
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. Path accepts Kalshi ticker or Polymarket condition_id (CLOB token ids for some book endpoints).
import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getMarketSnapshot('MARKET_TICKER');
curl --request GET \
--url https://prediction-market-api.solanatracker.io/v1/markets/{ticker}/snapshot \
--header 'x-api-key: <api-key>'import requests
url = "https://prediction-market-api.solanatracker.io/v1/markets/{ticker}/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/{ticker}/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/{ticker}/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/{ticker}/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/{ticker}/snapshot")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prediction-market-api.solanatracker.io/v1/markets/{ticker}/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.getMarketSnapshot('MARKET_TICKER');
授权
Solana Tracker Data API key
路径参数
Kalshi ticker or Polymarket condition_id
查询参数
Force exchange; auto-detect if omitted
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 >= 0响应
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
此页面对您有帮助吗?