List compact transactions with calculations over exactly those returned records, or return one full transaction by id.

List compact transactions with page totals over exactly those returned records, or return one full transaction by id. A cursor continues one exact read and is bound to that read's filters, including changed_after and changed_through; replay every argument from the next_actions entry that carried the cursor, unchanged.

get/v1/transactions

Request

  • Base URL: https://api.candor.money
  • URL: https://api.candor.money/v1/transactions
  • Auth: HTTP bearer

Query parameters

idstring

Return this one record instead of a list. Use the exact id a prior call returned.

rules'relevant' | 'all'

With id only. relevant (default) lists the rules that matched, applied, or were once applied to this record. all also lists every other active rule with the criterion it failed, for checking why a rule missed the record. rules_considered.omitted_count says how many rules the default left out.

sincestring

Earliest date to include, as an ISO calendar date. Omitting it reads the default window, which may not cover the period you are reasoning about.

untilstring

Latest date to include, as an ISO calendar date.

categorystring

Case-insensitive exact category match after splits, corrections, rules, and source fallback. Use uncategorized for unresolved transactions. Omit this filter to return transactions across all categories.

cashflow_role'income' | 'expense' | 'transfer' | 'debt_payment' | 'refund' | 'unknown'

Keep only records with this effective cashflow role. expense is what counts as spending and income as earnings; transfer and debt_payment move money between the user's own accounts or settle a card. Omit for every role.

merchantstring
Example:netflix

Case-insensitive substring match across the effective label, raw merchant name, and transaction description. Omit this filter to return transactions across all merchants.

tagstring
Example:illustration

Keep only transactions carrying this tag (rules.create add_tag), matched without regard to case; the transactions a tagged goal reads. Omit for every transaction.

changed_afterstring

Exclusive change timestamp in UTC ISO-8601 format. Includes late arrivals, edits, and removals regardless of posting date. Use the opening delta bounds for a checkpoint sweep.

changed_throughstring

Inclusive change timestamp in UTC ISO-8601 format. Requires changed_after; omitted upper bound is fixed when the read starts and preserved by next_actions. Rows are current records, not historical versions.

category_provenance'rule' | 'canonical' | 'source_fallback' | 'unclassified' | 'source_only_or_missing'

Filter category provenance: rule (including splits), canonical, source_fallback, unclassified, or source_only_or_missing. Source-only does not mean a user decision is required.

unmatchedboolean

true returns only transactions no rule or correction has reached and no split allocates. Their category, when present, is the source provider's fallback. The page's calculations add label_counts, grouped by merchant (a row's merchant_name, else its label) the way merchant_name_contains matches, so one rule per entry covers the most rows. Without since, until, changed_after, or a cursor, the read covers records changed after the workspace's last acknowledged opening and says so in an unmatched_window_defaulted warning with a full-sweep continuation; before any acknowledged opening it covers every record. Pass since or changed_after to choose the window yourself.

source_account_idstring

Restrict transactions to one visible account using the exact id returned by accounts.list. Omit this filter to return transactions across every visible account.

cursorstring

Continue the same filtered read from pagination.next_cursor. The cursor is bound to the exact filters of the read that issued it; replay every other argument unchanged, or start again without cursor.

limitinteger

Maximum records to return in one page. The supported range is 1 through 1000; the default stays small.

Response

Envelope with compact transactions, page totals calculated from exactly those transactions, and pagination; an id query returns one full record instead.

schema_versionstring required
generated_atstring date-time required
request_idstring required
status'success' | 'partial_success' | 'action_required' | 'error' required
user_messagestring

Optional concise user-safe message the calling agent may adapt.

warningsobject[] required
dataobject nullable required

Operation-specific result data, or null when the request ends in an error.

Changes

No recorded changes to this operation across all 1 revision of this API.