> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solanatracker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List crypto up/down series events

> Lists recurring Polymarket Chainlink up/down windows for an asset/interval series (e.g. BTC 5m). Each event includes `cryptoUpDown` metadata. Proxies Gamma `series_slug` ordering by window start.



## OpenAPI

````yaml /prediction-markets/openapi.json get /v1/crypto/events
openapi: 3.1.0
info:
  title: Prediction Market API (Beta)
  description: >-
    Unified **beta** prediction market API for Kalshi and Polymarket — markets,
    events, full historical trades and candlesticks, orderbooks, crypto up/down
    windows, and Polymarket wallet analytics. Read/market-data only.


    **Auth:** pass your Data API key in the `x-api-key` header.


    **Conventions:** response bodies use camelCase. Query params are snake_case
    (camelCase aliases accepted where noted).


    **Caching:** SWR endpoints may set `X-Cache` (`HIT` | `HIT-STALE` | `MISS`).
    Busy backends may return `503` with `SERVICE_BUSY`.


    **Realtime:** join `pm:*` rooms on
    `wss://datastream.solanatracker.io/{apiKey}` (same Datastream hub as other
    products — see Datastream → Prediction Markets).
  license:
    name: ''
  version: 0.1.0
servers:
  - url: https://prediction-market-api.solanatracker.io
    description: Public beta
security:
  - apiKey: []
tags:
  - name: Exchange
    description: Exchange status
  - name: Events
    description: >-
      Cross-exchange event groupings (Kalshi event_ticker, Polymarket Gamma
      grouped/negRisk events). Includes metadata: image, icon, description,
      tags, and nested markets with groupItemTitle.
  - name: Crypto
    description: >-
      Polymarket crypto up/down (Chainlink) Price to Beat, final price, chart
      history, and series windows.
  - name: Meta
    description: Categories, series, sports, live data
  - name: Markets
    description: Market data, orderbooks, candles
  - name: Trades
    description: Trade feeds
  - name: Accounts
    description: Polymarket wallet analytics (FIFO PnL)
  - name: Leaderboard
    description: Top wallet PnL rankings (Polymarket; Kalshi has no public wallets)
  - name: Stats
    description: Platform statistics
paths:
  /v1/crypto/events:
    get:
      tags:
        - Crypto
      summary: List crypto up/down series events
      description: >-
        Lists recurring Polymarket Chainlink up/down windows for an
        asset/interval series (e.g. BTC 5m). Each event includes `cryptoUpDown`
        metadata. Proxies Gamma `series_slug` ordering by window start.
      operationId: list_crypto_events_path
      parameters:
        - name: asset
          in: query
          description: >-
            Asset key: btc, eth, sol, xrp, doge, bnb, hype (required unless
            seriesSlug is set)
          required: false
          schema:
            type: string
        - name: interval
          in: query
          description: >-
            Window interval: 5m (default), 15m, 1h/hourly, 4h, 1d/daily,
            1w/weekly
          required: false
          schema:
            type: string
        - name: seriesSlug
          in: query
          description: >-
            Gamma series slug override, e.g. btc-up-or-down-hourly or
            bitcoin-up-or-down-weekly
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Max results (default 50, max 100)
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
        - name: cursor
          in: query
          description: Pagination offset cursor
          required: false
          schema:
            type: string
        - name: order
          in: query
          description: 'Window start order: desc (default) or asc'
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Crypto up/down events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEvents'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorBody'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorBody'
components:
  schemas:
    PaginatedEvents:
      type: object
      required:
        - data
        - count
        - hasMore
      properties:
        count:
          type: integer
          minimum: 0
        cursor:
          type:
            - string
            - 'null'
        data:
          type: array
          items:
            $ref: '#/components/schemas/UnifiedEvent'
        hasMore:
          type: boolean
    ApiErrorBody:
      type: object
      description: Standard API error response envelope.
      required:
        - error
        - code
      properties:
        code:
          type: integer
          format: int32
          description: HTTP status code (duplicated for convenience).
          minimum: 0
        error:
          type: string
        errorCode:
          type:
            - string
            - 'null'
          description: >-
            Stable machine-readable code: RATE_LIMITED, SERVICE_BUSY,
            BAD_REQUEST, NOT_FOUND, INTERNAL.
    UnifiedEvent:
      type: object
      description: >-
        A cross-exchange event grouping related markets (Kalshi event_ticker or
        Polymarket Gamma event).


        Polymarket grouped/negRisk events expose `image`, `icon`, `description`,
        `tags`, and nested

        markets with `groupItemTitle`. Kalshi events expose `image`,
        `description`, and `kalshi` metadata.
      required:
        - id
        - exchange
        - marketKind
        - title
        - marketCount
      properties:
        category:
          type:
            - string
            - 'null'
          description: Category/tag.
        comboEnabled:
          type: boolean
          description: Whether clients may build combos from this event's selections.
        comboGroups:
          type: array
          items:
            $ref: '#/components/schemas/ComboMarketGroup'
          description: Structured groups/lines/options for a combo-builder UI.
        createdAt:
          type:
            - string
            - 'null'
          description: Gamma createdAt timestamp.
        cryptoUpDown:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CryptoUpDown'
              description: >-
                Polymarket crypto up/down (Chainlink) window metadata when
                applicable.
        description:
          type:
            - string
            - 'null'
          description: Long-form description (Polymarket only).
        endDate:
          type:
            - string
            - 'null'
          description: ISO-8601 end date.
        exchange:
          $ref: '#/components/schemas/Exchange'
          description: Source exchange.
        icon:
          type:
            - string
            - 'null'
          description: Event icon URL (Polymarket only).
        id:
          type: string
          description: Event identifier.
        image:
          type:
            - string
            - 'null'
          description: Event image URL (Polymarket only).
        marketCount:
          type: integer
          format: int64
          description: Number of markets in this event.
          minimum: 0
        marketKind:
          $ref: '#/components/schemas/MarketKind'
          description: Event product shape. Combo-builder events expose `comboGroups`.
        markets:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/UnifiedMarket'
          description: Markets belonging to this event (if expanded).
        negRisk:
          type:
            - boolean
            - 'null'
          description: True for multi-outcome negRisk groups (Polymarket only).
        openInterest:
          type:
            - number
            - 'null'
          format: double
          description: Open interest (Polymarket only).
        resolutionSource:
          type:
            - string
            - 'null'
          description: Resolution source URL/text (Polymarket only).
        slug:
          type:
            - string
            - 'null'
          description: Slug for URL.
        startDate:
          type:
            - string
            - 'null'
          description: ISO-8601 start date.
        tags:
          description: Gamma tag objects (JSON array).
        ticker:
          type:
            - string
            - 'null'
          description: Gamma ticker slug (Polymarket only).
        title:
          type: string
          description: Event title.
        updatedAt:
          type:
            - string
            - 'null'
          description: Gamma updatedAt timestamp.
        url:
          type:
            - string
            - 'null'
          description: URL to event.
        volume:
          type:
            - number
            - 'null'
          format: double
          description: Total volume across all markets in event.
        volume24h:
          type:
            - number
            - 'null'
          format: double
          description: Rolling 24h volume across event markets (Polymarket only).
    ComboMarketGroup:
      type: object
      required:
        - id
        - section
        - label
        - lines
      properties:
        id:
          type: string
        label:
          type: string
        lines:
          type: array
          items:
            $ref: '#/components/schemas/ComboMarketLine'
        period:
          type:
            - string
            - 'null'
        section:
          type: string
    CryptoUpDown:
      type: object
      description: Typed crypto up/down metadata attached to matching Polymarket events.
      required:
        - asset
        - symbol
        - interval
        - variant
        - phase
      properties:
        asset:
          type: string
          description: Asset key (btc, eth, …).
        finalPrice:
          type:
            - number
            - 'null'
          format: double
          description: Closing / final oracle price when known.
        interval:
          type: string
          description: Human interval (`5m`, `15m`, `1h`, `4h`, `1d`).
        phase:
          $ref: '#/components/schemas/CryptoUpDownPhase'
          description: Derived UI phase.
        priceToBeat:
          type:
            - number
            - 'null'
          format: double
          description: Opening reference price ("Price to Beat").
        resolutionSource:
          type:
            - string
            - 'null'
          description: Resolution source URL (typically Chainlink).
        result:
          type:
            - string
            - 'null'
          description: Resolved direction when known (`up` / `down`).
        seriesSlug:
          type:
            - string
            - 'null'
          description: Gamma series slug (`btc-up-or-down-5m`).
        seriesTitle:
          type:
            - string
            - 'null'
          description: Series display title (`BTC Up or Down 5m`).
        symbol:
          type: string
          description: Chainlink / Polymarket symbol (BTC, ETH, …).
        variant:
          type: string
          description: Polymarket crypto API variant (`fiveminute`, `hourly`, …).
        windowEnd:
          type:
            - string
            - 'null'
          description: Window close (ISO-8601).
        windowStart:
          type:
            - string
            - 'null'
          description: >-
            Window open (ISO-8601). Price to Beat is the oracle price at this
            instant.
    Exchange:
      type: string
      enum:
        - polymarket
        - kalshi
    MarketKind:
      type: string
      enum:
        - binary
        - categorical
        - combo
    UnifiedMarket:
      type: object
      description: >-
        A single market in normalized form.


        Polymarket markets in grouped events include `eventId`, `eventSlug`,
        `groupItemTitle`,

        `description`, `image`, and `icon`. Kalshi markets include `eventTicker`
        and optional `kalshi` metadata.
      required:
        - id
        - exchange
        - marketKind
        - title
        - slug
        - status
        - outcomes
        - volume
        - pricingMode
        - isTradable
        - hasDepth
      properties:
        category:
          type:
            - string
            - 'null'
          description: Category/tag for this market.
        clobTokenIds:
          type: array
          items:
            type: string
          description: |-
            Polymarket CLOB outcome token IDs, ordered to match `outcomes`.
            Use these IDs for `pm:market:polymarket:{tokenId}:*` realtime rooms.
        closeDate:
          type:
            - string
            - 'null'
          description: ISO-8601 market close / expiry time.
        collectionId:
          type:
            - string
            - 'null'
          description: Official multivariate/collection id when present.
        comboEligible:
          type: boolean
          description: Whether this market can be selected as one leg in a combo builder.
        comboGroup:
          type:
            - string
            - 'null'
          description: UI grouping key for combo builders.
        createdAt:
          type:
            - string
            - 'null'
          description: ISO-8601 creation time.
        description:
          type:
            - string
            - 'null'
          description: Long-form market description (Polymarket Gamma).
        eventId:
          type:
            - string
            - 'null'
          description: Polymarket Gamma event id (numeric string, e.g. "30615").
        eventSlug:
          type:
            - string
            - 'null'
          description: Polymarket event slug (e.g. "world-cup-winner").
        eventTicker:
          type:
            - string
            - 'null'
          description: Kalshi event_ticker for grouping related markets.
        eventTitle:
          type:
            - string
            - 'null'
          description: >-
            Canonical parent event title (distinct from the child market/group
            title).
        exchange:
          $ref: '#/components/schemas/Exchange'
          description: Source exchange.
        gammaMarketId:
          type:
            - string
            - 'null'
          description: Polymarket Gamma numeric market id (distinct from condition_id).
        groupItemTitle:
          type:
            - string
            - 'null'
          description: Label within a grouped Polymarket event (e.g. "France").
        hasDepth:
          type: boolean
          description: Whether the indexed orderbook currently has executable depth.
        icon:
          type:
            - string
            - 'null'
          description: Market icon URL (Polymarket Gamma).
        id:
          type: string
          description: >-
            Unique identifier within its exchange (ticker for Kalshi,
            condition_id for Polymarket).
        image:
          type:
            - string
            - 'null'
          description: Market image URL (Polymarket Gamma).
        isTradable:
          type: boolean
          description: Whether the market can currently accept orders or RFQs.
        legCount:
          type: integer
          description: Number of component markets in a combo.
          minimum: 0
        legs:
          type: array
          items:
            $ref: '#/components/schemas/MarketLeg'
          description: Structured combo legs. Empty for ordinary markets.
        line:
          type:
            - number
            - 'null'
          format: double
          description: Numeric spread/total threshold where applicable.
        liquidity:
          type:
            - number
            - 'null'
          format: double
          description: Available liquidity (Polymarket only).
        marketKind:
          $ref: '#/components/schemas/MarketKind'
          description: Product shape. Kalshi multivariate/parlay products are `combo`.
        materializationState:
          type:
            - string
            - 'null'
          description: Materialization state for prebuilt/multivariate contracts.
        openInterest:
          type:
            - integer
            - 'null'
          format: int64
          description: Open interest in contracts (Kalshi only).
          minimum: 0
        outcomeIndex:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Selected outcome index when this market was resolved by
            outcome-token asset ID.
          minimum: 0
        outcomeLabel:
          type:
            - string
            - 'null'
          description: >-
            Selected outcome label when this market was resolved by
            outcome-token asset ID.
        outcomes:
          type: array
          items:
            $ref: '#/components/schemas/UnifiedOutcome'
          description: Possible outcomes with current prices (0.0–1.0 probability).
        parentEventUrl:
          type:
            - string
            - 'null'
          description: Parent multivariate event URL for combo products.
        pricingMode:
          $ref: '#/components/schemas/PricingMode'
          description: Price discovery mechanism.
        rawTitle:
          type:
            - string
            - 'null'
          description: >-
            Original exchange title when the API supplies a normalized display
            title.
        seriesTicker:
          type:
            - string
            - 'null'
          description: Machine series ticker supplied by Kalshi.
        seriesTitle:
          type:
            - string
            - 'null'
          description: Canonical series title when supplied by the exchange.
        settlementRule:
          type:
            - string
            - 'null'
          description: Settlement semantics for combo products.
        slug:
          type: string
          description: 'URL-safe slug (Kalshi: lowercase ticker, Polymarket: slug field).'
        sportsMarketType:
          type:
            - string
            - 'null'
          description: >-
            Exchange-native sports market type (moneyline, totals, spread,
            etc.).
        status:
          type: string
          description: 'Market status: "active", "closed", "settled".'
        tags:
          type: array
          items:
            type: string
          description: Normalized discovery tags.
        ticker:
          type:
            - string
            - 'null'
          description: Raw Kalshi ticker. `id` remains the cross-exchange identifier.
        title:
          type: string
          description: Human-readable title/question.
        tradeCount24h:
          type:
            - integer
            - 'null'
          format: int64
          description: Rolling 24-hour trade count from the indexed tape (when available).
          minimum: 0
        url:
          type:
            - string
            - 'null'
          description: Direct link to the market on its native platform.
        volume:
          type: number
          format: double
          description: Total all-time volume (USD).
        volume24h:
          type:
            - number
            - 'null'
          format: double
          description: Rolling 24-hour volume (USD, if available).
    ComboMarketLine:
      type: object
      required:
        - marketId
        - title
        - marketType
        - status
        - selections
      properties:
        line:
          type:
            - number
            - 'null'
          format: double
        marketId:
          type: string
        marketType:
          type: string
        selections:
          type: array
          items:
            $ref: '#/components/schemas/ComboSelection'
        status:
          type: string
        title:
          type: string
    CryptoUpDownPhase:
      type: string
      description: Lifecycle phase for a crypto up/down window.
      enum:
        - upcoming
        - live
        - determining
        - resolved
    MarketLeg:
      type: object
      required:
        - label
        - side
      properties:
        eventDate:
          type:
            - string
            - 'null'
        exclusionGroup:
          type:
            - string
            - 'null'
          description: Exclusion/conflict group for mutually exclusive legs.
        label:
          type: string
        lifecycleStatus:
          type:
            - string
            - 'null'
          description: 'Per-leg lifecycle: open, suspended, settled, void.'
        officialLegId:
          type:
            - string
            - 'null'
          description: Official exchange leg/position identifier when available.
        positionId:
          type:
            - string
            - 'null'
          description: Exchange-native position/outcome id for this leg.
        side:
          $ref: '#/components/schemas/MarketLegSide'
        sport:
          type:
            - string
            - 'null'
        underlyingMarketId:
          type:
            - string
            - 'null'
        underlyingTitle:
          type:
            - string
            - 'null'
    UnifiedOutcome:
      type: object
      description: A single binary or multi-category outcome with a price.
      required:
        - label
        - price
      properties:
        label:
          type: string
          description: >-
            Outcome label (Yes/No, or custom e.g. country name in grouped
            markets).
        price:
          type: number
          format: double
          description: Current probability (0.0–1.0).
    PricingMode:
      type: string
      enum:
        - orderbook
        - rfq
    ComboSelection:
      type: object
      required:
        - outcomeIndex
        - label
        - price
        - selectable
      properties:
        label:
          type: string
        outcomeIndex:
          type: integer
          format: int32
          minimum: 0
        price:
          type: number
          format: double
        selectable:
          type: boolean
        tokenId:
          type:
            - string
            - 'null'
    MarketLegSide:
      type: string
      enum:
        - 'yes'
        - 'no'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Solana Tracker Data API key

````