Prediction Market Metadata API Overview
--------------------------------------
The Prediction Market Metadata API from DFlow gives programmatic access to prediction‑market information and metadata. It exposes endpoints organized into categories such as **events**, **markets**, **trades**, **live data**, **series**, **tags**, **sports** and **search**https://pond.dflow.net/prediction-market-metadata-api-reference/introduction#:~:text=Introduction. Each endpoint returns JSON responses, and many endpoints allow filtering and pagination via query parameters.
### Events API endpoints
The events API returns information about individual events and their associated markets.
* **Get Event (GET `/api/v1/event/{event_id}`)** – Returns a single event by its ticker. The endpoint can optionally include nested market datahttps://pond.dflow.net/prediction-market-metadata-api-reference/events/event#:~:text=Events%20API%20Endpoints. Required path parameter `event_id` identifies the event; optional query parameter `withNestedMarkets` indicates whether nested markets should be includedhttps://pond.dflow.net/prediction-market-metadata-api-reference/events/event#:~:text=. A successful response includes event metadata such as `seriesTicker`, `subtitle`, `ticker`, `title`, competition details, liquidity, markets (each with accounts, open interest, prices and volume), open interest, strike date/period and 24‑hour volumehttps://pond.dflow.net/prediction-market-metadata-api-reference/events/event#:~:text=%7B%20,1.
* **Get Events (GET `/api/v1/events`)** – Returns a paginated list of all eventshttps://pond.dflow.net/prediction-market-metadata-api-reference/events/events#:~:text=Events%20API%20Endpoints. Optional query parameters include `limit` (maximum number of events), `withNestedMarkets`, `cursor` (pagination cursor), `seriesTickers` (filter by series), `isInitialized` (filter by initialization status), `status` and `sort`https://pond.dflow.net/prediction-market-metadata-api-reference/events/events#:~:text=. The `sort` field can be `volume`, `volume24h`, `liquidity`, `openInterest` or `startDate`https://pond.dflow.net/prediction-market-metadata-api-reference/events/events#:~:text=sort.
* **Get Event Forecast Percentile History (GET `/api/v1/event/{series_ticker}/{event_id}/forecast_percentile_history`)** – Retrieves historical raw and formatted forecast numbers for an event at specified percentileshttps://pond.dflow.net/prediction-market-metadata-api-reference/events/forecast-percentile-history#:~:text=Get%20Event%20Forecast%20Percentile%20History. Path parameters `series_ticker` and `event_id` identify the eventhttps://pond.dflow.net/prediction-market-metadata-api-reference/events/forecast-percentile-history#:~:text=. Query parameters include `percentiles` (comma‑separated list of percentiles), `startTs`, `endTs` and `periodInterval`, all of which are required and must be non‑negative integershttps://pond.dflow.net/prediction-market-metadata-api-reference/events/forecast-percentile-history#:~:text=.
* **Get Event Forecast Percentile History by Mint (GET `/api/v1/event/by‑mint/{mint_address}/forecast_percentile_history`)** – Looks up an event using a market mint address and returns historical forecast datahttps://pond.dflow.net/prediction-market-metadata-api-reference/events/forecast-percentile-history-by-mint#:~:text=Get%20Event%20Forecast%20Percentile%20History,by%20Mint. The path parameter `mint_address` is requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/events/forecast-percentile-history-by-mint#:~:text=. The same query parameters as the previous endpoint (`percentiles`, `startTs`, `endTs`, `periodInterval`) are requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/events/forecast-percentile-history-by-mint#:~:text=.
* **Get Event Candlesticks (GET `/api/v1/event/{ticker}/candlesticks`)** – Relays candlestick data for an event from the Kalshi APIhttps://pond.dflow.net/prediction-market-metadata-api-reference/events/event-candlesticks#:~:text=Get%20Event%20Candlesticks. The event ticker is provided in the path; query parameters `startTs`, `endTs` and `periodInterval` specify the time range and bucket sizehttps://pond.dflow.net/prediction-market-metadata-api-reference/events/event-candlesticks#:~:text=. The response is JSON candlestick data.
### Markets API endpoints
Markets endpoints provide data about individual markets and collections of markets.
* **Get Market (GET `/api/v1/market/{market_id}`)** – Returns details of a single market by tickerhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market#:~:text=Get%20Market. The `market_id` path parameter is requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market#:~:text=. The response includes accounts, closing times, event ticker, market type, price quotes (ask/bid), open interest, rules, status, subtitles, title, volume and related fieldshttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market#:~:text=%7B%20,.
* **Get Market by Mint (GET `/api/v1/market/by‑mint/{mint_address}`)** – Looks up a market using a ledger or outcome mint address and returns the market’s metadatahttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market-by-mint#:~:text=Get%20Market%20by%20Mint. The `mint_address` path parameter is requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market-by-mint#:~:text=. The response structure mirrors the Get Market endpoint, with fields such as accounts, open interest, expiration time, market type, result, primary/secondary rules and price quoteshttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market-by-mint#:~:text=%7B%20,.
* **Get Markets (GET `/api/v1/markets`)** – Returns a paginated list of marketshttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/markets#:~:text=Get%20Markets. Query parameters include `limit` (number of markets), `cursor` (pagination cursor), `isInitialized`, `status` and `sort`https://pond.dflow.net/prediction-market-metadata-api-reference/markets/markets#:~:text=. The `sort` field may be `volume`, `volume24h`, `liquidity`, `openInterest` or `startDate`https://pond.dflow.net/prediction-market-metadata-api-reference/markets/markets#:~:text=sort. The response contains an array of market objects similar to the Get Market response and a `cursor` to fetch the next pagehttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/markets#:~:text=.
* **Get Markets Batch (POST `/api/v1/markets/batch`)** – Returns multiple markets by looking up lists of tickers and/or mint addresseshttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/markets-batch#:~:text=Get%20Markets%20Batch. The JSON request body may contain a `mints` array and a `tickers` arrayhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/markets-batch#:~:text=curl%20,%5D. Up to 100 markets can be returned. The response contains a `cursor` and a `markets` arrayhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/markets-batch#:~:text=%7B%20,%7D%20%5D.
* **Get Outcome Mints (GET `/api/v1/outcome_mints`)** – Returns a flat list of all yes_mint and no_mint token pubkeys from supported marketshttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/outcome-mints#:~:text=Get%20Outcome%20Mints. An optional query parameter `minCloseTs` filters mints to markets closing after the given timestamphttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/outcome-mints#:~:text=. The response JSON contains a `mints` arrayhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/outcome-mints#:~:text=.
* **Filter Outcome Mints (POST `/api/v1/filter_outcome_mints`)** – Accepts up to 200 token addresses and returns only those that correspond to outcome mints (yes_mint or no_mint)https://pond.dflow.net/prediction-market-metadata-api-reference/markets/filter-outcome-mints#:~:text=Filter%20Outcome%20Mints. The request body requires an `addresses` arrayhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/filter-outcome-mints#:~:text=. The response JSON includes an `outcomeMints` array of addresses that match outcome mintshttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/filter-outcome-mints#:~:text=.
* **Get Market Candlesticks (GET `/api/v1/market/{ticker}/candlesticks`)** – Relays candlestick data for a market from the Kalshi API and automatically resolves the series ticker from the market tickerhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market-candlesticks#:~:text=Get%20Market%20Candlesticks. The `ticker` path parameter is required; query parameters `startTs`, `endTs` and `periodInterval` define the time range and bucket sizehttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market-candlesticks#:~:text=.
* **Get Market Candlesticks by Mint (GET `/api/v1/market/by‑mint/{mint_address}/candlesticks`)** – Looks up a market using a mint address and returns its candlestick datahttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market-candlesticks-by-mint#:~:text=Get%20Market%20Candlesticks%20by%20Mint. The `mint_address` path parameter is required, and the same `startTs`, `endTs` and `periodInterval` query parameters are usedhttps://pond.dflow.net/prediction-market-metadata-api-reference/markets/market-candlesticks-by-mint#:~:text=.
### Trades API endpoints
Trades endpoints provide historical trade data.
* **Get Trades (GET `/api/v1/trades`)** – Returns a paginated list of all tradeshttps://pond.dflow.net/prediction-market-metadata-api-reference/trades/trades#:~:text=Get%20Trades. Optional query parameters include `limit` (number of trades), `cursor` (pagination cursor), `ticker` (filter by market ticker), `minTs` and `maxTs` (timestamp range)https://pond.dflow.net/prediction-market-metadata-api-reference/trades/trades#:~:text=. Each trade object includes the number of contracts traded, timestamp, price, yes/no prices in dollars, taker side and market tickerhttps://pond.dflow.net/prediction-market-metadata-api-reference/trades/trades#:~:text=%7B%20,%7D.
* **Get Trades by Mint (GET `/api/v1/trades/by‑mint/{mint_address}`)** – Returns a paginated list of trades for a market identified by a ledger or outcome mint addresshttps://pond.dflow.net/prediction-market-metadata-api-reference/trades/trades-by-mint#:~:text=Get%20Trades%20by%20Mint. Path parameter `mint_address` is requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/trades/trades-by-mint#:~:text=. The endpoint accepts the same query parameters as Get Trades (`limit`, `cursor`, `minTs`, `maxTs`)https://pond.dflow.net/prediction-market-metadata-api-reference/trades/trades-by-mint#:~:text= and returns an array of trade objects plus a pagination cursorhttps://pond.dflow.net/prediction-market-metadata-api-reference/trades/trades-by-mint#:~:text=,%7D%20%5D.
### Live Data API endpoints
Live data endpoints relay real‑time information from the Kalshi API.
* **Get Live Data (GET `/api/v1/live_data`)** – Relays live data for one or more milestoneshttps://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data#:~:text=Get%20Live%20Data. The `milestoneIds` query parameter is required and accepts an array of milestone IDshttps://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data#:~:text=. The response is the Kalshi live data payload.
* **Get Live Data by Event (GET `/api/v1/live_data/by‑event/{event_ticker}`)** – Fetches all live data for an event by automatically looking up related milestoneshttps://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data-by-event#:~:text=Fetches%20all%20live%20data%20for,Supports%20all%20milestone%20filtering%20options. The `event_ticker` path parameter is requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data-by-event#:~:text=. Query parameters allow filtering by `minimumStartDate`, `category`, `competition`, `sourceId` and `type`https://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data-by-event#:~:text=.
* **Get Live Data by Mint (GET `/api/v1/live_data/by‑mint/{mint_address}`)** – Looks up the event ticker from a market mint address and fetches all live data for that eventhttps://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data-by-mint#:~:text=Get%20Live%20Data%20by%20Mint. The `mint_address` path parameter is requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data-by-mint#:~:text=. The same filter parameters as the previous endpoint (`minimumStartDate`, `category`, `competition`, `sourceId`, `type`) are supportedhttps://pond.dflow.net/prediction-market-metadata-api-reference/live-data/live-data-by-mint#:~:text=.
### Series API endpoints
Series endpoints return templates for recurring events.
* **Get Series (GET `/api/v1/series`)** – Returns all series templates available on Kalshihttps://pond.dflow.net/prediction-market-metadata-api-reference/series/series#:~:text=Get%20Series. Optional query parameters include `category`, `tags`, `isInitialized` and `status`https://pond.dflow.net/prediction-market-metadata-api-reference/series/series#:~:text=. Each series contains metadata such as `additionalProhibitions`, `category`, `contractTermsUrl`, `contractUrl`, `feeMultiplier`, `feeType`, `frequency`, `productMetadata`, `settlementSources`, `tags`, `ticker` and `title`https://pond.dflow.net/prediction-market-metadata-api-reference/series/series#:~:text=%7B%20,.
* **Get Series by Ticker (GET `/api/v1/series/{series_ticker}`)** – Returns a single series by its tickerhttps://pond.dflow.net/prediction-market-metadata-api-reference/series/series-by-ticker#:~:text=Get%20Series%20by%20Ticker. The `series_ticker` path parameter is requiredhttps://pond.dflow.net/prediction-market-metadata-api-reference/series/series-by-ticker#:~:text=. The response includes fields like `additionalProhibitions`, `category`, contract terms and contract URL, `feeMultiplier`, `feeType`, `frequency`, `productMetadata`, `settlementSources`, `tags`, `ticker` and `title`https://pond.dflow.net/prediction-market-metadata-api-reference/series/series-by-ticker#:~:text=%7B%20,.
### Tags API endpoint
* **Get Tags by Categories (GET `/api/v1/tags_by_categories`)** – Returns a mapping of series categories to their associated tagshttps://pond.dflow.net/prediction-market-metadata-api-reference/tags/tags-by-categories#:~:text=Get%20Tags%20by%20Categories. The response JSON contains a `tagsByCategories` object where each key is a series category and the value is an array of tagshttps://pond.dflow.net/prediction-market-metadata-api-reference/tags/tags-by-categories#:~:text=.
### Sports API endpoint
* **Get Filters by Sports (GET `/api/v1/filters_by_sports`)** – Returns filtering options available for each sport, including scopes and competitionshttps://pond.dflow.net/prediction-market-metadata-api-reference/sports/filters-by-sports#:~:text=Get%20Filters%20by%20Sports. The response includes a `filtersBySports` object and a `sportOrdering` array listing sports in preferred orderhttps://pond.dflow.net/prediction-market-metadata-api-reference/sports/filters-by-sports#:~:text=%7B%20,%5D.
### Search API endpoint
* **Search Events (GET `/api/v1/search`)** – Searches events (with nested markets) by title or tickerhttps://pond.dflow.net/prediction-market-metadata-api-reference/search/search#:~:text=Search%20Events. Query parameter `q` is required to specify the search string. Additional parameters include `sort` (volume, volume24h, liquidity, openInterest or startDate), `order` (`desc` or `asc`), `limit`, `cursor`, `withNestedMarkets` and `withMarketAccounts`https://pond.dflow.net/prediction-market-metadata-api-reference/search/search#:~:text=. The response contains a `cursor` for pagination and an array of event objects with nested marketshttps://pond.dflow.net/prediction-market-metadata-api-reference/search/search#:~:text=cursor.
### Usage notes
The API generally returns HTTP **200** responses with JSON bodies on success. Pagination is handled via `cursor` fields in responses and `limit`/`cursor` query parameters in requests. Some endpoints support filtering by initialization status, status codes, series tickers or tags. Candlestick and forecast endpoints simply relay data from the Kalshi API, requiring start and end timestamps and an interval. POST endpoints (Markets Batch and Filter Outcome Mints) accept JSON bodies and return collections of resources.