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

# List browse categories

> The two-level browse tree — Sports > Soccer — with active-event
counts. A parent's count includes its children's.
Includes categories with no live events; retired ones are omitted.
Use a slug with `GET /public/events?category=` or `?subcategory=`.



## OpenAPI

````yaml /api-reference/openapi/calibri.yaml get /api/v2/pythia/public/categories
openapi: 3.1.0
info:
  title: Calibri API
  version: 1.0.0
  description: >-
    The Calibri API. Discover markets, read live books, place signed orders, and
    manage positions and account data.

    Routed by path prefix to the service that answers it — which is an
    implementation detail, not something a caller has to reason about.
servers:
  - description: Production
    url: https://calibri.io
security: []
tags:
  - name: Health
    description: Service liveness.
    x-displayName: Health
  - name: Events
    description: Discover events and their metadata.
    x-displayName: Events
  - name: Markets
    description: List markets and load market detail for trading.
    x-displayName: Markets
  - name: Series
    description: Recurring event series.
    x-displayName: Series
  - name: Tags
    description: Editorial shelves used to browse the catalogue.
    x-displayName: Tags
  - name: Market Data
    description: Order book, depth, trade tape, tickers, and candles.
    x-displayName: Market Data
  - name: Assets
    description: Underlying asset price history for price-feed markets.
    x-displayName: Assets
  - name: Community
    description: Leaderboard and platform activity.
    x-displayName: Community
  - name: Currencies
    description: Currency registry.
    x-displayName: Currencies
  - name: Trade
    description: Place, list, and cancel orders.
    x-displayName: Trade
  - name: Positions
    description: Your matched contracts.
    x-displayName: Positions
  - name: Wallet
    description: Self-custody Safe, passkey, session keys, and relay.
    x-displayName: Wallet
  - name: Rewards
    description: Maker rebates and referral earnings.
    x-displayName: Rewards
  - name: Account
    description: Balances, ledger, PnL, limits, preferences, and profile.
    x-displayName: Account
  - name: Categories
    description: Categories
    x-displayName: Categories
  - name: Other
    description: Other
    x-displayName: Other
externalDocs:
  description: ''
  url: ''
paths:
  /api/v2/pythia/public/categories:
    get:
      tags:
        - Categories
      summary: List browse categories
      description: |-
        The two-level browse tree — Sports > Soccer — with active-event
        counts. A parent's count includes its children's.
        Includes categories with no live events; retired ones are omitted.
        Use a slug with `GET /public/events?category=` or `?subcategory=`.
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CategoryNode'
                type: array
          description: OK
      security: []
components:
  schemas:
    CategoryNode:
      properties:
        children:
          description: >-
            Present on top-level nodes; always non-nil so a client can range
            without

            a nil check.
          items:
            $ref: '#/components/schemas/CategoryNode'
          type: array
          uniqueItems: false
        event_count:
          description: >-
            Active events beneath this node, counted the way the FEED counts
            them: a

            rolling series contributes ONE, not one per window. For a parent it

            includes its children's, because that is what the number beside a
            browse

            chip means.


            Counted from the same events the feed serves rather than from the
            database,

            so the two cannot disagree. Counting rows made the Crypto chip read
            27 and

            open onto 4 cards — the feed collapses a five-minute series to the
            single

            window a member can act on, and a count that ignores that is a
            promise the

            page does not keep.
          example: 492
          type: integer
        frequencies:
          description: |-
            Cadence facets within this node, present ones only, already ordered
            shortest-first. The browse sidebar is built from these.
          items:
            $ref: '#/components/schemas/FacetCount'
          type: array
          uniqueItems: false
        icon:
          example: SportsSoccer
          type: string
        id:
          example: 10
          type: integer
        label:
          example: Sports
          type: string
        slug:
          example: sports
          type: string
      type: object
    FacetCount:
      properties:
        event_count:
          example: 8
          type: integer
        label:
          description: Display form, because "five_min" is not what a member reads.
          example: 5 Min
          type: string
        value:
          description: The filter value, as ?frequency= takes it.
          example: five_min
          type: string
      type: object

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.