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

# PnL Sharpe leaderboard

> Annualized gross realized-PnL Sharpe proxy: sqrt(365) * mean daily PnL / sample standard deviation, with risk-free return zero. Not equity-normalized portfolio Sharpe; excludes fees, funding and unrealized PnL. Days without fills count as zero. Only completed UTC days are included; today is excluded. No equity eligibility filter applies to wallet routes. Uses 30 completed UTC calendar days. Top 50 wallets with latest stored account equity >= $2,500, at least minActiveDays completed UTC days with a fill in the window (default 10) and window realized PnL >= minPnl (default $1,000); equity and activity eligibility are applied before ranking. minActiveDays=1 with minPnl=-1000000000 removes the activity floors. Missing equity and zero-variance scores are excluded. No checkpoint-age cutoff is applied. EquityUpdatedAt identifies checkpoint age. Ranking breaks ties by realized PnL descending, then wallet ascending. Cached and proactively refreshed every 30 minutes; failed refreshes may serve the previous result. Cache refresh does not refresh equity checkpoints.



## OpenAPI

````yaml /api-reference/openapi.json get /api/public/v1/pulse/sharpe-leaderboard
openapi: 3.1.0
info:
  title: coinversa-api
  version: 0.1.0
servers:
  - url: https://api.coinversa.ai
    description: Production
security: []
paths:
  /api/public/v1/pulse/sharpe-leaderboard:
    get:
      summary: PnL Sharpe leaderboard
      description: >-
        Annualized gross realized-PnL Sharpe proxy: sqrt(365) * mean daily PnL /
        sample standard deviation, with risk-free return zero. Not
        equity-normalized portfolio Sharpe; excludes fees, funding and
        unrealized PnL. Days without fills count as zero. Only completed UTC
        days are included; today is excluded. No equity eligibility filter
        applies to wallet routes. Uses 30 completed UTC calendar days. Top 50
        wallets with latest stored account equity >= $2,500, at least
        minActiveDays completed UTC days with a fill in the window (default 10)
        and window realized PnL >= minPnl (default $1,000); equity and activity
        eligibility are applied before ranking. minActiveDays=1 with
        minPnl=-1000000000 removes the activity floors. Missing equity and
        zero-variance scores are excluded. No checkpoint-age cutoff is applied.
        EquityUpdatedAt identifies checkpoint age. Ranking breaks ties by
        realized PnL descending, then wallet ascending. Cached and proactively
        refreshed every 30 minutes; failed refreshes may serve the previous
        result. Cache refresh does not refresh equity checkpoints.
      operationId: get-api-public-v1-pulse-sharpe-leaderboard
      parameters:
        - description: Completed UTC days; only 30 is currently supported.
          explode: false
          in: query
          name: days
          schema:
            default: 30
            description: Completed UTC days; only 30 is currently supported.
            format: int32
            maximum: 30
            minimum: 30
            type: integer
        - description: >-
            Minimum distinct completed UTC days inside the 30-day window with at
            least one fill (default 10, 1-30). Same fill-day definition as
            /pulse/hidden-gems, which counts over all time instead. Applied
            before ranking. Filters out wallets whose score rests on a few
            trading days.
          explode: false
          in: query
          name: minActiveDays
          schema:
            default: 10
            description: >-
              Minimum distinct completed UTC days inside the 30-day window with
              at least one fill (default 10, 1-30). Same fill-day definition as
              /pulse/hidden-gems, which counts over all time instead. Applied
              before ranking. Filters out wallets whose score rests on a few
              trading days.
            format: int32
            maximum: 30
            minimum: 1
            type: integer
        - description: >-
            Minimum gross realized PnL in USD summed over the window, inclusive
            (default 1,000; -1,000,000,000 to 1,000,000,000). Same name, USD
            meaning and default as on /pulse/max-pain-events and
            /pulse/perfect-exits; unlike there, negatives are allowed so the
            floor can be switched off. Applied before ranking.
          explode: false
          in: query
          name: minPnl
          schema:
            default: 1000
            description: >-
              Minimum gross realized PnL in USD summed over the window,
              inclusive (default 1,000; -1,000,000,000 to 1,000,000,000). Same
              name, USD meaning and default as on /pulse/max-pain-events and
              /pulse/perfect-exits; unlike there, negatives are allowed so the
              floor can be switched off. Applied before ranking.
            format: double
            maximum: 1000000000
            minimum: -1000000000
            type: number
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharpeLeaderboardBody'
          description: OK
          headers:
            X-Billing-Grace-Expires:
              $ref: '#/components/headers/X-Billing-Grace-Expires'
            X-Billing-State:
              $ref: '#/components/headers/X-Billing-State'
            X-RateLimit-Daily:
              $ref: '#/components/headers/X-RateLimit-Daily'
            X-RateLimit-Daily-Reset:
              $ref: '#/components/headers/X-RateLimit-Daily-Reset'
            X-RateLimit-Monthly:
              $ref: '#/components/headers/X-RateLimit-Monthly'
            X-RateLimit-Monthly-Reset:
              $ref: '#/components/headers/X-RateLimit-Monthly-Reset'
            X-RateLimit-Next:
              $ref: '#/components/headers/X-RateLimit-Next'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-RateLimit-Route:
              $ref: '#/components/headers/X-RateLimit-Route'
            X-RateLimit-Scope:
              $ref: '#/components/headers/X-RateLimit-Scope'
            X-RateLimit-Tier:
              $ref: '#/components/headers/X-RateLimit-Tier'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad Request
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Forbidden
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Unprocessable Entity
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too Many Requests
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
            X-Billing-Grace-Expires:
              $ref: '#/components/headers/X-Billing-Grace-Expires'
            X-Billing-State:
              $ref: '#/components/headers/X-Billing-State'
            X-RateLimit-Daily:
              $ref: '#/components/headers/X-RateLimit-Daily'
            X-RateLimit-Daily-Reset:
              $ref: '#/components/headers/X-RateLimit-Daily-Reset'
            X-RateLimit-Monthly:
              $ref: '#/components/headers/X-RateLimit-Monthly'
            X-RateLimit-Monthly-Reset:
              $ref: '#/components/headers/X-RateLimit-Monthly-Reset'
            X-RateLimit-Next:
              $ref: '#/components/headers/X-RateLimit-Next'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-RateLimit-Route:
              $ref: '#/components/headers/X-RateLimit-Route'
            X-RateLimit-Scope:
              $ref: '#/components/headers/X-RateLimit-Scope'
            X-RateLimit-Tier:
              $ref: '#/components/headers/X-RateLimit-Tier'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Internal Server Error
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '504':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Gateway Timeout
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
      security:
        - apiKey: []
components:
  schemas:
    SharpeLeaderboardBody:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://api.coinversa.ai/schemas/SharpeLeaderboardBody.json
          format: uri
          readOnly: true
          type: string
        asOf:
          description: >-
            Midnight UTC at the exclusive end of the data window; not the
            calculation time.
          format: date-time
          type: string
        calculatedAt:
          format: date-time
          type: string
        days:
          format: int32
          type: integer
        endDayExclusive:
          description: Exclusive UTC date.
          type: string
        minActiveDays:
          description: Applied minimum fill days in the window.
          format: int32
          type: integer
        minEquity:
          format: double
          type: number
        minPnl:
          description: Applied minimum window realized PnL, USD.
          format: double
          type: number
        startDay:
          description: Inclusive UTC date.
          type: string
        traders:
          items:
            $ref: '#/components/schemas/SharpeLeaderboardTrader'
          type:
            - array
            - 'null'
      required:
        - minEquity
        - minActiveDays
        - minPnl
        - traders
        - days
        - startDay
        - endDayExclusive
        - calculatedAt
        - asOf
      type: object
    APIError:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://api.coinversa.ai/schemas/APIError.json
          format: uri
          readOnly: true
          type: string
        code:
          description: Machine-readable error code; retained for compatibility.
          type: string
        current_tier:
          description: Caller's effective tier
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        reason:
          description: >-
            More specific recovery reason when available: missing_api_key,
            invalid_api_key, insufficient_tier, invalid_parameters, or
            account_suspended. Account suspensions return 403 with code
            ACCOUNT_SUSPENDED; contact support rather than retrying or
            upgrading.
          type: string
        required_tier:
          description: Minimum tier for this operation
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upgrade_url:
          description: Where to upgrade
          type: string
      type: object
    SharpeLeaderboardTrader:
      additionalProperties: false
      properties:
        accountValue:
          description: Equity at the latest stored checkpoint, not necessarily live equity.
          format: double
          type: number
        activeDays:
          description: Completed UTC days in the window with at least one fill.
          format: int32
          type: integer
        annualizedPnlSharpe:
          description: Null with fewer than two completed days or zero daily PnL variance.
          format: double
          type:
            - number
            - 'null'
        equityUpdatedAt:
          format: date-time
          type:
            - string
            - 'null'
        meanDailyPnl:
          format: double
          type: number
        realizedPnl:
          format: double
          type: number
        stdDailyPnl:
          format: double
          type: number
        trades:
          format: int64
          type: integer
        wallet:
          type: string
      required:
        - activeDays
        - accountValue
        - equityUpdatedAt
        - wallet
        - annualizedPnlSharpe
        - realizedPnl
        - trades
        - meanDailyPnl
        - stdDailyPnl
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  headers:
    X-Billing-Grace-Expires:
      description: RFC3339 time when billing grace expires, when applicable.
      schema:
        type: string
    X-Billing-State:
      description: Billing grace state, when applicable.
      schema:
        type: string
    X-RateLimit-Daily:
      description: >-
        Daily account allowance reported by the existing counter check, clamped
        at zero. Best-effort; present only for a capped tier that reaches the
        quota check.
      schema:
        type: string
    X-RateLimit-Daily-Reset:
      description: >-
        Unix seconds (UTC) after the selected daily quota bucket expires. Not a
        source-data timestamp.
      schema:
        type: string
    X-RateLimit-Monthly:
      description: >-
        Monthly account allowance reported by the existing counter check,
        clamped at zero. Best-effort; present only for a capped tier that
        reaches the quota check.
      schema:
        type: string
    X-RateLimit-Monthly-Reset:
      description: >-
        Unix seconds (UTC) after the selected monthly quota bucket expires.
        Follows the existing billing anchor.
      schema:
        type: string
    X-RateLimit-Next:
      description: >-
        Legacy Go duration string until the next token is available across the
        checked buckets; not the daily/monthly reset.
      schema:
        type: string
    X-RateLimit-Remaining:
      description: >-
        Minimum remaining tokens across the checked minute and per-route token
        buckets (account for keys, IP for anonymous requests). Not a
        fixed-window request allowance.
      schema:
        type: string
    X-RateLimit-Reset:
      description: >-
        Unix seconds (UTC), rounded up, when the checked token buckets next
        permit a request, assuming no competing traffic. Not a full bucket
        refill.
      schema:
        type: string
    X-RateLimit-Route:
      description: Remaining tokens in the account's per-route token bucket.
      schema:
        type: string
    X-RateLimit-Scope:
      description: >-
        account for authenticated requests (shared across keys); ip for
        anonymous requests. Describes the limiter scope, not the key's resolved
        tier.
      schema:
        type: string
    X-RateLimit-Tier:
      description: Effective tier for this request; only present after access checks pass.
      schema:
        type: string
    X-Request-ID:
      description: >-
        Server-generated correlation ID. Include it in a support report; not a
        guarantee that an unauthenticated request appears in account usage logs.
      schema:
        type: string
    Retry-After:
      description: >-
        On HTTP 429, whole seconds to wait before retrying, rounded up. Other
        traffic may still consume the available allowance.
      schema:
        type: string
  securitySchemes:
    apiKey:
      description: >-
        Create an API key at https://developers.coinversa.ai/keys. REST limits
        are shared across keys by account; access uses the effective tier of the
        presented key.
      in: header
      name: X-API-Key
      type: apiKey

````

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