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

# Get Prediction Market Details

> Get full details for a specific prediction market, including outcomes, stats, and metadata.

<Warning>**Alpha** — This endpoint is part of the Prediction Markets API, currently in early access. May change without notice.</Warning>

### Query Parameters

<ParamField query="platform" type="string" required>
  The prediction market platform. Currently supported: `polymarket`.
</ParamField>

<ParamField query="marketId" type="string" required>
  The platform-specific market identifier.
</ParamField>

### Response

<ResponseField name="data" type="object">
  Full market details object.

  <Expandable title="Market Details">
    <ResponseField name="id" type="string">Internal market ID.</ResponseField>
    <ResponseField name="platform" type="string">Platform name (e.g., `polymarket`).</ResponseField>
    <ResponseField name="marketId" type="string">Platform-specific market ID.</ResponseField>
    <ResponseField name="slug" type="string">URL-friendly market slug.</ResponseField>
    <ResponseField name="chainId" type="string">Blockchain chain ID (e.g., `"evm:137"` for Polygon).</ResponseField>
    <ResponseField name="contractAddress" type="string | null">Market contract address.</ResponseField>
    <ResponseField name="negRisk" type="boolean">Whether this is a neg-risk market (multi-outcome).</ResponseField>
    <ResponseField name="question" type="string">The market question.</ResponseField>
    <ResponseField name="description" type="string">Detailed market description.</ResponseField>
    <ResponseField name="category" type="string">Market category (e.g., `politics`, `sports`).</ResponseField>
    <ResponseField name="tags" type="string[]">Array of tags associated with the market.</ResponseField>
    <ResponseField name="type" type="string">Market type (`binary`, `categorical`, `scalar`).</ResponseField>
    <ResponseField name="status" type="string">Market status: `active`, `closed`, or `resolved`. Markets with a past `endDate` are automatically marked `closed` even if the database hasn't been updated yet.</ResponseField>
    <ResponseField name="eventId" type="string | null">Parent event identifier, if this market belongs to a grouped event. `null` for standalone markets. Use with [`/api/2/pm/event/details`](/endpoint/pm-event-details) to fetch the full event.</ResponseField>
    <ResponseField name="eventSlug" type="string | null">Parent event URL-friendly slug. `null` for standalone markets.</ResponseField>
    <ResponseField name="eventTitle" type="string | null">Parent event title. `null` for standalone markets.</ResponseField>

    <ResponseField name="outcomes" type="array">
      Array of outcome objects.

      <Expandable title="Outcome Object">
        <ResponseField name="id" type="string">Internal outcome ID.</ResponseField>
        <ResponseField name="outcomeId" type="string">Outcome token ID (used for trading, balance queries, and price lookups).</ResponseField>
        <ResponseField name="label" type="string">Outcome label (e.g., "Yes", "No").</ResponseField>
        <ResponseField name="priceUSD" type="number">Current price (0 to 1).</ResponseField>
        <ResponseField name="priceChange24hPercentage" type="number">24-hour price change as a percentage (e.g., price went from 0.30 to 0.35 → `priceChange24hPercentage: 16.67`).</ResponseField>
        <ResponseField name="priceChange7dPercentage" type="number">7-day price change as a percentage (e.g., price went from 0.30 to 0.35 → `priceChange7dPercentage: 16.67`).</ResponseField>
        <ResponseField name="volume24hUSD" type="number">24-hour trading volume for this outcome in USD.</ResponseField>
        <ResponseField name="volume7dUSD" type="number">7-day trading volume for this outcome in USD.</ResponseField>
        <ResponseField name="totalVolumeUSD" type="number">All-time trading volume for this outcome in USD.</ResponseField>
        <ResponseField name="liquidityUSD" type="number | null">Outcome liquidity in USD (nullable).</ResponseField>
        <ResponseField name="openInterestUSD" type="number | null">Open interest in USD (nullable).</ResponseField>
        <ResponseField name="holdersCount" type="number | null">Number of holders (nullable).</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="stats" type="object">
      Market statistics. All monetary values are in USD.

      <Expandable title="Stats Object">
        <ResponseField name="totalVolumeUSD" type="number">All-time cumulative trading volume in USD across all outcomes.</ResponseField>
        <ResponseField name="volume24hUSD" type="number">Trading volume in the last 24 hours in USD.</ResponseField>
        <ResponseField name="volume7dUSD" type="number">Trading volume in the last 7 days in USD.</ResponseField>
        <ResponseField name="liquidityUSD" type="number">Current total liquidity available in the order book in USD.</ResponseField>
        <ResponseField name="openInterestUSD" type="number | null">Total open interest across all outcomes.</ResponseField>
        <ResponseField name="holdersCount" type="number | null">Total number of unique holders across all outcomes.</ResponseField>
        <ResponseField name="tradesCount" type="number">Total number of trades executed on this market.</ResponseField>
        <ResponseField name="trades24h" type="number">Number of trades in the last 24 hours.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="metadata" type="object">
      Market metadata.

      <Expandable title="Metadata Object">
        <ResponseField name="createdAt" type="string">Market creation timestamp.</ResponseField>
        <ResponseField name="endDate" type="string | null">Expected resolution date (end date of the market).</ResponseField>
        <ResponseField name="resolvedAt" type="string | null">Actual resolution timestamp (if resolved).</ResponseField>
        <ResponseField name="resolved" type="boolean">Whether the market has been resolved.</ResponseField>
        <ResponseField name="resolvedOutcome" type="string | null">The winning outcome label (if resolved).</ResponseField>
        <ResponseField name="logo" type="string | null">Market logo URL.</ResponseField>
        <ResponseField name="url" type="string | null">Market URL on the platform.</ResponseField>
        <ResponseField name="creator" type="string | null">Market creator address.</ResponseField>
        <ResponseField name="resolver" type="string | null">Market resolver address.</ResponseField>
        <ResponseField name="rewardPool" type="string | null">Reward pool amount.</ResponseField>
        <ResponseField name="platformFee" type="string | null">Platform fee.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="hostname" type="string">Server hostname that handled the request.</ResponseField>
<ResponseField name="took" type="number">Time taken in milliseconds.</ResponseField>

### Usage Example

```bash theme={null}
curl -X GET "https://api.mobula.io/api/2/pm/market/details?platform=polymarket&marketId=0x1234..."
```

### Example Response

```json theme={null}
{
  "data": {
    "id": "polymarket:0x1234...",
    "platform": "polymarket",
    "marketId": "0x1234...",
    "slug": "will-eth-reach-10k-2026",
    "chainId": "evm:137",
    "contractAddress": null,
    "negRisk": false,
    "question": "Will ETH reach $10,000 by end of 2026?",
    "description": "This market resolves to Yes if the price of ETH reaches $10,000 on any major exchange before December 31, 2026.",
    "category": "crypto",
    "tags": ["ethereum", "price"],
    "type": "binary",
    "status": "active",
    "outcomes": [
      { "outcomeId": "71321...", "label": "Yes", "priceUSD": 0.35, "priceChange24hPercentage": 9.38, "priceChange7dPercentage": 16.67, "volume24hUSD": 22000, "volume7dUSD": 95000, "totalVolumeUSD": 620000, "liquidityUSD": 160000, "openInterestUSD": 290000, "holdersCount": 800 },
      { "outcomeId": "71322...", "label": "No", "priceUSD": 0.65, "priceChange24hPercentage": -4.41, "priceChange7dPercentage": -7.14, "volume24hUSD": 23000, "volume7dUSD": 115000, "totalVolumeUSD": 630000, "liquidityUSD": 160000, "openInterestUSD": 290000, "holdersCount": 700 }
    ],
    "stats": {
      "totalVolumeUSD": 1250000,
      "volume24hUSD": 45000,
      "volume7dUSD": 210000,
      "liquidityUSD": 320000,
      "openInterestUSD": 580000,
      "holdersCount": 1234,
      "tradesCount": 8500,
      "trades24h": 120
    },
    "metadata": {
      "createdAt": "2026-01-15T00:00:00.000Z",
      "endDate": "2026-12-31T23:59:59.000Z",
      "resolvedAt": null,
      "resolved": false,
      "resolvedOutcome": null,
      "creator": null,
      "resolver": null,
      "rewardPool": null,
      "platformFee": null,
      "logo": "https://polymarket.com/images/market.png",
      "url": "https://polymarket.com/event/will-eth-reach-10k-2026"
    }
  },
  "hostname": "pm-api-prod-eu-abc123",
  "took": 42
}
```


## OpenAPI

````yaml GET /2/pm/market/details
openapi: 3.0.0
info:
  version: 1.0.0
  title: Mobula Prediction Markets API
  description: >-
    Documentation of the Mobula Prediction Markets API.


    The PM API is currently served from a dedicated host:
    `pm-api-prod-eu.mobula.io`.

    All endpoints below require an API key (same key as the main Mobula API).


    Parameter names below are the **canonical names enforced by the API

    controllers** (Zod-validated). Following the wrong name (e.g. `?market=...`

    instead of `?platform=...&marketId=...`) returns `HTTP 400`.
servers:
  - url: https://pm-api-prod-eu.mobula.io/api/
    description: PM Production API (requires API key)
security: []
tags:
  - name: V2 - PM Market
    description: Prediction market data — details, prices, order book, trades, OHLCV
  - name: V2 - PM Discovery
    description: Search, trending, categories, live markets
  - name: V2 - PM Wallet
    description: Wallet prediction-market positions, balances, PnL, activity, status
paths:
  /2/pm/market/details:
    get:
      tags:
        - V2 - PM Market
      summary: Get Prediction Market Details
      description: >
        Get full details for a specific prediction market, including outcomes,
        stats, and metadata.


        Required params: `platform` + `marketId`. The market URL slug is **not**
        a valid id —

        use the CTF conditionId returned by `/2/pm/trending` or `/2/pm/search`.
      parameters:
        - $ref: '#/components/parameters/Platform'
        - $ref: '#/components/parameters/MarketId'
      responses:
        '200':
          description: Market details
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
components:
  parameters:
    Platform:
      name: platform
      in: query
      required: true
      description: >-
        Prediction market platform. Today only `polymarket` is supported; any
        other value returns 400.
      schema:
        type: string
        enum:
          - polymarket
        example: polymarket
    MarketId:
      name: marketId
      in: query
      required: true
      description: CTF conditionId — 0x-prefixed 32-byte hex string. **NOT** the URL slug.
      schema:
        type: string
        pattern: ^0x[0-9a-fA-F]{64}$
        example: '0xd86a816093fcd0a0e1ca440bc5ce199bd3c5a8d6139e044b076958164f8c5423'

````