Quick Start
The Polystrike API is paid-only. There is no free tier, no free key and no anonymous access to data endpoints. You have two ways in:
- Data key: $29 for 30 days or $290 for a year, 10,000 requests/hour, sent as the
X-API-Keyheader. - Pay per call (x402): $0.01 per call in USDC on Base, no key and no account.
Parquet files older than 30 days are open without either, in the public archive.
1. Get a Data key
Section titled “1. Get a Data key”- Send USDC on Polygon or Base to
0x2B1204Ed8152F888092cB4e25FeF6348C646C578: $29 for 30 days, or $290 for a year. - Submit the transaction hash and your email at polystrike.xyz/#waitlist, or email them to
[email protected]. - Keys are issued by hand, usually within a few hours. A key looks like
ps_pro_....
2. Read the live counters
Section titled “2. Read the live counters”curl -A "my-app/1.0" -H "X-API-Key: ps_pro_..." \ https://polystrike.xyz/api/v1/meta/trumpSend a User-Agent header: Cloudflare rejects some default client user agents (Python’s urllib, for one). The response is an object; the open market windows are in data (the numbers below are an example):
{ "timestamp": 1790795280353, "freshness": "live", "freshness_delay_sec": 0, "data": [ { "event_id": 1083675, "event_title": "Donald Trump # Truth Social posts September 29 - October 6, 2026?", "slug": "donald-trump-of-truth-social-posts-september-29-october-6-2026", "start_ts": 1790697600000, "end_ts": 1791302400000, "snapshot_ts": 1790793220392, "polymarket_xtracker_counter": 8, "real_counter": 8, "polymarket_ui_counter": 8, "settlement_delta": 0, "display_delta": 0, "internal_delta": 0 } ]}real_counteris our count,polymarket_xtracker_counteris the XTracker count the market settles on,polymarket_ui_counteris what the Polymarket page shows.- The three
*_deltafields are the gaps between them. They describe timing, not a trading signal. See Core Concepts. - Replace
trumpwithelonorcruzfor the other accounts. Several windows can be open at once (for example a weekly and a shorter one).
3. Read the posts
Section titled “3. Read the posts”curl -A "my-app/1.0" -H "X-API-Key: ps_pro_..." \ "https://polystrike.xyz/api/v1/meta/elon/tweets?limit=100"Up to 100 posts per page (limit, offset), each with is_counted: whether the post counts under the market’s rules. For Ted Cruz use /api/v1/meta/cruz/tweets; for Donald Trump use /api/v1/meta/trump/posts.
4. Read bucket prices
Section titled “4. Read bucket prices”curl -A "my-app/1.0" -H "X-API-Key: ps_pro_..." \ https://polystrike.xyz/api/v1/prediction/elonDespite the path name, this returns no forecasts: the counters, the posting pace over the last hour (velocity_counted_1h, velocity_all_1h) and, per bucket, its title and Polymarket market_price.
Pay per call instead (x402)
Section titled “Pay per call instead (x402)”Call a data endpoint without a key. You get HTTP 402 with the payment requirements in the PAYMENT-REQUIRED header. Pay $0.01 in USDC on Base and retry with the payment in X-PAYMENT (x402 v1) or PAYMENT-SIGNATURE (x402 v2). Per-call payers get the same live data as a Data key, one call at a time; bulk parquet files and the WebSocket need a Data key.
Python example
Section titled “Python example”Standard library only:
import jsonimport urllib.request
KEY = "ps_pro_..." # your Data key
def get(path): req = urllib.request.Request( "https://polystrike.xyz" + path, headers={"User-Agent": "my-app/1.0", "X-API-Key": KEY}, ) with urllib.request.urlopen(req, timeout=15) as resp: return json.load(resp)
body = get("/api/v1/meta/elon")for window in body["data"]: print(window["event_title"], "ours", window["real_counter"], "xtracker", window["polymarket_xtracker_counter"], "page", window["polymarket_ui_counter"])Use it from Claude
Section titled “Use it from Claude”The MCP server exposes the same record as read-only tools. It needs your Data key too.
For AI agents
Section titled “For AI agents”The agent-facing reference is polystrike.xyz/SKILL.md: every endpoint, field and error in one file. The OpenAPI spec is at polystrike.xyz/openapi.json.