beyondMarket Platform
Developer quickstart
Make your first API request in minutes. Learn the basics of the beyondMarket platform.
Get startedimport { beyondMarket } from '@beyondmarket/sdk';
const client = new beyondMarket({
apiKey: process.env.BEYONDMARKET_API_KEY
});
const markets = await client.markets.list();
console.log(markets);Products
View allMarket Data
Normalized markets, outcomes, and metadata. GET /api/v1/crypto/markets, /api/v1/nba/today-games
Realtime Streaming
SSE fanout with heartbeat and low-latency probability streams. GET /api/v1/stream?slugs=...
AI Signals
Fair price predictions with quality overlays and confidence scoring
Intelligence API v1
Structured intelligence: snapshot, AI fair value, stages (OPEN/MID/CLOSE), history. Read-only.
Downloads
Desktop App
Cross-platform desktop terminal for macOS and Windows with real-time market data, watchlists, and alerts.
CLI Tool
Professional command-line terminal for beyondMarket. Install via npm.
npm install -g @beyondmarket/terminal-cliexport BEYONDMARKET_API_KEY=your_api_key_here
bm watchLive Market Preview
Demo data shown. Connect your API key to stream live markets.
View Live MarketsUse Cases
Quant & Research
Build trading algorithms and backtest strategies with normalized market data
Sports Trading Analytics
Real-time odds analysis and arbitrage detection for sports markets
Market Monitoring & Alerting
Set up alerts for price movements and AI signal changes
Product Analytics & Experiments
A/B test prediction models and measure calibration accuracy
How it works
Discover markets
GET /api/v1/crypto/markets | GET /api/v1/nba/today-gamesStream probabilities
GET /api/v1/stream?slugs=btc-15m,eth-15mAdd intelligence
GET /api/v1/intelligence/market/:slug
POST /api/v1/intelligence/batchIntelligence responses include snapshot, AI fair value, unified stages (OPEN / MID / CLOSE), and compact history. Works even when the AI model is not wired yet (deterministic placeholder).
Intelligence API v1 (Read-only)
What This API Is
The Intelligence API is a read-only market intelligence layer on top of Polymarket data. It delivers time-aligned AI vs market comparison at fixed stage points (OPEN, MID, CLOSE), so you can build analysis, dashboards, and research workflows. It does not execute trades or accept orders.
Core Concept: Projected → Observed
Projected means the AI fair probability at a given stage before the market has reached that time—a forward-looking estimate. Observed means the market probability that was actually recorded at or near that stage time—a confirmed outcome. This split makes AI signals verifiable and trustworthy: you can compare what the AI believed at OPEN or MID against what the market did later, without hindsight bias or backfilling.
All stage points are explicitly marked as projected or observed; the transition from projected to observed is the proof mechanism.
Available Endpoints
All examples use a configurable BASE_URL (e.g. your EC2 or Worker URL).
GET /api/v1/intelligence/overview— List available intelligence endpoints and schema version.GET /api/v1/intelligence/market/:slug— Full intelligence payload for one market (snapshot, AI fair, stages, optional history).POST /api/v1/intelligence/batch— Same payload for multiple slugs in one request.GET /api/v1/intelligence/market/:slug/stages— Stages only (OPEN, MID, CLOSE) with projected/observed state.GET /api/v1/intelligence/market/:slug/history— Bucketed time-series history for the market.
Quick Start (Minimal Example)
Fastest way to see live data: set BASE_URL, pick a slug from markets, then stream.
BASE_URL="https://YOUR_API_HOST"
# Get a current market slug (e.g. BTC 15m)
SLUG=$(curl -s "$BASE_URL/api/v1/crypto/markets" | jq -r '.markets[0].slug')
echo "Slug: $SLUG"
# Stream live updates (SSE)
curl -sN "$BASE_URL/api/v1/stream?slugs=$SLUG"Advanced Example: Full Intelligence Payload (BTC 15m)
Full flow: resolve a recent BTC 15m slug, optionally warm realtime state so snapshot and history are populated, then fetch the full intelligence payload with stages and history.
BASE_URL="https://YOUR_API_HOST"
# Resolve a recent BTC 15m market (epoch within last 15 minutes)
NOW=$(date +%s)
SLUG=$(curl -s "$BASE_URL/api/v1/crypto/markets" \
| jq -r --argjson now "$NOW" '
.markets[]
| select(.slug|test("^btc-updown-15m-"))
| (.slug|capture("-(?<e>[0-9]{10})$").e|tonumber) as $e
| select($e <= $now and $e >= ($now - 900))
| .slug
' | sort -t- -k4,4n | tail -1)
echo "Using SLUG=$SLUG"
# Optional: warm realtime state so snapshot/history have recent data
curl -sN --max-time 8 "$BASE_URL/api/v1/stream?slugs=$SLUG" > /dev/null
# Fetch full intelligence (market ref, snapshot, AI fair, stages, history)
curl -s "$BASE_URL/api/v1/intelligence/market/$SLUG?include=stages,history" | jq .Stages Explained
Stage anchors (always in order OPEN → MID → CLOSE):
- OPEN — At market start.
- MID — At the midpoint of the market window.
- CLOSE — At market end.
Stage modes:
UPCOMING_PREVIEW— Market has not started; stages are preview only.ACTIVE_ESTIMATE— Market is active; OPEN/MID may be projected or observed, CLOSE projected.EXPIRED_FINAL— Market has ended; all stages that have history are observed.
Projected vs Observed in Practice
A stage point is projected when there is no confirmed market price at that time yet; the API may fill in AI fair and/or current snapshot as an estimate. When a real market observation exists within the stage tolerance, the point becomes observed: observedAtMs is set and projected is false. The transition from projected to observed is how you verify that the AI estimate was recorded before the outcome—no backfilling, no hindsight bias.
If observedAtMs is null, the stage is projected. If it is populated, the stage is observed and the value is the timestamp of the observation used.
Projected → Observed: How We Prove AI Leads the Market
This is where prediction becomes evidence
Projected values show AI expectations in real time. Observed values show how the market eventually priced the outcome. The gap between them is the measurable edge.
The diagram above shows AI projected (dashed line) vs market observed (dots) and the validation moment at MID. Use the interactive timeline below to toggle "Show only projected" vs "Show observed when available" or click "Animate CLOSE: projected → observed" to see the transition.
Projected → Observed: Verifiable AI Signals
Time flows left → right. Each stage is either projected (before the fact) or observed (market-confirmed).
OPEN
Market start
Observed
Market-confirmed price
at 10:30:02
MID
Midpoint
Observed
Market-confirmed price
at 10:37:32
57.0%
CLOSE
Market end
Projected
AI estimate before market reached this time
Example: MID stage
AI Fair (Projected)
54.0%
Predicted before MID timestamp
Edge
→ -3.0%
AI − Market
Market (Observed)
57.0%
Actual market probability at MID
Projected values show what the AI believed at that moment in time. Observed values show what the market actually priced once that moment arrived. This transition makes every AI signal auditable and verifiable.
Stability & Guarantees
- All responses include
schemaVersionso clients can parse safely and evolve with the API. - AI fair values use deterministic per-slug placeholders until real models are wired; behavior is stable and reproducible.
- Intelligence endpoints are read-only and side-effect free.
Authentication Notes
All Intelligence API endpoints listed above are public today: no API key or auth header is required. API keys are reserved for future or premium endpoints; when required, documentation will specify the header (e.g. Authorization: Bearer <key>).
Developer Quickstart
Get Started
1. Get your API key
Contact us to obtain your API key for authenticated endpoints.
2. Call REST API
Use GET /api/v1/crypto/markets or GET /api/v1/nba/today-games. Authenticated endpoints use Authorization: Bearer {apiKey}.
3. Stream real-time data
Connect to GET /api/v1/stream?slugs=... via SSE. Long-lived connections, not rate-limited.
cURL
Set BASE_URL to your deployment (EC2, Worker, etc.), then:
BASE_URL="https://api.beyondmarket.com"
# Get markets (crypto or NBA)
curl "$BASE_URL/api/v1/crypto/markets"
curl "$BASE_URL/api/v1/nba/today-games"
# Stream probabilities (slugs from markets above, e.g. btc-updown-15m-<epoch>)
curl -N "$BASE_URL/api/v1/stream?slugs=btc-updown-15m-1769673600"JavaScript
const BASE_URL = 'https://api.beyondmarket.com';
// Use a slug from GET /api/v1/crypto/markets (e.g. btc-updown-15m-<epoch>)
const slugs = 'btc-updown-15m-1769673600';
const eventSource = new EventSource(
`${BASE_URL}/api/v1/stream?slugs=${slugs}`
);
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('Market update:', data);
};Build on beyondMarket
Get started with our APIs in minutes. No credit card required.
Read-only. No trading. No API keys required for public endpoints in dev.