Heron End User Data Sources API

The EndUserDataSources API from Heron — 3 operation(s) for enduserdatasources.

Operations 3

PUT /api/data_sources/{heron_id} Update a data source
GET /api/end_users/{end_user_id_or_heron_id}/data_source_account_summary Get data source account summary
GET /api/end_users/{end_user_id_or_heron_id}/data_sources Get data sources

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-enduserdatasources-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 email required.

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

OpenAPI Specification

heron-enduserdatasources-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@herondata.io
    name: Support
  title: Heron Data End User Data Sources API
  version: '2021-07-19'
servers:
- description: Production
  url: https://app.herondata.io
security:
- ApiKeyAuth:
  - key_XXX
tags:
- name: EndUserDataSources
paths:
  /api/data_sources/{heron_id}:
    put:
      description: 'Update a data source

        '
      parameters:
      - in: path
        name: heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EndUserDataSourceUpdateSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndUserDataSource'
          description: Ok
      security:
      - ApiKeyAuth: []
      summary: Update a data source
      tags:
      - EndUserDataSources
  /api/end_users/{end_user_id_or_heron_id}/data_source_account_summary:
    get:
      description: 'Get a list of data sources accounts & their summarised information for a company

        '
      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/DataSourceAccountSummaryPublicSchema'
                type: array
          description: Ok
      security:
      - ApiKeyAuth: []
      summary: Get data source account summary
      tags:
      - EndUserDataSources
  /api/end_users/{end_user_id_or_heron_id}/data_sources:
    get:
      description: 'Get a list of data sources for a company

        '
      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/EndUserDataSources'
                type: array
          description: Ok
      security:
      - ApiKeyAuth: []
      summary: Get data sources
      tags:
      - EndUserDataSources
components:
  schemas:
    EndUser1:
      properties:
        end_user_id:
          description: id defined by user; links to the end_user_id for transactions
          example: 6a1d7831-8953-4f9f-a544-423cd8f48eb6
          maxLength: 140
          minLength: 1
          type: string
        heron_id:
          description: Unique id for end user generated by Heron
          example: eus_5yWkT2NZzCevkyPwbGhn2Z
          readOnly: true
          type: string
        name:
          description: Name of end user; may help to improve categorisation accuracy
          example: Company Name Inc.
          maxLength: 128
          type:
          - string
          - 'null'
      required:
      - end_user_id
      type: object
    DataSourceMetadata:
      properties:
        currency:
          description: Currency associated with the data source entity, where applicable (e.g. pdfs)
          example: USD
          type: string
        filename:
          description: Name of the file uploaded, where applicable (e.g. pdfs)
          example: 202348_JAN_2022.pdf
          type: string
        integration_heron_id:
          description: Unique Heron ID associated with an integration
          example: itg_mRmrrcVW6tH4VrCsNdJizV
          type: string
        integration_item_id:
          description: Unique item id associated with integration link data sources
          example: Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr
          type: string
        last_successful_sync:
          description: Last successful sync date associated with integration link data sources
          example: '2026-08-14T12:24:30.631769'
          format: date-time
          type: string
        notes:
          description: Notes associated with the data source entity, where applicable (e.g. pdfs)
          example: error with processing, 52 invalid transaction(s) extracted from statement
          type: string
        parsing_version:
          description: Parsing version associated with the data source entity, where applicable (e.g. pdfs)
          example: 1.0.0
          type: string
        sub_type:
          description: Sub type of the data source entity, where applicable (e.g. integration links)
          example: transaction
          type: string
      type: object
    EndUserDataSourceUpdateSchema:
      properties:
        is_enabled:
          default: true
          description: Whether or not the data source is enabled. If disabled, hides related transactions from analytics
          example: true
          type: boolean
      type: object
    EndUserDataSource:
      properties:
        created:
          description: When the data source was created in Heron system
          example: '2026-07-03T12:24:30.632547'
          format: date-time
          type: string
        data_source_accounts:
          description: List of data source accounts associated with the data source
          example:
          - account_id: '202348'
            anomaly_reasons:
            - Statement metadata changed
            - Manual review flagged suspicious edits
            anomaly_score: 200
            enabled: true
            max_date: '2022-01-31'
            min_date: '2022-01-01'
            num_transactions: 120
            transactions_match_balances: true
          items:
            $ref: '#/components/schemas/DataSourceAccount'
          type: array
        heron_id:
          description: Unique ID for data source generated by Heron
          example: dso_TnbTswnK8BN4y6qmGDaSku
          readOnly: true
          type: string
        is_enabled:
          default: true
          description: Whether or not the data source is enabled. If disabled, hides related transactions from analytics
          example: true
          type: boolean
        last_updated:
          description: When the data source was last updated in Heron system
          example: '2026-08-14T12:24:30.632574'
          format: date-time
          type: string
        metadata:
          allOf:
          - $ref: '#/components/schemas/DataSourceMetadata'
          description: Metadata associated with the data source
          example:
            filename: 202348_JAN_2022.pdf
            status: processed
        reference_id:
          description: Unique ID to identify the data source
          example: pdf_hUDqEpJqC35aR8RQoz3hda
          type: string
        status:
          description: Status of the data source entity, where applicable (e.g. pdfs, integration links)
          enum:
          - new
          - parsing
          - parsed
          - processed
          - human_reviewing
          - approved
          - rejected
          - failed
          - transactions_loaded
          - transactions_unloaded
          - pending
          - active
          - syncing
          - erroring
          - sync_disabled
          - deleted_in_plaid
          - unknown
          example: new
          type: string
        type:
          description: Data source type
          enum:
          - api
          - csv
          - pdf
          - integration_link
          - legacy
          - legacy_pdf
          - legacy_integration_link
          example: pdf
          type: string
      required:
      - created
      - data_source_accounts
      - heron_id
      - last_updated
      - reference_id
      - type
      type: object
    AccountBalance:
      properties:
        closing_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: The closing balance for the day
          example: 25000.45
        currency:
          description: Currency of the balance
          example: USD
          type: string
        date:
          description: Date of the balance
          example: '2022-01-01'
          format: date
          type: string
      required:
      - closing_amount
      type: object
    BankStatementSummaryRow:
      properties:
        actual_holdback_percentage:
          description: Actual MCA payments to revenue as % (raw repayment amounts)
          type:
          - number
          - 'null'
        additional_no_od:
          description: Overdraft-item count a bank reports as a statement value for items absent from the transaction list. These items are not included in the transaction-derived no_od field. Null when the statement does not report a count.
          type:
          - integer
          - 'null'
        average_balance:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Average balance
        average_balance_to_revenue_ratio:
          description: Average balance divided by total revenue
          type: number
        business_day_average_balance:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Average balance over weekdays excluding public holidays
        dd_reversals:
          description: Number of DD Reversals
          type: integer
        ending_balance:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Ending balance
        expected_mca_debits:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Expected MCA debits amount
        holdback_percentage:
          description: Expected MCA payments to revenue as % (with frequency multiplier)
          type:
          - number
          - 'null'
        is_mtd:
          description: Whether this row represents a month-to-date (MTD) partial statement
          type: boolean
        is_unreconcilable:
          description: True when the statement period has no usable balance data for reconciliation (e.g. an unreconciled partial-month statement)
          type:
          - boolean
          - 'null'
        low_balance_days:
          description: Number of days where end of day balance falls below low balance threshold
          type: integer
        mca_credits:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: MCA credits amount
        mca_debits:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: MCA debits amount
        negative_balance_days:
          description: Number of days with negative balance
          type: integer
        no_deposits:
          description: Number of deposit transactions
          type: integer
        no_mca_credits:
          description: Number of MCA credit transactions
          type: integer
        no_mca_debits:
          description: Number of MCA debit transactions
          type: integer
        no_nsf:
          description: Number of NSF transactions (unambiguous NSF-only category labels).
          type: integer
        no_od:
          description: Number of overdraft transactions (unambiguous OD-only category labels).
          type: integer
        no_od_nsf:
          description: 'Total overdraft/NSF fees: overdraft fees + NSF fees + ambiguous fees.'
          type: integer
        no_overdraft_transactions:
          description: Number of transactions where the resulting balance falls below 0
          type: integer
        no_revenue:
          description: Number of revenue transactions
          type: integer
        no_withdrawals:
          description: Number of withdrawals transactions
          type: integer
        non_revenue:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Non-revenue amount
        period_end_date:
          description: The last day covered by the statement period (e.g. a partial April statement covering Apr 1–15 has period_end_date=Apr 15, while a full April statement with data only through Apr 15 would still show Apr 30)
          format: date
          type:
          - string
          - 'null'
        period_start_date:
          description: The first day covered by the statement period (e.g. a partial April statement covering Apr 5–15 has period_start_date=Apr 5)
          format: date
          type:
          - string
          - 'null'
        starting_balance:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Starting balance for the period
        total_deposits:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Total deposit amount
        total_revenue:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Total revenue amount
        total_withdrawals:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Total withdrawal amount
      type: object
    DataSourceAccountSummaryPublicSchema:
      properties:
        data_source_account_summaries:
          items:
            $ref: '#/components/schemas/DataSourceAccountSummary'
          type: array
        end_user:
          $ref: '#/components/schemas/EndUser1'
      type: object
    DataSourceAccount:
      properties:
        account_id:
          description: Unique account id associated with the data source account
          example: '202348'
          type: string
        anomaly_reasons:
          description: Reasons associated with anomaly_score for pdf bank statement account sources
          example:
          - Statement metadata changed
          - Manual review flagged suspicious edits
          items:
            type: string
          type:
          - array
          - 'null'
        anomaly_score:
          description: For pdf bank statement account sources, where the value is between 0 and 1000, with 1000 being the most anomalous
          example: 200
          type: integer
        balances:
          description: List of balances associated with the account
          example:
          - closing_amount: 25000.45
            currency: USD
            date: '2022-01-01'
          items:
            $ref: '#/components/schemas/AccountBalance'
          type: array
        currency:
          description: Currency of the account
          example: USD
          type: string
        display_account_id:
          description: 'Human-readable account label for display: the last four digits of the account number (falling back to the account title). Not unique and not a key; use account_id to join.'
          example: '7505'
          type:
          - string
          - 'null'
        end_date:
          description: End date of the account
          example: '2022-01-31'
          format: date
          type: string
        heron_id:
          description: Unique ID for data source generated by Heron
          example: dso_bSTsiBKd9gS5GtAzg7dSAb
          type: string
        institution_name:
          description: Name of the institution
          example: Chase
          type: string
        is_enabled:
          description: Whether or not the account is enabled. If disabled, hides related transactions from analytics
          example: true
          type: boolean
        max_date:
          description: Latest date of transactions associated with the data source account
          example: '2022-01-31'
          format: date
          type: string
        min_date:
          description: Earliest date of transactions associated with the data source account
          example: '2022-01-01'
          format: date
          type: string
        name:
          description: Name of the account
          example: Checking Account
          type: string
        num_transactions:
          description: Number of transactions associated with the data source account
          example: 120
          type: integer
        number:
          description: Number of the account
          example: '123456789'
          type: string
        owner_name:
          description: Name of the account owner
          example: John Doe
          type: string
        reference_id:
          description: This is the account ID provided as part of the transaction
          example: account-202348
          type: string
        start_date:
          description: Start date of the account
          example: '2022-01-01'
          format: date
          type: string
        transactions_match_balances:
          description: For pdf bank statements, represents whether all transactions extracted match the balances extracted
          example: true
          type: boolean
        type:
          description: Type of the account
          example: Checking
          type: string
      required:
      - is_enabled
      type: object
    EndUserDataSources:
      properties:
        created:
          description: When the data source was created in Heron system
          example: '2026-07-03T12:24:30.632547'
          format: date-time
          type: string
        data_source_accounts:
          description: List of data source accounts associated with the data source
          example:
          - account_id: '202348'
            anomaly_reasons:
            - Statement metadata changed
            - Manual review flagged suspicious edits
            anomaly_score: 200
            enabled: true
            max_date: '2022-01-31'
            min_date: '2022-01-01'
            num_transactions: 120
            transactions_match_balances: true
          items:
            $ref: '#/components/schemas/EndUserDataSourceAccount'
          type: array
        heron_id:
          description: Unique ID for data source generated by Heron
          example: dso_TnbTswnK8BN4y6qmGDaSku
          readOnly: true
          type: string
        is_enabled:
          default: true
          description: Whether or not the data source is enabled. If disabled, hides related transactions from analytics
          example: true
          type: boolean
        last_updated:
          description: When the data source was last updated in Heron system
          example: '2026-08-14T12:24:30.632574'
          format: date-time
          type: string
        metadata:
          allOf:
          - $ref: '#/components/schemas/EndUserDataSourceMetadata'
          description: Metadata associated with the data source
          example:
            filename: 202348_JAN_2022.pdf
            status: processed
        reference_id:
          description: Unique ID to identify the data source
          example: pdf_hUDqEpJqC35aR8RQoz3hda
          type: string
        status:
          description: Status of the data source entity, where applicable (e.g. pdfs, integration links)
          enum:
          - new
          - parsing
          - parsed
          - processed
          - human_reviewing
          - approved
          - rejected
          - failed
          - transactions_loaded
          - transactions_unloaded
          - pending
          - active
          - syncing
          - erroring
          - sync_disabled
          - deleted_in_plaid
          - unknown
          example: new
          type: string
        type:
          description: Data source type
          enum:
          - api
          - csv
          - pdf
          - integration_link
          - legacy
          - legacy_pdf
          - legacy_integration_link
          example: pdf
          type: string
      required:
      - created
      - data_source_accounts
      - heron_id
      - last_updated
      - reference_id
      - type
      type: object
    EndUserDataSourceMetadata:
      properties:
        currency:
          description: Currency associated with the data source entity, where applicable (e.g. pdfs)
          example: USD
          type: string
        filename:
          description: Name of the file uploaded, where applicable (e.g. pdfs)
          example: 202348_JAN_2022.pdf
          type: string
        integration_heron_id:
          description: Unique Heron ID associated with an integration
          example: itg_mRmrrcVW6tH4VrCsNdJizV
          type: string
        integration_item_id:
          description: Unique item id associated with integration link data sources
          example: Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr
          type: string
        last_successful_sync:
          description: Last successful sync date associated with integration link data sources
          example: '2026-08-14T12:24:30.631769'
          format: date-time
          type: string
        notes:
          description: Notes associated with the data source entity, where applicable (e.g. pdfs)
          example: error with processing, 52 invalid transaction(s) extracted from statement
          type: string
        parsing_version:
          description: Parsing version associated with the data source entity, where applicable (e.g. pdfs)
          example: 1.0.0
          type: string
        sub_type:
          description: Sub type of the data source entity, where applicable (e.g. integration links)
          example: transaction
          type: string
      type: object
    DataSourceAccountSummary:
      properties:
        account:
          $ref: '#/components/schemas/EndUserDataSourceAccount'
        summary:
          allOf:
          - $ref: '#/components/schemas/BankStatementSummaryRow'
      type: object
    EndUserDataSourceAccount:
      properties:
        account_id:
          description: Unique account id associated with the data source account
          example: '202348'
          type: string
        anomaly_reasons:
          description: Reasons associated with anomaly_score for pdf bank statement account sources
          example:
          - Statement metadata changed
          - Manual review flagged suspicious edits
          items:
            type: string
          type:
          - array
          - 'null'
        anomaly_score:
          description: For pdf bank statement account sources, where the value is between 0 and 1000, with 1000 being the most anomalous
          example: 200
          type: integer
        balances:
          description: List of balances associated with the account
          example:
          - closing_amount: 25000.45
            currency: USD
            date: '2022-01-01'
          items:
            $ref: '#/components/schemas/AccountBalance'
          type: array
        currency:
          description: Currency of the account
          example: USD
          type: string
        display_account_id:
          description: 'Human-readable account label for display: the last four digits of the account number (falling back to the account title). Not unique and not a key; use account_id to join.'
          example: '7505'
          type:
          - string
          - 'null'
        end_date:
          description: End date of the account
          example: '2022-01-31'
          format: date
          type: string
        heron_id:
          description: Unique ID for data source generated by Heron
          example: dso_bSTsiBKd9gS5GtAzg7dSAb
          type: string
        institution_name:
          description: Name of the institution
          example: Chase
          type: string
        is_enabled:
          description: Whether or not the account is enabled. If disabled, hides related transactions from analytics
          example: true
          type: boolean
        max_date:
          description: Latest date of transactions associated with the data source account
          example: '2022-01-31'
          format: date
          type: string
        min_date:
          description: Earliest date of transactions associated with the data source account
          example: '2022-01-01'
          format: date
          type: string
        name:
          description: Name of the account
          example: Checking Account
          type: string
        num_transactions:
          description: Number of transactions associated with the data source account
          example: 120
          type: integer
        number:
          description: Number of the account
          example: '123456789'
          type: string
        owner_name:
          description: Name of the account owner
          example: John Doe
          type: string
        reference_id:
          description: This is the account ID provided as part of the transaction
          example: account-202348
          type: string
        start_date:
          description: Start date of the account
          example: '2022-01-01'
          format: date
          type: string
        transactions_match_balances:
          description: For pdf bank statements, represents whether all transactions extracted match the balances extracted
          example: true
          type: boolean
        type:
          description: Type of the account
          example: Checking
          type: string
      required:
      - is_enabled
      type: object
    Money:
      properties:
        amount:
          description: The amount of money
          example: '1234.56'
          type: number
        currency:
          description: The currency of the money
          example: USD
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey
externalDocs:
  description: Read Tutorial
  url: https://docs.herondata.io/