The Jupiter Developer Platform is live. Previous portal users keep their rate limits for free until 30 June 2026 — set up billing on the new platform before then. See the Migration Guide for details.
Discover prediction market events, search by keywords, and get market details with pricing information.
BETAThe Prediction Market API is currently in beta and subject to breaking changes as we continue to improve the product. If you have any feedback, please reach out in Discord.
This doc covers how to discover prediction market events, search for specific topics, and retrieve detailed market information including pricing data.For conceptual background on how events, markets, and pricing work, see the Prediction Market Overview.
Market fields are returned flat. There is no nested metadata object. resolveAt stays null while the market is open and becomes an ISO 8601 string once it resolves.
Prices are in JupUSD or USDC native token unitsAll prices in the API are denominated in native token units where 1,000,000 native token units for JupUSD or USDC = $1.00.For example:
650000 = $0.65 (650000 / 1,000,000 = $0.65)
380000 = $0.38 (380000 / 1,000,000 = $0.38)
10000 = $0.01 (10000 / 1,000,000 = $0.01)
The market response includes four price fields:
Field
Description
buyYesPriceUsd
Cost to buy a YES contract
sellYesPriceUsd
Amount received when selling a YES contract
buyNoPriceUsd
Cost to buy a NO contract
sellNoPriceUsd
Amount received when selling a NO contract
volume
Trading volume for this market
Price as ProbabilityMarket prices reflect the implied probability of an outcome. A buyYesPriceUsd of 650000 ($0.65) suggests the market believes there’s roughly a 65% chance of YES being the outcome.
Use GET /orderbook/{marketId} to retrieve the current orderbook with bid/ask depth.The response has four arrays. Each entry is a [price, quantity] pair:
Field
Description
yes
YES bids: [price_cents, quantity]. Price is in cents (e.g. 1 = $0.01). price_cents is rounded, so sub-cent levels show 0; use yes_dollars for the exact price.
no
NO bids: [price_cents, quantity]. Same format as yes.
yes_dollars
YES bids with price as decimal string: ["0.0100", quantity].
no_dollars
NO bids with price as decimal string. Same format as yes_dollars.
Arrays are sorted by price ascending. Quantities are in base units and may be fractional.Example: Get orderbook data for a specific market
For sports events, use GET /events/scores to fetch live scores for one or more events, or GET /events/{eventId}/score for a single event. Events without a score row are omitted from the list response.
const response = await fetch( 'https://api.jup.ag/prediction/v1/events/scores?' + new URLSearchParams({ eventIds: 'POLY-351731,POLY-30615' // comma-separated, max 100 }), { headers: { 'x-api-key': 'your-api-key' } });const { data } = await response.json();