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

# Account profile

> Aggregate stats, realized and indicative P&L, a cumulative-volume series, leaderboard rank, and on-chain display name for any address.

The full public profile for an address: lifetime stats and win rate, a cumulative-volume time series, positions with realized or indicative P\&L, leaderboard rank, the on-chain display name, and any active promo flag.


## OpenAPI

````yaml GET /accounts/{address}/profile
openapi: 3.1.0
info:
  title: counsel API
  version: 1.0.0
  description: >-
    Public, read-only HTTP API for counsel, an L1-native parimutuel prediction
    market on the XRP Ledger. No API key, no auth, all responses JSON. It
    exposes live market state, indicative odds, unsigned bet construction,
    account positions and profiles, a copy-trading feed, and the
    SourceTag-attributed leaderboard.
  contact:
    name: counsel
    url: https://counsel.markets
  license:
    name: MIT
servers:
  - url: https://api.counsel.markets
    description: Canonical API host
  - url: https://counsel.markets/api/v1
    description: Path-based equivalent
security: []
paths:
  /accounts/{address}/profile:
    get:
      tags:
        - Accounts
      summary: Account profile
      description: >-
        Stats, a cumulative-volume series, positions with P&L, leaderboard rank,
        on-chain display name, and promo status.
      operationId: getProfile
      parameters:
        - name: address
          in: path
          required: true
          schema:
            type: string
          description: XRPL classic address.
          example: rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe
      responses:
        '200':
          description: Profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
        '400':
          description: Invalid address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Profile:
      type: object
      required:
        - account
        - display_name
        - rank
        - promo
        - stats
        - series
        - positions
      properties:
        account:
          type: string
        display_name:
          type:
            - string
            - 'null'
          description: On-chain claimed display name, or null.
        rank:
          type:
            - integer
            - 'null'
          description: Leaderboard rank (1-based), or null if unranked.
        promo:
          type: object
          properties:
            active:
              type: boolean
            expiresAt:
              type:
                - string
                - 'null'
            label:
              type:
                - string
                - 'null'
        stats:
          type: object
          properties:
            volume_xrp:
              type: number
            bets:
              type: integer
            markets:
              type: integer
            won:
              type: integer
            lost:
              type: integer
            void:
              type: integer
            pending:
              type: integer
            win_rate:
              type:
                - number
                - 'null'
        series:
          type: array
          items:
            type: object
            properties:
              t:
                type: integer
                description: Unix ms.
              cumulative_xrp:
                type: number
        positions:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/Position'
              - type: object
                properties:
                  pnl_xrp:
                    type: number
                    description: Realized (settled) or indicative unrealized P&L.
                  projected_xrp:
                    type: number
                    description: >-
                      Indicative payout if a pending position wins at the
                      current pool.
    Error:
      type: object
      properties:
        error:
          type: string
          example: market not found
    Position:
      type: object
      required:
        - market_id
        - question
        - outcome
        - outcome_label
        - staked_xrp
        - phase
        - result
      properties:
        market_id:
          type: string
        question:
          type: string
        outcome:
          type: integer
        outcome_label:
          type: string
        staked_xrp:
          type: number
        phase:
          type: string
        result:
          type: string
          enum:
            - pending
            - won
            - lost
            - void

````