> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-issue-698-scan-api-single-page.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# /v0/scan-proxy/holdings/summary

> Returns the summary of active amulet contracts for a given migration id and record time, for the given parties.
This is an aggregate of `/v0/holdings/state` by owner party ID with better performance than client-side computation.




## OpenAPI

````yaml /openapi/splice/validator/scan-proxy.yaml post /v0/scan-proxy/holdings/summary
openapi: 3.0.0
info:
  title: Validator API
  version: 0.0.1
servers:
  - url: https://example.com/api/validator
security: []
tags:
  - name: validator
paths:
  /v0/scan-proxy/holdings/summary:
    post:
      tags:
        - scan-proxy
      summary: /v0/scan-proxy/holdings/summary
      description: >
        Returns the summary of active amulet contracts for a given migration id
        and record time, for the given parties.

        This is an aggregate of `/v0/holdings/state` by owner party ID with
        better performance than client-side computation.
      operationId: getHoldingsSummaryAt
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HoldingsSummaryRequest'
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoldingsSummaryResponse'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    HoldingsSummaryRequest:
      type: object
      required:
        - migration_id
        - record_time
        - owner_party_ids
      properties:
        migration_id:
          type: integer
          format: int64
          description: |
            The migration id for which to return the summary.
        record_time:
          type: string
          format: date-time
          description: >
            The timestamp at which the contract set was active.

            This needs to be an exact timestamp, i.e.,

            needs to correspond to a timestamp reported by
            `/v0/state/acs/snapshot-timestamp` if `record_time_match` is set to
            `exact` (which is the default).

            If `record_time_match` is set to `at_or_before`, this can be any
            timestamp, and the most recent snapshot at or before the given
            `record_time` will be returned.
        record_time_match:
          type: string
          description: >
            How to match the record_time. "exact" requires the record_time to
            match exactly.

            "at_or_before" finds the most recent snapshot at or before the given
            record_time.
          enum:
            - exact
            - at_or_before
          default: exact
        owner_party_ids:
          type: array
          items:
            type: string
          minItems: 1
          description: |
            The owners for which to compute the summary.
        as_of_round:
          type: integer
          format: int64
          description: >
            Compute holding fees as of this round. Defaults to the earliest open
            mining round.
    HoldingsSummaryResponse:
      type: object
      required:
        - record_time
        - migration_id
        - computed_as_of_round
        - summaries
      properties:
        record_time:
          description: The same `record_time` as in the request.
          type: string
          format: date-time
        migration_id:
          description: The same `migration_id` as in the request.
          type: integer
          format: int64
        computed_as_of_round:
          description: The same `as_of_round` as in the request, with the same default.
          type: integer
          format: int64
        summaries:
          type: array
          items:
            $ref: '#/components/schemas/HoldingsSummary'
    HoldingsSummary:
      description: Aggregate Amulet totals for a particular owner party ID.
      type: object
      required:
        - party_id
        - total_unlocked_coin
        - total_locked_coin
        - total_coin_holdings
        - accumulated_holding_fees_unlocked
        - accumulated_holding_fees_locked
        - accumulated_holding_fees_total
        - total_available_coin
      properties:
        party_id:
          description: >
            Owner party ID of the amulet. Guaranteed to be unique among
            `summaries`.
          type: string
        total_unlocked_coin:
          description: |
            Sum of unlocked amulet at time of reception, not counting holding
            fees deducted since.
          type: string
        total_locked_coin:
          description: |
            Sum of locked amulet at time of original amulet reception, not
            counting holding fees deducted since.
          type: string
        total_coin_holdings:
          description: |
            `total_unlocked_coin` + `total_locked_coin`.
          type: string
        accumulated_holding_fees_unlocked:
          description: |
            Sum of holding fees as of `computed_as_of_round` that apply to
            unlocked amulet.
          type: string
        accumulated_holding_fees_locked:
          description: |
            Sum of holding fees as of `computed_as_of_round` that apply to
            locked amulet, including fees applied since the amulet's creation
            round.
          type: string
        accumulated_holding_fees_total:
          description: >
            Same as `accumulated_holding_fees_unlocked` +
            `accumulated_holding_fees_locked`.
          type: string
        total_available_coin:
          description: Same as `total_unlocked_coin` - `accumulated_holding_fees_unlocked`.
          type: string
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
  responses:
    '400':
      description: bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    '404':
      description: not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    '500':
      description: internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'

````