Jupiter Markets API

The Markets API from Jupiter — 3 operation(s) for markets.

Operations 3

GET /events/{eventId}/markets List event markets #
GET /events/{eventId}/markets/{marketId} Get event market #
GET /markets/{marketId} Get market #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/jupiter-ag:jupiter-ag-markets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

jupiter-ag-markets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Jupiter Prediction Market Markets API
  version: 1.0.0
  description: Jupiter Prediction Market API Schema
servers:
- url: https://api.jup.ag/prediction/v1
  description: Jupiter Prediction Market API Endpoint
security:
- ApiKeyAuth: []
tags:
- name: Markets
paths:
  /events/{eventId}/markets:
    get:
      tags:
      - Markets
      summary: List event markets
      description: Paginated list of the binary markets of an event. Each market is a YES/NO question with its own id, status, pricing and result.
      parameters:
      - schema:
          type: string
          minLength: 1
          description: Event identifier
        required: true
        description: Event identifier
        name: eventId
        in: path
      - schema:
          type:
          - integer
          - 'null'
          minimum: 0
        required: false
        description: Pagination start index of the page to return.
        name: start
        in: query
      - schema:
          type:
          - integer
          - 'null'
          minimum: 0
        required: false
        description: Pagination end index of the page to return.
        name: end
        in: query
      responses:
        '200':
          description: List of markets for the given event
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Market'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                required:
                - data
                - pagination
      operationId: getEventsByEventIdMarkets
      x-operation-id-source: derived
  /events/{eventId}/markets/{marketId}:
    get:
      tags:
      - Markets
      summary: Get event market
      description: 'One market scoped to its event: title, status, result, open and close times, resolution time, rules and outcomes with current pricing.'
      parameters:
      - schema:
          type: string
          minLength: 1
          description: Event identifier
        required: true
        description: Event identifier
        name: eventId
        in: path
      - schema:
          type: string
          minLength: 1
          description: Market identifier
        required: true
        description: Market identifier
        name: marketId
        in: path
      responses:
        '200':
          description: Market data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Market'
        '404':
          description: Market not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: getEventsByEventIdMarketsByMarketId
      x-operation-id-source: derived
  /markets/{marketId}:
    get:
      tags:
      - Markets
      summary: Get market
      description: 'One market by id: title, status, result, open and close times, resolution time, rules and outcomes with current pricing. Prices are in micro USD (1,000,000 = $1).'
      parameters:
      - schema:
          type: string
          minLength: 1
          description: Market identifier
        required: true
        description: Market identifier
        name: marketId
        in: path
      responses:
        '200':
          description: Market data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Market'
        '404':
          description: Market not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: getMarketsByMarketId
      x-operation-id-source: derived
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          enum:
          - invalid_request_error
          - authentication_error
          - permission_error
          - idempotency_error
          - rate_limit_error
          - api_error
        message:
          type: string
        code:
          type: string
        param:
          type: string
        request_id:
          type: string
        doc_url:
          type: string
      required:
      - type
      - message
      - request_id
    MarketPricing:
      type: object
      properties:
        buyYesPriceUsd:
          type:
          - number
          - 'null'
        buyNoPriceUsd:
          type:
          - number
          - 'null'
        sellYesPriceUsd:
          type:
          - number
          - 'null'
        sellNoPriceUsd:
          type:
          - number
          - 'null'
        volume:
          type: number
          description: Trading volume for this market
    Market:
      type: object
      description: Market fields are returned flat (there is no nested `metadata` object).
      properties:
        marketId:
          type: string
          description: Market identifier
        eventId:
          type: string
          description: Parent event identifier
        provider:
          type: string
          enum:
          - polymarket
          - gx
          - bisonfi
          description: Market data provider
        title:
          type: string
          description: Market title
        status:
          type: string
          enum:
          - open
          - closed
          - cancelled
          description: Current market status
        result:
          type:
          - string
          - 'null'
          enum:
          - 'yes'
          - 'no'
          description: Market result. null until resolved, then "yes" or "no"
        openTime:
          type: number
          description: Unix timestamp (seconds) when the market opens
        closeTime:
          type: number
          description: Unix timestamp (seconds) when the market closes
        resolveAt:
          oneOf:
          - type: string
          - type: number
          description: When the market resolved. null while open; returned as an ISO 8601 string once resolved
        marketResultPubkey:
          type:
          - string
          - 'null'
          description: Public key of the market result account
        imageUrl:
          type:
          - string
          - 'null'
          format: uri
          description: Market image URL
        rulesPrimary:
          type: string
          description: Primary resolution rules
        rulesSecondary:
          type: string
          description: Secondary resolution rules
        outcomes:
          type: array
          items:
            type: string
          description: Outcome labels for the market
        marketOptions:
          type: array
          items:
            type: object
            properties:
              label:
                type: string
              buyYes:
                type: boolean
          description: Selectable options for team or multi-outcome markets
        clobTokenIds:
          type: array
          items:
            type: string
          description: Underlying CLOB token IDs (provider-specific)
        isTeamMarket:
          type: boolean
          description: True for team or sports markets
        team:
          type:
          - object
          - 'null'
          description: Team metadata, present for team markets
        sportsLine:
          type:
          - number
          - 'null'
          description: Sports line or handicap, when applicable
        sportsMarketType:
          type:
          - string
          - 'null'
          description: Sports market type, when applicable
        outcomeMint:
          type:
          - string
          - 'null'
          description: Outcome token mint for this market side (Jupiter Forecast / bisonfi). Buying the market gives you this token; it can also be traded directly through the Swap API.
        outcomeTokenProgram:
          type:
          - string
          - 'null'
          description: Token program that owns `outcomeMint`. Jupiter Forecast uses Token-2022 (`TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`).
        marketPda:
          type:
          - string
          - 'null'
          description: On-chain market account (Jupiter Forecast / bisonfi).
        outcomeSide:
          type:
          - string
          - 'null'
          description: Outcome side for Jupiter Forecast markets (`up` or `down`).
        tradable:
          type: boolean
          description: Whether this Jupiter Forecast side can be traded right now. The Discover example filters on this field.
        lifecycleStatus:
          type: string
          enum:
          - open
          - resolving
          - settled
          description: 'Jupiter Forecast trading lifecycle: `open`, `resolving` after the close time, or `settled` after issuer resolution. Only `open` is tradable.'
        pricing:
          $ref: '#/components/schemas/MarketPricing'
      required:
      - marketId
      - status
      - result
      - openTime
      - closeTime
      - resolveAt
    Pagination:
      type: object
      properties:
        start:
          type: integer
          minimum: 0
        end:
          type: integer
          minimum: 0
        total:
          type: integer
          minimum: 0
        hasNext:
          type: boolean
      required:
      - start
      - end
      - total
      - hasNext
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Get API key via https://developers.jup.ag/portal
x-provenance:
  method: harvested
  publisher: Jupiter
  source: https://developers.jup.ag/docs/openapi-spec/prediction/prediction.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)