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

# Authenticated user CP + USDC summary

> **Requires `Authorization: Bearer <privy_access_token>`.**

Lifetime totals, current-epoch amounts, and breakdowns for the
Earnings header. `meta.endsInMs` drives the epoch progress bar.
Maker is bound from the Privy session wallet.




## OpenAPI

````yaml /data-api-reference/openapi.yaml get /liquidity-rewards/me/summary
openapi: 3.0.3
info:
  title: XO Data API
  description: >
    Public HTTP routes for **market discovery, portfolio reads, and related

    metadata**, served by the NestJS
    [`xo-backend`](https://github.com/xo-market/xo)

    service on the app host (`https://api-mainnet.xo.market`).


    These endpoints are intentionally separate from the CLOB orderbook REST

    surface (`openapi.yaml`). Use them to:

      * list markets and apply filters (status, category, scope, search),
      * resolve a market by numeric id, by `conditionId`/wrapper address, or
        by slug,
      * list short-horizon **Pulse** markets (e.g. BTC 5-minute windows) and
        fetch a single pulse market by on-chain address,
      * read a user's public portfolio via `GET /users/portfolio`, and
      * read **liquidity rewards** (public discovery plus Privy-authenticated
        `/me` routes).

    Real-time portfolio snapshots are delivered over the unauthenticated

    Socket.IO namespace `/portfolio-public`. See the

    [Portfolio WebSocket](/data-api-reference/portfolio-websocket) guide.


    All paths use the service `/api` global prefix. In non-production

    deployments, the full generated Swagger document is available at

    `/swagger` on the same host.


    ### Rate limits


    Data API REST routes share a budget of **100 requests per 10 seconds**

    per client IP. `/public/liquidity-rewards/*` is throttled separately

    at **30 requests per 10 seconds**.


    ### Wire conventions

      * Pagination is page-based: `page` (1-indexed) and `take` (or `limit`
        for the Pulse routes). Liquidity-rewards proxied pages use 0-indexed
        `page` and `page_size`.
      * Numeric ids are integers; `conditionId` values are `0x`-prefixed
        32-byte hex strings. Use `conditionId` as `marketId` on
        liquidity-rewards routes.
      * Volume strings are decimal (USD) or WEI-encoded (token), depending
        on the field name (`totalVolumeInUSD` vs `totalVolume`).
      * Liquidity-rewards amounts and scores are decimal **strings**.
        Catalogue/summary BFFs are camelCase; proxied maker/market-day
        payloads are snake_case.
      * Authenticated `/liquidity-rewards/*` routes require
        `Authorization: Bearer <privy_access_token>`. The
        `/public/liquidity-rewards/*` prefix does not.

    ### Market scope for market makers


    The `/markets` endpoint accepts a `marketScope` query parameter that

    maps to the on-chain `IXOMarketV1.MarketType` enum

    (`STANDARD=0`, `PULSE=1`, `CLOB=2`, `CLOB_PULSE=3`). Market makers

    integrating against the XO CLOB **should only use**:

      * `onlyClob` — `CLOB` + `CLOB_PULSE` (orderbook markets, both
        long-form and pulse).
      * `onlyClobPulse` — `CLOB_PULSE` only (BTC 5-minute pulse).

    The remaining scopes (`default`, `withClob`, `withPulse`, `onlyPulse`)

    include `STANDARD` and/or `PULSE` markets, which are **LMSR AMM**

    deployments and are not tradable through the CLOB orderbook. Ignore

    those scopes (and rows where `market.type` is `0` or `1`) for MM use.
  version: 1.0.0
  contact:
    name: XO Market
    url: https://beta.xo.market
servers:
  - url: https://api-mainnet.xo.market/api
    description: Production xo-backend (XO mainnet, chainId 3223)
security: []
tags:
  - name: Markets
    description: Market list, filtering, and per-market metadata.
  - name: Pulse Markets
    description: Short-horizon (e.g. BTC 5-minute) Pulse markets.
  - name: Portfolio
    description: Unauthenticated public portfolio reads.
  - name: Liquidity Rewards (public)
    description: |
      Unauthenticated liquidity-rewards reads under
      `/public/liquidity-rewards`. No Privy token.
  - name: Liquidity Rewards (authenticated)
    description: |
      Privy-gated liquidity-rewards reads under `/liquidity-rewards`.
      Send `Authorization: Bearer <privy_access_token>`.
externalDocs:
  description: Data API overview
  url: /data-api-reference/introduction
paths:
  /liquidity-rewards/me/summary:
    get:
      tags:
        - Liquidity Rewards (authenticated)
      summary: Authenticated user CP + USDC summary
      description: |
        **Requires `Authorization: Bearer <privy_access_token>`.**

        Lifetime totals, current-epoch amounts, and breakdowns for the
        Earnings header. `meta.endsInMs` drives the epoch progress bar.
        Maker is bound from the Privy session wallet.
      responses:
        '200':
          description: Summary cards for the signed-in user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiquidityRewardsMeSummary'
        '401':
          description: Missing or invalid Privy Bearer token
        '403':
          description: Authenticated user does not have access
      security:
        - PrivyBearer: []
components:
  schemas:
    LiquidityRewardsMeSummary:
      type: object
      description: |
        Earnings header cards. camelCase. Same shape for Privy
        `/me/summary` and public `/wallets/{wallet}/summary`.
      properties:
        meta:
          $ref: '#/components/schemas/LiquidityRewardsEpochMeta'
        flagged:
          type: boolean
          description: Whether the maker is flagged on the programme right now.
        me:
          type: object
          nullable: true
          description: Null when the authenticated user has no linked wallet.
          properties:
            usdc:
              type: object
              properties:
                totalReceived:
                  type: string
                makerRebates:
                  $ref: '#/components/schemas/LiquidityRewardsLifetimeToday'
                liquidityRewards:
                  $ref: '#/components/schemas/LiquidityRewardsLifetimeToday'
                currentEpoch:
                  $ref: '#/components/schemas/LiquidityRewardsCurrentEpochAmounts'
            cp:
              type: object
              properties:
                totalReceived:
                  type: string
                liquidity:
                  $ref: '#/components/schemas/LiquidityRewardsLifetimeToday'
                creatorBonus:
                  type: object
                  properties:
                    lifetime:
                      type: string
                currentEpoch:
                  $ref: '#/components/schemas/LiquidityRewardsCurrentEpochAmounts'
    LiquidityRewardsEpochMeta:
      type: object
      properties:
        itemCount:
          type: integer
        currentEpoch:
          type: integer
          example: 20713
        dayOpenMs:
          type: integer
        dayCloseMs:
          type: integer
        endsInMs:
          type: integer
          description: Milliseconds until the current UTC-day epoch closes.
    LiquidityRewardsLifetimeToday:
      type: object
      properties:
        lifetime:
          type: string
          example: '86.20'
        today:
          type: string
          example: '3.42'
    LiquidityRewardsCurrentEpochAmounts:
      type: object
      properties:
        allocated:
          type: string
        effective:
          type: string
        paid:
          type: string
        estimate:
          type: string
          nullable: true
        credited:
          type: string
          nullable: true
        projected:
          type: boolean
        projectedThroughMs:
          type: integer
          nullable: true
        status:
          type: string
  securitySchemes:
    PrivyBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |
        Privy access token. Required on `/liquidity-rewards/*`.
        Send `Authorization: Bearer <privy_access_token>`.
        Not used on `/public/liquidity-rewards/*`.

````