> ## 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 Categories

> Get all prediction market categories with market counts and volume stats.

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

### Query Parameters

<ParamField query="limit" type="number" default="50">
  Number of categories to return.
</ParamField>

<ParamField query="offset" type="number" default="0">
  Pagination offset.
</ParamField>

### Response

<ResponseField name="data" type="array">
  Array of category objects.

  <Expandable title="Category">
    <ResponseField name="id" type="string">Category identifier.</ResponseField>
    <ResponseField name="name" type="string">Category display name.</ResponseField>
    <ResponseField name="marketsCount" type="number">Total number of markets in this category.</ResponseField>
    <ResponseField name="activeMarketsCount" type="number">Number of currently active markets.</ResponseField>
    <ResponseField name="volume24hUSD" type="number">24h volume across all markets in this category.</ResponseField>
    <ResponseField name="totalVolumeUSD" type="number">All-time volume across all markets in USD.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  Pagination metadata.

  <Expandable title="Pagination">
    <ResponseField name="page" type="number">Current page number (1-indexed).</ResponseField>
    <ResponseField name="offset" type="number">Current offset.</ResponseField>
    <ResponseField name="limit" type="number">Requested page size.</ResponseField>
    <ResponseField name="pageEntries" type="number">Number of entries in current page.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="hostname" type="string">Server node identifier.</ResponseField>
<ResponseField name="took" type="number">Request processing time in milliseconds.</ResponseField>

### Usage Example

```bash theme={null}
curl -X GET "https://api.mobula.io/api/2/pm/categories"
```

### Example Response

```json theme={null}
{
  "data": [
    { "id": "politics", "name": "Politics", "marketsCount": 450, "activeMarketsCount": 120, "volume24hUSD": 5200000, "totalVolumeUSD": 890000000 },
    { "id": "crypto", "name": "Crypto", "marketsCount": 320, "activeMarketsCount": 85, "volume24hUSD": 3100000, "totalVolumeUSD": 450000000 },
    { "id": "sports", "name": "Sports", "marketsCount": 180, "activeMarketsCount": 60, "volume24hUSD": 1800000, "totalVolumeUSD": 220000000 }
  ],
  "pagination": {
    "page": 1,
    "offset": 0,
    "limit": 50,
    "pageEntries": 3
  },
  "hostname": "node-xyz",
  "took": 42
}
```


## OpenAPI

````yaml GET /2/pm/categories
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/categories:
    get:
      tags:
        - V2 - PM Discovery
      summary: Get Prediction Categories
      description: >-
        Get all prediction market categories with market counts and volume
        stats.
      parameters:
        - name: limit
          in: query
          required: false
          description: Page size (1-100).
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
        - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Categories list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
components:
  parameters:
    Offset:
      name: offset
      in: query
      required: false
      description: Pagination offset.
      schema:
        type: integer
        minimum: 0
        default: 0

````