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

# Get paginated data source summaries

> Get a page of an end user's data sources with dashboard aggregates, newest first.



## OpenAPI

````yaml https://app.herondata.io/swagger get /api/end_users/{end_user_id_or_heron_id}/data_sources/summary
openapi: 3.0.0
info:
  contact:
    email: support@herondata.io
    name: Support
  title: Heron Data API
  version: '2021-07-19'
servers:
  - description: Production
    url: https://app.herondata.io
security:
  - ApiKeyAuth:
      - key_XXX
externalDocs:
  description: Read Tutorial
  url: https://docs.herondata.io/
paths:
  /api/end_users/{end_user_id_or_heron_id}/data_sources/summary:
    get:
      tags:
        - EndUserDataSources
      summary: Get paginated data source summaries
      description: >-
        Get a page of an end user's data sources with dashboard aggregates,
        newest first.
      parameters:
        - in: path
          name: end_user_id_or_heron_id
          required: true
          schema:
            type: string
        - description: Pagination page number
          in: query
          name: page
          required: false
          schema:
            default: 1
            minimum: 1
            type: integer
        - description: Pagination limit per page
          in: query
          name: limit
          required: false
          schema:
            default: 50
            maximum: 200
            minimum: 1
            type: integer
        - description: >-
            Filter to these PDF statuses. Repeat the parameter for more than
            one.
          explode: true
          in: query
          name: pdf_status
          required: false
          schema:
            items:
              enum:
                - new
                - parsing
                - parsed
                - processed
                - human_reviewing
                - approved
                - rejected
                - failed
                - transactions_loaded
                - transactions_unloaded
              type: string
            nullable: true
            type: array
          style: form
        - description: Filter by whether the data source is enabled.
          in: query
          name: is_enabled
          required: false
          schema:
            nullable: true
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  _meta:
                    allOf:
                      - $ref: '#/components/schemas/Pagination'
                      - properties:
                          counts:
                            properties:
                              by_pdf_status:
                                additionalProperties:
                                  type: integer
                                type: object
                              disabled:
                                type: integer
                              total:
                                type: integer
                            required:
                              - total
                              - disabled
                              - by_pdf_status
                            type: object
                        required:
                          - counts
                        type: object
                  data_sources:
                    items:
                      $ref: '#/components/schemas/EndUserDataSourceSummarySchema'
                    type: array
                type: object
          description: OK
      security:
        - ApiKeyAuth: []
components:
  schemas:
    Pagination:
      properties:
        next_url:
          description: the URL of the next page
          format: url
          nullable: true
          type: string
        num_results:
          description: the number of results on this page
          type: integer
        page:
          description: current page
          type: integer
        pages:
          description: the number of pages
          type: integer
        per_page:
          description: the max number of results per page
          type: integer
        prev_url:
          description: the URL of the last page
          format: url
          nullable: true
          type: string
        total:
          description: the number of results across all pages
          type: integer
      type: object
    EndUserDataSourceSummarySchema:
      properties:
        all_reconciled:
          nullable: true
          type: boolean
        anomaly_reasons:
          items:
            type: string
          nullable: true
          type: array
        created:
          description: When the data source was created in Heron system
          example: '2026-08-25T22:12:33.345255'
          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
        end_user_file_heron_id:
          nullable: true
          type: string
        end_user_file_reference_id:
          nullable: true
          type: string
        file_class:
          description: >-
            File class for PDF sources, such as `bank_statement` or
            `month_to_date`. Null for non-PDF sources.
          nullable: true
          type: string
        filename:
          nullable: true
          type: string
        has_unexplained_edits:
          nullable: true
          type: boolean
        heron_id:
          description: Unique ID for data source generated by Heron
          example: dso_bpuP3XwLX9WfEi9uxam6DF
          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-10-06T22:12:33.345335'
          format: date-time
          type: string
        max_anomaly_score:
          nullable: true
          type: integer
        max_date:
          format: date
          nullable: true
          type: string
        metadata:
          allOf:
            - $ref: '#/components/schemas/EndUserDataSourceMetadata'
          description: Metadata associated with the data source
          example:
            filename: 202348_JAN_2022.pdf
            status: processed
        min_date:
          format: date
          nullable: true
          type: string
        num_extracted_transactions:
          nullable: true
          type: integer
        num_statements:
          nullable: true
          type: integer
        num_transactions:
          type: integer
        reconciliation_method:
          description: >-
            How the reconciliation verdict was set: `start_and_end_balance`,
            `running_balance`, `summary_derived`, `total_debits_credits`, or
            `zero_balances` for ladder checks; `human` for a reviewer. Null
            means no method decided the verdict, including when nothing could be
            checked or when the reconciliation status is null.
          enum:
            - start_and_end_balance
            - summary_derived
            - running_balance
            - total_debits_credits
            - zero_balances
            - human
            - null
          nullable: true
        reconciliation_status:
          description: >-
            Stored reconciliation verdict. `reconciled` means a ladder check
            passed or a reviewer confirmed the document. `not_possible` means
            nothing available could verify it. `failed` means a ladder check
            failed or a reviewer ruled it unreconciled. Null means neither the
            ladder nor a reviewer set a verdict.
          enum:
            - failed
            - not_possible
            - reconciled
            - null
          nullable: true
          type: string
        reference_id:
          nullable: true
          type: string
        status:
          nullable: true
          type: string
        type:
          description: Data source type
          enum:
            - api
            - csv
            - pdf
            - integration_link
            - legacy
            - legacy_pdf
            - legacy_integration_link
          example: pdf
          type: string
      required:
        - all_reconciled
        - anomaly_reasons
        - created
        - data_source_accounts
        - end_user_file_heron_id
        - end_user_file_reference_id
        - file_class
        - filename
        - has_unexplained_edits
        - heron_id
        - last_updated
        - max_anomaly_score
        - max_date
        - min_date
        - num_extracted_transactions
        - num_statements
        - num_transactions
        - reconciliation_method
        - reconciliation_status
        - reference_id
        - status
        - type
      type: object
    EndUserDataSourceAccount:
      properties:
        account_id:
          description: PDF statement account identifier. Null for non-PDF sources.
          example: '202348'
          nullable: true
          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
          nullable: true
          type: array
        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
        dba:
          description: Doing Business As name printed on the bank statement
          example: Chickys
          nullable: true
          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; join heron_id to data_source_account_heron_id on
            transactions.
          example: '7505'
          nullable: true
          type: string
        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_HC7q5T2FCtM7JoMxhSjAMU
          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
    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_PVCAT77BFRbJufKad9jRCg
          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-10-06T22:12:33.344548'
          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
    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
    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

````

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