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

# Get treasury summary KPIs

> Pre-computed workspace treasury KPIs: total funds, 30d in/out/net flows (gross — a movement between two of your own accounts counts on both sides), coverage months, and period-over-period comparison. Category breakdowns are not included (deferred). See data_availability for missing provider/sync data.



## OpenAPI

````yaml /api-reference/platform-api.json get /v2/treasury/summary
openapi: 3.0.0
info:
  title: Range Platform API
  description: >-
    The Range Platform API for workspace management, counterparties, and
    operational tooling.
  version: 1.7.31
  contact: {}
servers:
  - url: https://api.range.org
    description: Range API Server
security:
  - Authorization: []
  - Authorization: []
tags:
  - name: Address Information
    description: Get information about a crypto address.
  - name: Transfer Enrichments
    description: Attach workspace-scoped notes and categories to transfers.
  - name: Counterparties
    description: Manage external entities, their addresses, bank accounts, and documents.
  - name: Parties
    description: >-
      The workspace entity register: the firm itself, its clients, and its
      counterparties.
paths:
  /v2/treasury/summary:
    get:
      tags:
        - Treasury
      summary: Get treasury summary KPIs
      description: >-
        Pre-computed workspace treasury KPIs: total funds, 30d in/out/net flows
        (gross — a movement between two of your own accounts counts on both
        sides), coverage months, and period-over-period comparison. Category
        breakdowns are not included (deferred). See data_availability for
        missing provider/sync data.
      operationId: getSummary
      parameters:
        - name: group
          required: false
          in: query
          description: Filter accounts by group name (exact match, case-sensitive).
          schema:
            type: string
            example: Treasury
        - name: type
          required: false
          in: query
          schema:
            example: bank
            type: string
            enum:
              - eoa
              - multisig
              - contract
              - custodian
              - exchange
              - bank
              - defi
        - name: provider
          required: false
          in: query
          schema:
            example: utila
            type: string
            enum:
              - utila
              - kraken
              - binance
              - okx
              - bybit
              - bitget
              - gate
              - kucoin
              - plaid
              - squads
              - altitude
              - coinbase
              - realms
              - wise
              - safe
              - hyperliquid
              - cubist
              - privy
              - dfns
              - anchorage
              - revolut_business
              - turnkey
              - fordefi
              - coins_ph
              - fireblocks
              - pave_bank
              - copper
              - custom
        - name: network
          required: false
          in: query
          description: Filter by account network/chain.
          schema:
            type: string
            example: ethereum
        - name: denom
          required: false
          in: query
          description: Filter balances and transfer legs by asset symbol.
          schema:
            type: string
            example: USDC
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreasurySummaryResponseDto'
components:
  schemas:
    TreasurySummaryResponseDto:
      type: object
      properties:
        total_funds_usd:
          type: number
          example: 724819.43
        inflow_30d_usd:
          type: number
          example: 95000
        outflow_30d_usd:
          type: number
          example: 71200
        net_30d_usd:
          type: number
          example: 23800
        leg_counts:
          description: >-
            Leg-level counts (and settledness) for the same 30d window as
            inflow_30d_usd/outflow_30d_usd/net_30d_usd above — a named,
            window-scoped member (RNG-6745) rather than flattened at the
            response root, where it would sit ambiguously beside
            net_flow_rate_usd, which covers a different (90-day) window below.
          allOf:
            - $ref: '#/components/schemas/TreasuryWindowLegCountsDto'
        net_flow_rate_usd:
          type: number
          example: -29200
          description: >-
            90-day rolling average net flow per month. Negative = depleting.
            Uses its own 90-day window, distinct from leg_counts' and
            inflow_30d_usd/outflow_30d_usd/net_30d_usd above, all of which cover
            the 30d window.
        coverage_months:
          type: number
          nullable: true
          example: 24.8
          description: Null when net_flow_rate_usd >= 0 (not depleting).
        account_count:
          type: number
          example: 12
        comparison:
          $ref: '#/components/schemas/TreasurySummaryComparisonDto'
        data_availability:
          description: >-
            Explicit availability of balances/flows so zeros are not mistaken
            for missing provider data.
          allOf:
            - $ref: '#/components/schemas/TreasuryDataAvailabilityDto'
      required:
        - total_funds_usd
        - inflow_30d_usd
        - outflow_30d_usd
        - net_30d_usd
        - leg_counts
        - net_flow_rate_usd
        - account_count
        - comparison
        - data_availability
    TreasuryWindowLegCountsDto:
      type: object
      properties:
        leg_count:
          type: number
          example: 4
          description: >-
            Matched legs (after the SELF and denom filters) behind the USD
            figures in this response — the denominator for unpriced_leg_count
            and spot_priced_leg_count below.
        unpriced_leg_count:
          type: number
          example: 0
          description: >-
            Matched legs (within leg_count) whose USD could not be resolved —
            either no provider supplied a price at all, or a published price
            existed but fell below the valuation floor.
        spot_priced_leg_count:
          type: number
          example: 0
          description: >-
            Matched legs (within leg_count) that this response valued via a spot
            lookup because their day had not settled yet, rather than a settled
            day's published price — the provisional part of the figures above.
            Counts only pricing decisions made while producing this response: a
            leg whose usd_amount arrived already set (stored at sync time,
            supplied by the provider, or persisted by an earlier request) is
            invisible to this count even if it was itself spot-derived, since
            nothing here re-prices it to find out. Not a signal that the window
            is fully settled — a window's own settled flag (where present)
            answers that instead.
        settled:
          type: boolean
          example: false
          description: >-
            True once every day covered by this window is expected to have a
            published settled price — the window's own end is past the
            publication cutoff for its last day. False almost always means the
            window extends to now (today is never settled). Derived purely from
            the window's own bounds and elapsed time, not from whether a price
            was actually published for that day — see spot_priced_leg_count and
            unpriced_leg_count above for what this response actually priced.
      required:
        - leg_count
        - unpriced_leg_count
        - spot_priced_leg_count
        - settled
    TreasurySummaryComparisonDto:
      type: object
      properties:
        period:
          type: string
          example: previous_30d
        total_funds_usd:
          type: number
          nullable: true
          example: 701019.43
          description: >-
            Prior-period total over the compared subset only (accounts_compared
            accounts — those with both a current balance and a trustworthy prior
            snapshot), not the whole portfolio. Distinct from the
            whole-portfolio total_funds_usd at the top level. Null when
            accounts_compared is 0.
        total_funds_delta_usd:
          type: number
          nullable: true
          example: 23800
          description: >-
            current − comparison.total_funds_usd, computed over the same
            compared subset on both sides (accounts_compared accounts). Null
            when accounts_compared is 0.
        total_funds_delta_pct:
          type: number
          nullable: true
          example: 0.034
          description: >-
            Derived from the same compared-subset totals as
            total_funds_delta_usd. Null when accounts_compared is 0 or the
            compared subset had a $0 prior total.
        accounts_compared:
          type: number
          example: 7
          description: >-
            Number of accounts present on both sides of the comparison — a
            current balance and a trustworthy prior snapshot. The three fields
            above are like-for-like over this subset, while the top-level
            total_funds_usd covers all account_count accounts — the two are not
            directly comparable when accounts_compared < account_count.
        inflow_30d_usd:
          type: number
          example: 83000
        inflow_delta_usd:
          type: number
          example: 12000
        inflow_delta_pct:
          type: number
          nullable: true
          example: 0.145
        outflow_30d_usd:
          type: number
          example: 76200
        outflow_delta_usd:
          type: number
          example: -5000
        outflow_delta_pct:
          type: number
          nullable: true
          example: -0.066
        net_30d_usd:
          type: number
          example: 6800
        net_delta_usd:
          type: number
          example: 17000
        net_delta_pct:
          type: number
          nullable: true
          example: 2.5
        coverage_months:
          type: number
          nullable: true
          example: 22.1
          description: >-
            Prior funds / prior burn rate, both whole-portfolio (never subsetted
            to accounts_compared — burn is an all-account flow figure). Null
            unless historical_balances is `available`, since a partial numerator
            over a whole-portfolio denominator would mix populations.
        coverage_months_delta:
          type: number
          nullable: true
          example: 2.7
          description: >-
            coverage_months − comparison.coverage_months. Null unless
            historical_balances is `available`.
      required:
        - period
        - accounts_compared
        - inflow_30d_usd
        - inflow_delta_usd
        - outflow_30d_usd
        - outflow_delta_usd
        - net_30d_usd
        - net_delta_usd
    TreasuryDataAvailabilityDto:
      type: object
      properties:
        balances:
          type: string
          enum:
            - available
            - unavailable
            - partial
            - truncated
          example: available
          description: >-
            Whether current account balances could be summed. `partial` when
            some accounts lack priced balances.
        flows:
          type: string
          enum:
            - available
            - unavailable
            - partial
            - truncated
          example: available
          description: >-
            Whether connection-transaction flows could be aggregated.
            `unavailable` when no synced history exists; `truncated` when the
            lookback exceeded the page cap.
        historical_balances:
          type: string
          enum:
            - available
            - partial
            - unavailable
          example: available
          description: >-
            Whether a point-in-time balance snapshot ~30d ago was found, out of
            all matching accounts. `partial` when some but not all matching
            accounts have a trustworthy prior snapshot. This reports
            prior-snapshot coverage only, independent of whether those accounts
            also have a current balance — see comparison.accounts_compared for
            the actual like-for-like subset. `unavailable` when no matching
            account has a prior snapshot, in which case
            comparison.total_funds_usd and its dependent fields are null.
        unpriced_asset_count:
          type: number
          example: 0
          description: >-
            Count of asset lines with usd=null that were excluded from totals
            (not silently dropped from account_count).
        notes:
          example: []
          description: Human-readable notes about missing or incomplete data.
          type: array
          items:
            type: string
      required:
        - balances
        - flows
        - historical_balances
        - unpriced_asset_count
        - notes
  securitySchemes:
    Authorization:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Authorization method required to allow user to access the api endpoints.

````

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