> ## 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 Markets Batch

> Fetch details for multiple prediction markets in a single request (up to 50 markets).

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

### Request Body

<ParamField body="items" type="array" required>
  Array of market identifiers to fetch (1 to 50 items). Requests with more than 50 items will return a `400` error.

  <Expandable title="Item Object">
    <ParamField body="platform" type="string" required>
      Platform name (e.g., `polymarket`).
    </ParamField>

    <ParamField body="marketId" type="string" required>
      Platform-specific market ID.
    </ParamField>
  </Expandable>
</ParamField>

### Response

<ResponseField name="payload" type="array">
  Array of market detail objects (same shape as the single market details endpoint).
</ResponseField>

<ResponseField name="hostname" type="string">
  Server hostname that handled the request.
</ResponseField>

<ResponseField name="took" type="number">
  Time in milliseconds the server spent processing the request.
</ResponseField>

### Usage Example

```bash theme={null}
curl -X POST "https://api.mobula.io/api/2/pm/markets/batch" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      { "platform": "polymarket", "marketId": "0xabc..." },
      { "platform": "polymarket", "marketId": "0xdef..." }
    ]
  }'
```

### Example Response

```json theme={null}
{
  "payload": [
    {
      "id": "polymarket:0xabc...",
      "platform": "polymarket",
      "marketId": "0xabc...",
      "question": "Will ETH reach $10,000 by end of 2026?",
      "status": "active",
      "outcomes": [
        { "outcomeId": "71321...", "label": "Yes", "priceUSD": 0.35 }
      ],
      "stats": { "totalVolumeUSD": 1250000, "volume24hUSD": 45000 }
    }
  ],
  "hostname": "pm-api-prod-eu-abc123",
  "took": 42
}
```

<Note>
  Batch POST endpoints use `payload` (not `data`) as the response wrapper — this matches the spot API batch convention (e.g., `POST /market/multi-data`).
</Note>


## OpenAPI

````yaml POST /2/pm/markets/batch
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/markets/batch:
    post:
      tags:
        - V2 - PM Market
      summary: Get Prediction Markets Batch
      description: >
        Fetch details for multiple prediction markets in a single request (1-50
        items per call).


        Body shape is `{ items: [{ platform, marketId }, ...] }` — the API does
        **not** accept

        a flat `markets: [string]` array.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - items
              properties:
                items:
                  type: array
                  minItems: 1
                  maxItems: 50
                  description: 1-50 (platform, marketId) pairs to fetch in one round-trip.
                  items:
                    type: object
                    required:
                      - platform
                      - marketId
                    properties:
                      platform:
                        type: string
                        example: polymarket
                      marketId:
                        type: string
                        description: CTF conditionId (0x-prefixed 32-byte hex).
                        example: >-
                          0xd86a816093fcd0a0e1ca440bc5ce199bd3c5a8d6139e044b076958164f8c5423
            example:
              items:
                - platform: polymarket
                  marketId: >-
                    0xd86a816093fcd0a0e1ca440bc5ce199bd3c5a8d6139e044b076958164f8c5423
                - platform: polymarket
                  marketId: >-
                    0x366f89649caea042c96ee741b185461ec7faa408a2664ec44469a0061924b537
      responses:
        '200':
          description: Batch market details (note response key is `payload`, not `data`).
          content:
            application/json:
              schema:
                type: object
                properties:
                  payload:
                    type: array
                    items:
                      type: object

````