API Overview
The Polystrike API is designed for low-latency access to prediction market metadata and signals.
Infrastructure
Section titled “Infrastructure”All endpoints are hosted on high-performance bare-metal servers to ensure maximum uptime and minimal response times.
Base URL: https://polystrike.xyz/api/v1
Authentication
Section titled “Authentication”Endpoints are either Public (no key needed) or Pro (requires X-API-Key header).
- Public (Anonymous): Free access to metadata/counters. Rate limited to 100 requests/hour.
- Pro ($79/mo): Full access to predictions, signals, and portfolio analysis. Rate limited to 10,000 requests/hour.
Access Methods
Section titled “Access Methods”Direct HTTP API (this documentation):
curl -H "X-API-Key: ps_pro_..." https://polystrike.xyz/api/v1/prediction/elonOpenAPI Specification (for automated discovery):
curl https://polystrike.xyz/openapi.jsonThe OpenAPI spec provides machine-readable documentation of all endpoints, parameters, authentication schemes, and response types. Use it to:
- Generate client libraries in any language
- Integrate with AI agents and automated systems
- Understand the API structure programmatically
MCP Server (for Claude Desktop users): Natural language access through the Model Context Protocol. See MCP Server Setup for configuration.
To upgrade to Pro:
- Telegram: @dizpers
- X: @dizpers
- Email:
[email protected](Subject: Polystrike PRO)
Response Format
Section titled “Response Format”All responses are standard JSON. Timestamps are UTC Milliseconds.
{ "timestamp": 1770188662000, "data": [ ... ]}Rate Limits
Section titled “Rate Limits”| Tier | Limit |
|---|---|
| Anonymous | 100 req/hour (by IP) |
| Pro | 10,000 req/hour (by Key) |
Feature Comparison by Tier
Section titled “Feature Comparison by Tier”Below is the exact field visibility for each endpoint.
GET /meta/elon — Public (No Key)
Section titled “GET /meta/elon — Public (No Key)”| Field | Anonymous | Pro |
|---|---|---|
event_id | ✅ | ✅ |
event_title | ✅ | ✅ |
start_ts | ✅ | ✅ |
end_ts | ✅ | ✅ |
polymarket_xtracker_counter | ✅ | ✅ |
real_counter | ✅ | ✅ |
polymarket_ui_counter | ✅ | ✅ |
settlement_delta | ✅ | ✅ |
display_delta | ✅ | ✅ |
internal_delta | ✅ | ✅ |
GET /meta/elon/tweets — Public (Rate Limited)
Section titled “GET /meta/elon/tweets — Public (Rate Limited)”| Field | Anonymous | Pro |
|---|---|---|
tweet_id | ✅ | ✅ |
text | ✅ | ✅ |
created_ts | ✅ | ✅ |
referenced_text | ✅ | ✅ |
referenced_author_id | ✅ | ✅ |
is_reply | ✅ | ✅ |
is_quote | ✅ | ✅ |
is_retweet | ✅ | ✅ |
is_counted | null | ✅ |
GET /prediction/elon — Public (Rate Limited)
Section titled “GET /prediction/elon — Public (Rate Limited)”| Field | Anonymous | Pro |
|---|---|---|
event_id | ✅ | ✅ |
event_title | ✅ | ✅ |
polymarket_xtracker_counter | ✅ | ✅ |
polymarket_ui_counter | ✅ | ✅ |
real_counter | ✅ | ✅ |
settlement_delta | ✅ | ✅ |
display_delta | ✅ | ✅ |
internal_delta | ✅ | ✅ |
seconds_remaining | ✅ | ✅ |
sleep_probability | ✅ | ✅ |
markets[].title | ✅ | ✅ |
markets[].market_price | ✅ | ✅ |
markets[].model_prob | ❌ | ✅ |
forecast.p5 | ❌ | ✅ |
forecast.p50 | ❌ | ✅ |
forecast.p95 | ❌ | ✅ |
markets[].edge | ❌ | ✅ |
markets[].signal | ❌ | ✅ |
GET /signals/elon — Pro Only (401 without key)
Section titled “GET /signals/elon — Pro Only (401 without key)”Optional query parameter: ?bankroll=100 — sizes suggested_bet to your bankroll via Kelly criterion.
| Field | Anonymous | Pro |
|---|---|---|
event_id | ❌ 401 | ✅ |
event_title | ❌ 401 | ✅ |
signals[].bucket | ❌ 401 | ✅ |
signals[].action | ❌ 401 | ✅ |
signals[].model_prob | ❌ 401 | ✅ |
signals[].market_price | ❌ 401 | ✅ |
signals[].edge | ❌ 401 | ✅ |
signals[].ev | ❌ 401 | ✅ |
signals[].kelly_fraction | ❌ 401 | ✅ |
signals[].suggested_bet | ❌ 401 | ✅ (sized to ?bankroll if provided) |
signals[].confidence | ❌ 401 | ✅ |
signals[].moneyness | ❌ 401 | ✅ |
signals[].time_confidence | ❌ 401 | ✅ |
signals[].asymmetry_edge | ❌ 401 | ✅ |
signals[].reasons | ❌ 401 | ✅ |
signals[].bankroll | ❌ 401 | ✅ |
GET /portfolio/elon?wallet=0x… — Pro Only (401 without key)
Section titled “GET /portfolio/elon?wallet=0x… — Pro Only (401 without key)”| Field | Anonymous | Pro |
|---|---|---|
wallet | ❌ 401 | ✅ |
event.id | ❌ 401 | ✅ |
event.title | ❌ 401 | ✅ |
event.end_ts | ❌ 401 | ✅ |
prediction.p5 / p50 / p95 | ❌ 401 | ✅ |
prediction.real_counter | ❌ 401 | ✅ |
prediction.seconds_remaining | ❌ 401 | ✅ |
positions[].event_id | ❌ 401 | ✅ |
positions[].bucket | ❌ 401 | ✅ |
positions[].tokens | ❌ 401 | ✅ |
positions[].avg_price | ❌ 401 | ✅ |
positions[].cost_basis | ❌ 401 | ✅ |
positions[].current_price | ❌ 401 | ✅ |
positions[].current_value | ❌ 401 | ✅ |
positions[].pnl | ❌ 401 | ✅ |
positions[].pnl_percent | ❌ 401 | ✅ |
positions[].analysis.win_probability | ❌ 401 | ✅ |
positions[].analysis.market_implied | ❌ 401 | ✅ |
positions[].analysis.edge | ❌ 401 | ✅ |
positions[].analysis.edge_percent | ❌ 401 | ✅ |
positions[].analysis.signal | ❌ 401 | ✅ |
positions[].analysis.recommendation | ❌ 401 | ✅ |
portfolio.total_positions | ❌ 401 | ✅ |
portfolio.total_cost | ❌ 401 | ✅ |
portfolio.current_value | ❌ 401 | ✅ |
portfolio.total_pnl | ❌ 401 | ✅ |
portfolio.total_pnl_percent | ❌ 401 | ✅ |