API DOCS
MarsEdge
Authentication
VIP Pro users can generate an API key on the Account page and send it in a request header.
X-API-Key: pk_live_xxx
Bearer authentication is also supported: Authorization: Bearer pk_live_xxx
Endpoints
These are the three primary endpoints for integrations and automation.
GET /api/keys/verify
Verify an API key and return userId, plan, maskedKey and lastUsedAt.
GET /api/probboard/latest
Get the current probability board, including model probabilities, bid/ask prices, seconds remaining and Polymarket UP/DOWN token IDs. Guest and Free plans poll this endpoint; VIP integrations can use it too.
GET /api/probboard/stream
VIP Pro real-time Server-Sent Events stream for automation and live dashboards.
Request parameters
The core endpoints currently require no query parameters. Authentication is header-based.
GET /api/keys/verify
No query parameters. Send the API key in a header.
GET /api/probboard/latest
No query parameters. The response contains the full board; filter by symbol in your client.
GET /api/probboard/stream
No query parameters. Keep the SSE connection open to receive the full board continuously.
curl examples
curl -H "X-API-Key: pk_live_xxx" \ https://marsedge.vip/api/keys/verify
curl -H "X-API-Key: pk_live_xxx" \ https://marsedge.vip/api/probboard/latest
curl -N -H "X-API-Key: pk_live_xxx" \ https://marsedge.vip/api/probboard/stream
Node.js example
const res = await fetch('https://marsedge.vip/api/probboard/latest', {
headers: {
'X-API-Key': 'pk_live_xxx'
}
});
const data = await res.json();
console.log(data.plan, data.refreshMs, data.items);Python example
import requests
headers = {
'X-API-Key': 'pk_live_xxx'
}
res = requests.get('https://marsedge.vip/api/probboard/latest', headers=headers, timeout=10)
res.raise_for_status()
data = res.json()
print(data['plan'], data['refreshMs'])
for item in data['items']:
if item['symbol'] == 'BTC':
print('BTC up:', item['p_up_pct'], 'down:', item['p_down_pct'])SSE example
import requests
import sseclient
headers = {
'X-API-Key': 'pk_live_xxx',
'Accept': 'text/event-stream'
}
resp = requests.get('https://marsedge.vip/api/probboard/stream', headers=headers, stream=True, timeout=30)
resp.raise_for_status()
client = sseclient.SSEClient(resp)
for event in client.events():
if event.event == 'board':
print(event.data)Python dependency: pip install requests sseclient-py
Response fields
{
"ok": true,
"plan": "vip_pro",
"refreshMs": 500,
"updatedAt": "2026-04-27 14:00:00.000",
"items": [
{
"symbol": "BTC",
"p_up_pct": 74.8,
"p_down_pct": 25.2,
"up_bid": 0.71,
"up_ask": 0.73,
"down_bid": 0.27,
"down_ask": 0.29,
"up_token_id": "112799310392536879678714747558491180025439364374789444912205342876076197927272",
"down_token_id": "104719069133742642299341118922517353698093833239753088353559201498216640910648",
"rem_secs": 118
}
]
}