---
title: "GET /api/transactions"
method: GET
path: "/api/transactions"
tags: ["Transactions"]
---

# GET /api/transactions

`GET /api/transactions`

Get transactions. At least `end_user_id`, `heron_id` or `request_id` must be provided.

## Query parameters

- `from_date` string, date
- `to_date` string, date
- `created_date_min` string, date
- `created_date_max` string, date
- `last_updated_min` string, date-time
- `last_updated_max` string, date-time
- `timestamp_date_min` string, date
- `timestamp_date_max` string, date
- `category_heron_id` string[], nullable
- `request_id` string
- `reference_id` string
- `heron_id` string
- `end_user_id` string
- `include_duplicates` boolean
- `transaction_code` string
- `is_recurring` boolean
- `has_matching_transaction` boolean
- `description_keyword` string
- `counterparty_keyword` string
- `description_regex` string
- `min_amount` number
- `max_amount` number
- `min_balance` number
- `max_balance` number
- `confidence_min` number
- `confidence_max` number
- `merchant_group_id` string
- `merchant_heron_id` string
- `merchant_name` string
- `has_merchant` boolean, nullable
- `order_by` 'amount_asc' | 'amount_desc' | 'abs_amount_asc' | 'abs_amount_desc' | 'description_asc' | 'description_desc' | 'timestamp_asc' | 'timestamp_desc' | 'id_asc' | 'id_desc' | 'confidence_asc' | 'confidence_desc' | 'created_asc' | 'created_desc' | 'balance_asc' | 'balance_desc'
- `page` integer
- `limit` integer
- `account_ids` string[], nullable

## Response `200`

OK

- object
  - `_meta` object
    - `next_url` string
    - `page` integer
    - `pages` integer
    - `per_page` integer
    - `prev_url` string
  - `_summary` object
    - `returned_transactions` integer
    - `transactions` integer
  - `transactions` TransactionGetOutput[]
    - `account_id` string, nullable — Your unique ID for account associated with transaction
    - `account_number` string — The account number associated with the transaction
    - `amount` number, required — Amount. Inflows to an account should be positive, and outflows from an account should be negative. If using Plaid, please flip the amount sign for all transactions.
    - `balance` number, nullable — The running balance of the account after transaction ocurred
    - `categories` TransactionAnnotation[] — The category associated with the transaction
      - `annotator` string — Annotator type
      - `confidence` number — The confidence associated with the category annotation
      - `heron_id` string — Unique ID of category; generated by Heron Data
      - `label` string — Label of category
      - `model_version` string — The model version that produced the categorisation
    - `counterparty` string, nullable — The counterparty associated with the transaction, if available
    - `created` string, date-time — When transaction was created in Heron system
    - `currency` string, nullable — ISO 4217 currency code
    - `data_source_account_heron_id` string — Unique ID of the transaction's data source account
    - `data_source_heron_id` string — Unique ID of the transaction's data source
    - `description` string, required — The text description for the transaction
    - `description_clean` string — The cleaned description of the transaction
    - `duplicate_of_id` string — Indicates that the transaction is a duplicate and gives the heron_id of the original
    - `end_user_id` string, nullable — Your unique ID for end user associated with transaction
    - `has_matching_transaction` boolean — Whether the transaction is a transfer; requires end_user_id and timestamp to be present
    - `heron_id` string — Unique ID of transaction; generated by Heron Data
    - `is_potential_duplicate` boolean — Indicates whether the transaction has another transaction similar to it
    - `is_recurring` boolean — Whether the transaction is recurring or not; requires end_user_id and timestamp to be present
    - `last_updated` string, date-time — When transaction was last updated in Heron system; could be from recategorisation or attribute updates
    - `mcc_code` string, nullable — Merchant category code associated with transaction that you may have received from other sources
    - `merchant` Merchant
      - `categories` MerchantCategory[]
        - `code` string, required
        - `description` string, nullable
        - `slug` string, nullable
      - `group_id` 'Uber' | 'Google' | 'Intuit' | 'debt.mca_or_rbf' | 'debt.non_bank_business' | 'debt.equipment_and_auto_leasing' | 'debt.mortgage' | 'debt.personal_non_mortgage' | 'debt.collections' | 'debt.bank' | 'invoice_factoring' | 'fuel_provider' | 'gambling_and_betting' | 'null', nullable
      - `heron_id` string
      - `icon_url` string, url, nullable
      - `is_priority` boolean
      - `logo_url` string, url, nullable
      - `name` string, required
      - `url` string, url, required
    - `order` integer, nullable — If sending a batch of transactions, the order in which the transaction occurs, where a higher value is equivalent to a more recent transaction
    - `payment_processor` PaymentProcessor
      - `heron_id` string
      - `icon_url` string, url, nullable
      - `logo_url` string, url, nullable
      - `name` string, nullable
      - `url` string, url, nullable
    - `reference_id` string, nullable — Your unique ID for transaction
    - `request_id` string, nullable — ID associated with request, e.g., all transactions in same POST request will have same request_id
    - `timestamp` string, date-time, nullable — The ISO 8601 timezone aware timestamp of the transaction; takes precedence over 'date'
    - `transaction_code` string, nullable — Code associated with transaction to indicate the type of transaction

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.dev/herondata/apis/heron-data-api.md) · [All operations](https://skmtc.dev/herondata/apis/heron-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/herondata/heron-data-api/revisions/f2e441edece2/schema)
