Heron End User Calculations API

The EndUserCalculations API from Heron — 18 operation(s) for endusercalculations.

Business capability
Credit Underwriting & Decisioning Management BC-1320.20

Operations 18

GET /api/end_users/balance Get EndUser balance #
GET /api/end_users/forecast Get EndUser forecasts #
GET /api/end_users/statistics Get EndUser statistics #
GET /api/end_users/{end_user_id_or_heron_id}/anomalies Get EndUser anomalies #
GET /api/end_users/{end_user_id_or_heron_id}/bank_statement_summary Get EndUser bank statement summary #
GET /api/end_users/{end_user_id_or_heron_id}/benchmarks Get EndUser metric benchmarks #
GET /api/end_users/{end_user_id_or_heron_id}/debt_candidates Get EndUser debt candidates #
GET /api/end_users/{end_user_id_or_heron_id}/export_spreadsheet Export as a spreadsheet #
GET /api/end_users/{end_user_id_or_heron_id}/grouped_transactions_report Get EndUser transactions grouped by counterparty or merchant #
GET /api/end_users/{end_user_id_or_heron_id}/heron_score Get EndUser Heron Score (beta) #
GET /api/end_users/{end_user_id_or_heron_id}/merchant_summary Get EndUser merchant summary #
GET /api/end_users/{end_user_id_or_heron_id}/named_dates Get EndUser named dates #
GET /api/end_users/{end_user_id_or_heron_id}/profit_and_loss Get EndUser cashflow P&L #
PUT /api/end_users/{end_user_id_or_heron_id}/profit_and_loss_layout Update EndUser P&L layout #
GET /api/end_users/{end_user_id_or_heron_id}/recurring_transactions_report Get EndUser recurring transactions report #
GET /api/end_users/{end_user_id_or_heron_id}/scorecard Get EndUser scorecard #
POST /api/end_users/{end_user_id_or_heron_id}/scorecard/async Request EndUser scorecard #
GET /api/end_users/{end_user_id_or_heron_id}/transaction_data_coverage Get EndUser transaction data coverage #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/heron-endusercalculations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

heron-endusercalculations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@herondata.io
    name: Support
  title: Heron Data End User Calculations API
  version: '2021-07-19'
servers:
- description: Production
  url: https://app.herondata.io
security:
- ApiKeyAuth:
  - key_XXX
tags:
- name: EndUserCalculations
paths:
  /api/end_users/balance:
    get:
      description: Get balance for given EndUser on a daily and account granularity
      parameters:
      - description: end_user_id for statistics; either end_user_id or end_user_heron_id is required
        in: query
        name: end_user_id
        required: false
        schema:
          example: your_end_user_id
          type:
          - string
          - 'null'
      - description: Heron-generated id for end user; either end_user_id or end_user_heron_id is required
        in: query
        name: end_user_heron_id
        required: false
        schema:
          example: eus_XsMoQMVt5wBnMZmnaAYy3v
          type:
          - string
          - 'null'
      - description: ISO 4217 currency code to convert to
        in: query
        name: to_currency
        required: false
        schema:
          enum:
          - GBP
          - USD
          - EUR
          - CAD
          - AUD
          - null
          example: USD
          type:
          - string
          - 'null'
      - description: Deprecated (use date_min instead). Filter for transactions with timestamp after the input value
        in: query
        name: timestamp_min
        required: false
        schema:
          example: '2026-08-14T12:24:38.244422'
          format: date-time
          type:
          - string
          - 'null'
      - description: Filter for transactions with timestamp after the input value (inclusive). It has precedence over timestamp_min
        in: query
        name: date_min
        required: false
        schema:
          example: '2026-08-14'
          format: date
          type:
          - string
          - 'null'
      - description: Deprecated (use date_max instead). Filter for transactions with timestamp earlier than the input value
        in: query
        name: timestamp_max
        required: false
        schema:
          example: '2026-08-13T12:24:38.244497'
          format: date-time
          type:
          - string
          - 'null'
      - description: Filter for transactions with date earlier than the input value (inclusive). It has precedence over timestamp_max
        in: query
        name: date_max
        required: false
        schema:
          example: '2026-08-13'
          format: date
          type:
          - string
          - 'null'
      - description: If true, forecasts the balances of each account
        in: query
        name: include_forecast
        required: false
        schema:
          default: false
          type: boolean
      - description: Filter by specific account reference IDs
        explode: true
        in: query
        name: account_ids
        required: false
        schema:
          default: []
          example:
          - '1234'
          - '5678'
          items:
            type: string
          type: array
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndUserBalanceOutputSchema'
          description: OK. Empty balances include a warning reason when no balance data is available.
        '404':
          description: EndUser not found or inaccessible
      security:
      - ApiKeyAuth: []
      summary: Get EndUser balance
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersBalance
      x-operation-id-source: derived
  /api/end_users/forecast:
    get:
      description: Get forecast amounts for a given EndUser and category
      parameters:
      - description: end_user_id for statistics; either end_user_id or end_user_heron_id is required
        in: query
        name: end_user_id
        required: false
        schema:
          example: your_end_user_id
          type:
          - string
          - 'null'
      - description: Heron-generated id for end user; either end_user_id or end_user_heron_id is required
        in: query
        name: end_user_heron_id
        required: false
        schema:
          example: eus_XsMoQMVt5wBnMZmnaAYy3v
          type:
          - string
          - 'null'
      - description: ISO 4217 currency code to convert to
        in: query
        name: to_currency
        required: false
        schema:
          enum:
          - GBP
          - USD
          - EUR
          - CAD
          - AUD
          - null
          example: USD
          type:
          - string
          - 'null'
      - description: Aggregate results over time, i.e., aggregate by week or by month
        in: query
        name: date_granularity
        required: false
        schema:
          default: month
          enum:
          - week
          - month
          example: month
          type: string
      - description: Heron ID of category to be forecasted; either category_heron_id or category_label must be present
        in: query
        name: category_heron_id
        required: false
        schema:
          example: ctg_SX2NJfurA6YLH3ybRifPuD
          type: string
      - description: Label of category to be forecasted; either category_heron_id or category_label must be present
        in: query
        name: category_label
        required: false
        schema:
          example: Revenue
          type: string
      - description: The earliest transaction timestamp date to use in forecasting
        in: query
        name: from_date
        required: false
        schema:
          example: '2022-01-01'
          format: date
          type:
          - string
          - 'null'
      - description: The latest transaction timestamp date to use in forecasting
        in: query
        name: to_date
        required: false
        schema:
          example: '2022-01-31'
          format: date
          type:
          - string
          - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EndUserForecastOutputSchema'
                type: array
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser forecasts
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersForecast
      x-operation-id-source: derived
  /api/end_users/statistics:
    get:
      description: Get summarized statistics for a given EndUser
      parameters:
      - description: end_user_id for statistics; either end_user_id or end_user_heron_id is required
        in: query
        name: end_user_id
        required: false
        schema:
          example: your_end_user_id
          type:
          - string
          - 'null'
      - description: Heron-generated id for end user; either end_user_id or end_user_heron_id is required
        in: query
        name: end_user_heron_id
        required: false
        schema:
          example: eus_XsMoQMVt5wBnMZmnaAYy3v
          type:
          - string
          - 'null'
      - description: ISO 4217 currency code to convert to
        in: query
        name: to_currency
        required: false
        schema:
          enum:
          - GBP
          - USD
          - EUR
          - CAD
          - AUD
          - null
          example: USD
          type:
          - string
          - 'null'
      - description: Filter for transactions with timestamp after the input value (as date)
        in: query
        name: from_date
        required: false
        schema:
          example: '2026-08-14'
          format: date
          type:
          - string
          - 'null'
      - description: Filter for transactions with timestamp before the input value (as date)
        in: query
        name: to_date
        required: false
        schema:
          example: '2026-08-13'
          format: date
          type:
          - string
          - 'null'
      - description: Aggregate results over time, e.g., by week or by quarter
        in: query
        name: date_granularity
        required: false
        schema:
          default: month
          enum:
          - day
          - week
          - month
          - quarter
          - year
          example: month
          type: string
      - description: Pivot results by merchant or by category
        in: query
        name: group_by
        required: false
        schema:
          default: category
          enum:
          - category
          - merchant
          example: category
          type: string
      - description: Filter by specific categories
        explode: true
        in: query
        name: category_heron_ids
        required: false
        schema:
          default: []
          example:
          - ctg_YodeQEhL98tvWeNCGbeQxu
          - ctg_6pfMRQGrRpErs9EQ2xVvUP
          items:
            type: string
          type: array
        style: form
      - description: Filter by specific merchants
        explode: true
        in: query
        name: merchant_heron_ids
        required: false
        schema:
          default: []
          example:
          - mrc_PFXgVK7KLCvKQiyaypxZuz
          - mrc_DbDnfPgb3qSMsrKBdFQMuh
          items:
            type: string
          type: array
        style: form
      - description: Filter by specific account reference IDs
        explode: true
        in: query
        name: account_ids
        required: false
        schema:
          default: []
          example:
          - '1234'
          - '5678'
          items:
            type: string
          type: array
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  statistics:
                    items:
                      $ref: '#/components/schemas/EndUserStatsOutputSchema'
                    type: array
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser statistics
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersStatistics
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/anomalies:
    get:
      description: Get anomalies for given EndUser given a category label or heron id
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Label or Heron ID of category to find anomalies for
        in: query
        name: category_label_or_heron_id
        required: true
        schema:
          example: Revenue
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AnomalySchema'
                type: array
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser anomalies
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdAnomalies
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/bank_statement_summary:
    get:
      description: Get the bank statement summary by month for an end user
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Determines how to group transactions. It supports calendar month (by_month) or rolling 30-day period (from last txns with rolling_30_days_from_last_txn or from today with rolling_30_days_from_today)
        in: query
        name: grouping
        required: false
        schema:
          default: by_month
          enum:
          - by_month
          - by_data_source_account_heron_id
          - rolling_30_days_from_last_txn
          - rolling_30_days_from_today
          - by_month_by_data_source_account_heron_id
          - by_month_by_account
          type: string
      - description: Number of full calendar months to show in the summary
        in: query
        name: num_full_calendar_months
        required: false
        schema:
          minimum: 1
          type:
          - integer
          - 'null'
      - description: Account ids to include in the summary, if not provided, all accounts are included
        explode: true
        in: query
        name: account_ids
        required: false
        schema:
          items:
            example: '1234'
            type: string
          type:
          - array
          - 'null'
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndUserBankStatementSummary'
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser bank statement summary
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdBankStatementSummary
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/benchmarks:
    get:
      description: Get the benchmarks for each metric for an end user
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  benchmarks:
                    items:
                      $ref: '#/components/schemas/MetricBenchmarksSchema'
                    type: array
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser metric benchmarks
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdBenchmarks
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/debt_candidates:
    get:
      description: Identify potential debt candidates.
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndUserMerchantSummary'
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser debt candidates
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdDebtCandidates
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/export_spreadsheet:
    get:
      description: Export a spreadsheet for an end user containing key metrics and reports
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                format: binary
                type: string
          description: OK
        '400':
          description: No transaction data available for the end user
        '500':
          description: Spreadsheet generation failed
      security:
      - ApiKeyAuth: []
      summary: Export as a spreadsheet
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdExportSpreadsheet
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/grouped_transactions_report:
    get:
      description: Get a report of transactions grouped by merchant or counterparty for an end user
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EndUserGroupedTransactionsReport'
                type: array
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser transactions grouped by counterparty or merchant
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdGroupedTransactionsReport
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/heron_score:
    get:
      description: Get Heron Score for end user with a breakdown of the feature group contributions which resulted in the score. The score is calculated for the day of last transaction. This is a beta feature and is subject to change.
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Minimum company categorisation confidence to calculate Heron Score
        in: query
        name: min_category_confidence
        required: false
        schema:
          example: 0.8
          type:
          - number
          - 'null'
      - description: Cut-off date to consider transactions to for calculating heron score (inclusive)
        in: query
        name: date
        required: false
        schema:
          example: '2023-01-19'
          format: date
          type:
          - string
          - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeronScoreSchema'
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser Heron Score (beta)
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdHeronScore
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/merchant_summary:
    get:
      description: Get the summary of transactions by merchant for an end user for given categories or analytics groups
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - explode: true
        in: query
        name: category_label_or_heron_id
        required: false
        schema:
          items:
            type: string
          minItems: 1
          type:
          - array
          - 'null'
        style: form
      - explode: true
        in: query
        name: analytics_group
        required: false
        schema:
          items:
            description: The category analytics group
            enum:
            - revenue
            - cost_of_goods_sold
            - operational_expenses
            - tax_expenses
            - intra_company
            - debt
            - equity
            - other_income
            - special_items
            - other
            - null
            example: debt
            type:
            - string
            - 'null'
          minItems: 1
          type:
          - array
          - 'null'
        style: form
      - description: Whether to group by counterparty transaction clusters
        in: query
        name: group_by_counterparty_txn_clusters
        required: false
        schema:
          default: false
          type: boolean
      - description: Account ids to include in the summary, if not provided, all accounts are included
        explode: true
        in: query
        name: account_ids
        required: false
        schema:
          items:
            example: '1234'
            type: string
          type:
          - array
          - 'null'
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndUserMerchantSummary'
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser merchant summary
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdMerchantSummary
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/named_dates:
    get:
      description: Get the named dates associated with an end user, e.g., date of last transaction
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  named_dates:
                    items:
                      $ref: '#/components/schemas/NamedDateSchema'
                    type: array
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser named dates
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdNamedDates
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/profit_and_loss:
    get:
      description: Calculates the cashflow profit & loss table for an end user, based on the layout defined (if any)
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: The earliest transaction timestamp date to use
        in: query
        name: from_date
        required: false
        schema:
          example: '2022-01-01'
          format: date
          type:
          - string
          - 'null'
      - description: The latest transaction timestamp date to use
        in: query
        name: to_date
        required: false
        schema:
          example: '2022-01-31'
          format: date
          type:
          - string
          - 'null'
      - description: If true, dates are sorted left to right by ascending order. False by default, i.e., by default sorted in descending date order so more recent dates are first
        in: query
        name: dates_ascending
        required: false
        schema:
          default: false
          type: boolean
      - description: ISO 4217 currency code for balance
        in: query
        name: currency
        required: false
        schema:
          enum:
          - GBP
          - USD
          - EUR
          - CAD
          - AUD
          - null
          example: USD
          type:
          - string
          - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfitAndLossSchema'
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser cashflow P&L
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdProfitAndLoss
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/profit_and_loss_layout:
    put:
      description: Update the profit and loss layout for the end user, which determines how the profit and loss table is calculated
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfitAndLossLayoutUpdateSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfitAndLossLayoutSchema'
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Update EndUser P&L layout
      tags:
      - EndUserCalculations
      operationId: putApiEndUsersByEndUserIdOrHeronIdProfitAndLossLayout
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/recurring_transactions_report:
    get:
      description: Get a report of recurring transactions grouped by merchant or counterparty for an end user
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Account ids to include in the report, if not provided, all accounts are included
        explode: true
        in: query
        name: account_ids
        required: false
        schema:
          items:
            example: '1234'
            type: string
          type:
          - array
          - 'null'
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EndUserRecurringTransactionsReport'
                type: array
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser recurring transactions report
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdRecurringTransactionsReport
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/scorecard:
    get:
      description: Get scorecard metrics and rule violations for a user
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Cut-off date to consider transactions to for calculating scorecard (inclusive)
        in: query
        name: date
        required: false
        schema:
          example: '2023-01-19'
          format: date
          type:
          - string
          - 'null'
      - description: Qualitative description for date to calculate scorecard
        in: query
        name: named_date
        required: false
        schema:
          enum:
          - end_user_created
          - end_user_last_updated
          - last_transaction
          - end_user_last_enriched
          - last_data_source_end_date_or_transaction_timestamp
          - custom_date
          - null
          example: end_user_created
          type:
          - string
          - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  metrics:
                    items:
                      $ref: '#/components/schemas/Metric'
                    type: array
                  rule_violations:
                    items:
                      $ref: '#/components/schemas/RuleViolation'
                    type: array
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser scorecard
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdScorecard
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/scorecard/async:
    post:
      description: Request scorecard metrics for a date and end user
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Cut-off date to consider transactions to for calculating scorecard (inclusive)
        in: query
        name: date
        required: true
        schema:
          example: '2023-01-19'
          format: date
          type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Request EndUser scorecard
      tags:
      - EndUserCalculations
      operationId: postApiEndUsersByEndUserIdOrHeronIdScorecardAsync
      x-operation-id-source: derived
  /api/end_users/{end_user_id_or_heron_id}/transaction_data_coverage:
    get:
      description: Information about dates covered by any transaction data source
      parameters:
      - in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - in: query
        name: start_date
        required: true
        schema:
          format: date
          type: string
      - in: query
        name: end_date
        required: true
        schema:
          format: date
          type: string
      - in: query
        name: include_disabled_data_sources
        required: false
        schema:
          default: true
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndUserTransactionDataCoverageSchema'
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get EndUser transaction data coverage
      tags:
      - EndUserCalculations
      operationId: getApiEndUsersByEndUserIdOrHeronIdTransactionDataCoverage
      x-operation-id-source: derived
components:
  schemas:
    EndUserBalanceOutputSchema:
      properties:
        daily_balances:
          items:
            $ref: '#/components/schemas/EndUserDailyBalance'
          type: array
        forecasted:
          items:
            $ref: '#/components/schemas/EndUserAccountBalanceForecast'
          type: array
        summary:
          $ref: '#/components/schemas/EndUserDailyBalance'
        warnings:
          description: Empty-balance reason codes. Populated responses return an empty list.
          items:
            enum:
            - no_transactions_present
            - transactions_present_but_not_enriched
            - transactions_enriched_but_no_balance_data
            type: string
          type: array
      type: object
    ProfitAndLossLayoutSchema:
      properties:
        sections:
          description: Ordered list of P&L sections
          items:
            $ref: '#/components/schemas/PnlSectionLayout'
          type: array
      type: object
    PnlMetricLayout:
      properties:
        denominator:
          allOf:
          - $ref: '#/components/schemas/PnlMetricFractionTerm'
          description: If the metric is a ratio, the denominator of the metric; otherwise this is just 1
        indent:
          description: Indentation level for formatting purposes
          type: integer
        is_growth:
          description: If true, calculates the % growth in the metric over time
          type: boolean
        name:
          description: Name of metric
          type: string
        numerator:
          allOf:
          - $ref: '#/components/schemas/PnlMetricFractionTerm'
          description: The numerator of the metric
      type: object
    GroupedTransaction:
      properties:
        amount:
          $ref: '#/components/schemas/Money'
        category:
          $ref: '#/components/schemas/GroupedTransactionsCategory'
        description:
          type: string
        heron_id:
          type: string
        timestamp:
          format: date-time
          type: string
      type: object
    AccountTransactionDataCoverageRange:
      properties:
        data_source_account:
          allOf:
          - $ref: '#/components/schemas/DataSourceAccount'
        end_date:
          format: date
          type: string
        has_coverage:
          type: boolean
        is_enabled:
          type:
          - boolean
          - 'null'
        start_date:
          format: date
          type: string
      required:
      - end_date
      - has_coverage
      - start_date
      type: object
    GroupedTransactionsCategory:
      properties:
        heron_id:
          type: string
        label:
          type: string
      type: object
    PnlSection:
      properties:
        metrics:
          description: Ordered list of P&L metrics
          items:
            $ref: '#/components/schemas/PnlMetric'
          type: array
        name:
          description: Name of P&L section, e.g,. Operating Expenses
          type: string
        slug:
          description: Slugified version of the name
          type: string
      type: object
    EndUserStatsOutputMetrics:
      properties:
        inflow:
          allOf:
          - $ref: '#/components/schemas/EndUserStatsOutputMetricsInstance'
          description: Metrics only counting inflows
        net:
          allOf:
          - $ref: '#/components/schemas/EndUserStatsOutputMetricsInstance'
          description: Net metrics
        outflow:
          allOf:
          - $ref: '#/components/schemas/EndUserStatsOutputMetricsInstance'
          description: Metrics on

# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/heron/refs/heads/main/openapi/heron-endusercalculations-api-openapi.yml