PredictParity APIpredictparity.com ↗
Access PredictParity prediction market data: search markets, get detailed outcomes with APY, browse tags, and query trader leaderboards via 4 REST endpoints.
What is the PredictParity API?
The PredictParity API exposes 4 endpoints covering prediction market search, individual market details, tag discovery, and trader analytics. The search_markets endpoint lets you filter across weather, geopolitics, crypto, and other market categories by tag slug, status, sort field, and text query. Each market record includes outcomes with midPoint, spread, and APY alongside liquidity and net flow volume data.
curl -X GET 'https://api.parse.bot/scraper/51e2bb62-bec2-4e76-9175-ec870cb81137/search_markets?limit=5&offset=0&status=active&sort_by=volume24h&sort_order=desc' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace predictparity-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.predictparity_prediction_markets_api import (
PredictParity, Market, Tag, Trader, MarketStatus, MarketSortBy, Sort, TraderSortBy
)
client = PredictParity()
# Discover weather-related tags
for tag in client.tags.list(query="weather"):
print(tag.slug, tag.label, tag.active_market_count)
# Search active markets sorted by 24h volume
for market in client.markets.search(status=MarketStatus.ACTIVE, sort_by=MarketSortBy.VOLUME_24H, sort_order=Sort.DESC):
print(market.slug, market.question, market.volume)
for outcome in market.outcomes:
print(outcome.outcome_name, outcome.mid_point, outcome.spread)
# Get detailed market info by slug
detail = client.markets.get(slug="will-china-invade-taiwan-before-2027")
print(detail.question, detail.volume, detail.liquidity)
if detail.net_flow_volumes:
print(detail.net_flow_volumes.volume_24h_microdollars, detail.net_flow_volumes.volume_1h_change_pct)
# List top traders by volume
for trader in client.traders.list(sort_by=TraderSortBy.VOLUME, sort_order=Sort.DESC):
print(trader.username, trader.display_name, trader.is_verified)
print(trader.analytics.all_time_volume, trader.analytics.all_time_pnl, trader.analytics.rank)
if trader.traits.win_rate:
print(trader.traits.win_rate.percentage)
Search and list prediction markets with optional filters for tags, status, and text search. Returns paginated results sorted by the specified field. Pagination is offset-based with manual offset/limit control. Each market includes outcomes with current midPoint prices, volume metrics, and associated tags.
| Param | Type | Description |
|---|---|---|
| tags | string | Comma-separated list of tag slugs to include (e.g. highest-temperature,weather,politics). Use get_tags endpoint to discover available tag slugs. |
| limit | integer | Number of results per page (1-100). |
| query | string | Text search query to filter markets by question/title. |
| offset | integer | Pagination offset (0-based). |
| status | string | Market status filter. |
| sort_by | string | Field to sort results by. |
| sort_order | string | Sort direction. |
| excluded_tags | string | Comma-separated list of tag slugs to exclude (e.g. sports,crypto). |
{
"type": "object",
"fields": {
"limit": "integer current limit",
"offset": "integer current offset",
"markets": "array of market objects with id, question, outcomes, volume, tags, slug, status, etc.",
"has_more": "boolean indicating if more results are available"
},
"sample": {
"data": {
"limit": 5,
"offset": 0,
"markets": [
{
"id": "fd7934de-ded5-41da-84b9-85bf635fe12d",
"slug": "nba-sas-nyk-2026-06-10",
"tags": [
{
"slug": "sports",
"label": "Sports"
}
],
"status": "active",
"volume": 5647847.54,
"eventId": "fa7848e5-5d31-4a9c-8df3-9e0595bcb2d3",
"outcomes": [
{
"spread": 10000,
"midPoint": 455000,
"isPrimary": true,
"outcomeId": "54ed852d-2dec-4cf7-a1a9-3594ee569c0d",
"outcomeName": "Spurs"
}
],
"question": "Spurs vs. Knicks",
"volume1h": 35686.981528,
"liquidity": 4007519.84,
"volume24h": 4720824.417785
}
],
"has_more": true
},
"status": "success"
}
}About the PredictParity API
Market Search and Discovery
The search_markets endpoint accepts up to eight parameters: tags and excluded_tags accept comma-separated tag slugs (e.g., highest-temperature,weather), status filters by active, resolved, or closed, and sort_by accepts volume24h, volume1h, liquidity, endDate, or startDate. Results are paginated via limit and offset, and the has_more boolean tells you whether another page exists. The response markets array contains each market's id, question, outcomes, volume, and associated tags.
Market Details
get_market takes a market slug (available from search results) and returns the full record: description with resolution criteria, outcomes array with per-outcome midPoint, spread, and apy, plus liquidity, total volume in USD, and a netFlowVolumes object showing directional volume flow. An optional platform parameter currently accepts polymarket, allowing cross-platform lookups on supported markets.
Tags and Traders
get_tags returns a flat list of tag objects, each with a slug, human-readable label, and activeMarketCount. This is the canonical way to discover valid slugs before passing them into search_markets. The get_traders endpoint lists platform traders with analytics, badges, and trading traits, sortable by volume, pnl, or rank, and supports text search via the query parameter alongside standard limit/offset pagination.
The PredictParity API is a managed, monitored endpoint for predictparity.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when predictparity.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official predictparity.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor active weather prediction markets by filtering
search_marketswith thehighest-temperatureorweathertag slugs. - Track APY and spread on geopolitical outcomes by calling
get_marketwith a slug likewill-china-invade-taiwan-before-2027. - Build a leaderboard dashboard by querying
get_traderssorted bypnlorrankwith paginated results. - Discover which market categories are most active by checking
activeMarketCountfromget_tags. - Alert on newly opened crypto prediction markets by polling
search_marketswithstatus=activeandsort_by=startDate. - Analyze net directional sentiment by reading
netFlowVolumesfromget_marketacross a portfolio of market slugs. - Find underexplored market niches by combining
excluded_tagsandsort_by=liquidityinsearch_markets.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does PredictParity have an official developer API?+
What does `get_market` return beyond a market's current price?+
get_market returns per-outcome midPoint, spread, and apy, the full description with resolution criteria, current liquidity, total volume in USD, and a netFlowVolumes object that breaks down directional volume flow for the market.Can I retrieve historical trade or order book data for a specific market?+
How does tag filtering in `search_markets` work, and where do I get valid tag slugs?+
tags and excluded_tags parameters accept comma-separated slugs. Call get_tags first — it returns every available slug alongside its label and activeMarketCount. Slugs from that response are the valid inputs for search_markets filtering.Does the API cover markets from platforms other than PredictParity itself?+
get_market endpoint accepts an optional platform parameter that currently supports polymarket. Cross-platform search filtering and trader data from external platforms are not currently covered. You can fork this API on Parse and revise it to add broader multi-platform support.