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

# Get realized gains & losses

> Returns proceeds, cost basis and realized gains or losses for the disposal period, with the calculation method.



## OpenAPI

````yaml openapi-public-preview.json GET /v1/reports/realized-gains
openapi: 3.1.0
info:
  title: Entendre API
  version: 1.0.0
  description: Programmatic access to crypto-native accounting and treasury operations.
servers:
  - url: https://api.entendre.finance
    description: Production API.
security:
  - ApiKey: []
tags:
  - name: Organization
    description: Read your organization profile and find members for agent assignments.
  - name: Transactions
    description: Find transactions, inspect their details and create manual records.
  - name: Sources
    description: >-
      Manage wallets, exchange accounts, bank accounts and other transaction
      sources.
  - name: Assets
    description: Inspect asset acquisitions, remaining quantities and cost basis.
  - name: Journals
    description: >-
      Create and post journal entries, correct eligible entries and sync posted
      journals to a connected general ledger.
  - name: Documents
    description: >-
      Upload documents, check processing status and link supporting evidence to
      transactions.
  - name: Legal Entities
    description: Manage the legal entities used in your accounting records.
  - name: Ledger Accounts
    description: Manage your chart of accounts and find accounts for journal entries.
  - name: Tags
    description: Create and manage tags to classify your records.
  - name: Accruals
    description: >-
      Create and post accruals, inspect their status and reverse eligible
      entries.
  - name: Cash Application
    description: Match deposits to invoices and manage the resulting cash applications.
  - name: Classification
    description: >-
      Classify transactions in a batch, post eligible entries and inspect the
      results.
  - name: Revaluation
    description: Run asset revaluations for an accounting period and check their results.
  - name: Accounting Periods
    description: Check whether a period is ready to close, then close or reopen it.
  - name: Income Statement
    description: View revenue, expenses and net income for a reporting period.
  - name: Balance Sheet
    description: View assets, liabilities and equity as of a reporting date.
  - name: Trial Balance
    description: Review ledger account balances and debit and credit totals.
  - name: Closing Positions
    description: View asset positions at the end of a reporting period.
  - name: Treasury Balances
    description: Review treasury balances by asset and source.
  - name: Realized Gains & Losses
    description: Review realized gains and losses from asset dispositions.
  - name: Asset Tax Lots
    description: Inspect asset tax lots, remaining quantities and cost basis.
  - name: Schedule of Dispositions
    description: >-
      Review asset dispositions and their proceeds, cost basis and gains or
      losses.
  - name: Financial Insights
    description: Review financial insights for your selected reporting context.
  - name: Agents
    description: Create agents, schedule their work and inspect their runs.
  - name: Memory
    description: Read, search and maintain the memory files your agents use.
  - name: Connections
    description: Connect providers, manage authorization and disconnect.
  - name: GL Mapping
    description: >-
      Map ledger accounts and legal entities to your ERP. Import legal entities,
      tags and chart of accounts.
  - name: Request
    description: Request information, documents or connections from a client.
  - name: Client
    description: Manage your firm’s client relationships.
  - name: Team
    description: Invite team members and manage their access to your firm.
  - name: Settings
    description: Read and update your firm settings.
paths:
  /v1/reports/realized-gains:
    get:
      tags:
        - Realized Gains & Losses
      summary: Get realized gains & losses
      description: >-
        Return proceeds, cost basis, and realized gains or losses for the
        disposal period. The report includes its calculation method.
      operationId: get_realized_gains_and_losses
      parameters:
        - name: accounting_period_ids
          in: query
          schema:
            type: array
            items:
              type: string
          description: >-
            Any of these accounting period IDs. Omit to include all periods
            within the other filters.
          style: form
          explode: true
        - name: asset_types
          in: query
          schema:
            type: array
            items:
              type: string
          description: >-
            Asset type filters (such as `ETH`, `USDC`). Omit to include every
            asset type.
          style: form
          explode: true
        - name: summary
          in: query
          required: false
          schema:
            type: boolean
          description: >-
            Include totals across all matching pages, grouped by currency. If
            totals cannot be calculated, the request fails.
        - name: limit
          in: query
          required: false
          description: Maximum number of records to return.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
        - name: cursor
          in: query
          required: false
          description: >-
            The `next_cursor` value from the previous page. Keep the other
            filters unchanged.
          schema:
            type: string
        - name: legal_entity_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              description: Legal entity ID (`le_…`).
              example: le_507f1f77bcf86cd799439011
            maxItems: 100
            uniqueItems: true
          style: form
          explode: true
          description: >-
            Filter by one or more legal entity IDs. Omit to include all
            authorized entities. An empty list is invalid.
      responses:
        '200':
          description: The request succeeded.
          headers:
            X-Request-Id:
              description: Support correlation ID.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/RealizedGains'
                    description: The records.
                  has_more:
                    type: boolean
                    description: Whether another page is available.
                  next_cursor:
                    type:
                      - string
                      - 'null'
                    description: Cursor for the next page, or `null` on the last page.
                  summary:
                    $ref: '#/components/schemas/RealizedGainsSummary'
                required:
                  - data
                  - has_more
                  - next_cursor
                additionalProperties: false
              example:
                data:
                  - asset_type: ETH
                    asset_record: ast_507f1f77bcf86cd799439011
                    date_received: '2026-08-01T00:00:00Z'
                    quantity: '100.00'
                    remaining_quantity: '0.00'
                    cost_basis: '100.00'
                    currency: USD
                    disposals:
                      - sale_date: '2026-08-31T12:00:00Z'
                        quantity_sold: '100.00'
                        sale_price: '110.00'
                has_more: false
                next_cursor: null
                summary:
                  methodology: per_unit_cost_basis_approximation
                  by_currency:
                    - currency: USD
                      total_proceeds: '11000.00'
                      total_cost_basis: '10000.00'
                      total_gain: '1000.00'
                      short_term_gain: '1000.00'
                      long_term_gain: '0.00'
                      disposal_count: 1
                      sold_asset_count: 1
                  currency: USD
                  total_proceeds: '11000.00'
                  total_cost_basis: '10000.00'
                  total_gain: '1000.00'
                  short_term_gain: '1000.00'
                  long_term_gain: '0.00'
                  disposal_count: 1
                  sold_asset_count: 1
        '400':
          description: >-
            The request is invalid. `error.fields` lists the fields to correct.
            Nothing was changed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: VALIDATION_ERROR
                  message: Invalid path, query or request body.
                  request_id: req_example
        '401':
          description: The API key is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: UNAUTHORIZED
                  message: Authentication is required.
                  request_id: req_example
        '403':
          description: >-
            The API key does not have the required scope or is not associated
            with a user, or the action needs a review in the dashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: FORBIDDEN
                  message: Insufficient access to organization
                  request_id: req_example
        '404':
          description: The resource does not exist, or your organization cannot access it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: RESOURCE_NOT_FOUND
                  message: Resource not found
                  request_id: req_example
        '429':
          description: >-
            Too many requests. If the response has a `Retry-After` header, wait
            that many seconds before you retry. Otherwise, read `error.message`.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: RATE_LIMITED
                  message: Rate limit exceeded. Retry after 30s.
                  request_id: req_example
        '500':
          description: >-
            An unexpected error occurred. A write can still have taken effect;
            check the resource before you retry. Give the `request_id` to
            support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: INTERNAL_ERROR
                  message: Internal server error
                  request_id: req_example
        '503':
          description: >-
            A service that this operation needs is unavailable. If the response
            has a `Retry-After` header, wait that many seconds. Check for
            earlier accepted work before you send the request again.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: SERVICE_UNAVAILABLE
                  message: Service unavailable.
                  request_id: req_example
components:
  schemas:
    RealizedGains:
      type: object
      required:
        - asset_type
        - asset_record
        - date_received
        - quantity
        - remaining_quantity
        - cost_basis
        - currency
        - disposals
      properties:
        asset_type:
          type: string
          description: Token / currency symbol (such as `ETH`, `USDC`).
        asset_record:
          type: string
          description: Asset record ID.
        date_received:
          type: string
          format: date-time
          description: >-
            ISO timestamp when the lot was acquired. The field name matches the
            schedule of dispositions report.
        quantity:
          type: string
          description: Original quantity acquired, as a decimal string.
        remaining_quantity:
          type: string
          description: Quantity still held after all disposals.
        cost_basis:
          type: string
          description: Cost basis per unit, as a decimal string.
        currency:
          type: string
          description: Currency of the proceeds and cost basis.
          example: USD
        disposals:
          type: array
          description: Disposal events for this lot.
          items:
            type: object
            required:
              - sale_date
              - quantity_sold
              - sale_price
            properties:
              sale_date:
                type: string
                format: date-time
                description: Date of the disposal (ISO 8601).
              quantity_sold:
                type: string
                description: Quantity disposed on this event.
              sale_price:
                type: string
                description: Proceeds per unit, as a decimal string.
    RealizedGainsSummary:
      type: object
      description: >-
        Present when `summary=true`. Totals cover all pages. Flat totals appear
        only for a single currency.
      required:
        - methodology
        - by_currency
        - disposal_count
        - sold_asset_count
      properties:
        methodology:
          type: string
          description: >-
            Always `per_unit_cost_basis_approximation`: (sale price − cost
            basis) × quantity sold, for each disposal.
        by_currency:
          type: array
          description: >-
            Totals for each lot currency, sorted by currency code. Currencies
            are not combined.
          items:
            $ref: '#/components/schemas/RealizedGainsCurrencyBlock'
        disposal_count:
          type: integer
          description: >-
            Total number of disposal events in the period, across all currencies
            (counts are currency-independent).
        sold_asset_count:
          type: integer
          description: >-
            Number of sold asset lots aggregated across all currencies (the rows
            the paginated report would return).
        currency:
          type: string
          description: >-
            ISO 4217 fiat currency of the flat totals. Present only when the
            whole scope is single-currency.
        total_proceeds:
          type: string
          description: >-
            Sum of proceeds from all disposals (decimal string). Present only
            when single-currency.
        total_cost_basis:
          type: string
          description: >-
            Sum of cost basis for all disposals (decimal string). Present only
            when single-currency.
        total_gain:
          type: string
          description: >-
            Net gain or loss. Negative values indicate a net loss (decimal
            string). Present only when single-currency.
        short_term_gain:
          type: string
          description: >-
            Gain/loss from assets held 1 year or less (decimal string). Present
            only when single-currency.
        long_term_gain:
          type: string
          description: >-
            Gain/loss from assets held more than 1 year (365.25-day boundary)
            (decimal string). Present only when single-currency.
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: Machine-readable error code.
            message:
              type: string
              description: Technical description for developers.
            fields:
              type: object
              additionalProperties:
                type: string
              description: >-
                Present only on VALIDATION_ERROR. Maps failing field paths to
                reason strings.
            details:
              type: object
              additionalProperties: true
              description: >-
                Optional redacted diagnostic details. Request validation uses
                fields or field_errors.
            suggested_action:
              type: string
              description: A suggested next step.
            documentation_url:
              type: string
              format: uri
              description: Link to documentation about this error.
            request_id:
              type: string
              description: Unique request ID for support escalation.
          description: Error details.
    RealizedGainsCurrencyBlock:
      type: object
      required:
        - currency
        - total_proceeds
        - total_cost_basis
        - total_gain
        - short_term_gain
        - long_term_gain
        - disposal_count
        - sold_asset_count
      properties:
        currency:
          type: string
          description: >-
            ISO 4217 fiat currency these totals are denominated in (from the
            lots' own records).
        total_proceeds:
          type: string
          description: Sum of proceeds from this currency's disposals (decimal string).
        total_cost_basis:
          type: string
          description: Sum of cost basis for this currency's disposals (decimal string).
        total_gain:
          type: string
          description: >-
            Net gain or loss in this currency. Negative values indicate a net
            loss (decimal string).
        short_term_gain:
          type: string
          description: Gain/loss from assets held 1 year or less (decimal string).
        long_term_gain:
          type: string
          description: >-
            Gain/loss from assets held more than 1 year (365.25-day boundary)
            (decimal string).
        disposal_count:
          type: integer
          description: Disposal events in this currency.
        sold_asset_count:
          type: integer
          description: Sold asset lots in this currency.
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Your organization API key. Some operations also need a key that is
        associated with a user; their pages say so.

````