Query & edit transactions

Find the exact ledger activity you need, inspect every transfer, and make safe, auditable edits.

List and filter transactions

getClientTransactions is the main ledger query. Pagination is zero-based and limit is capped at 500. Start with a narrow date range, then add account, asset, label, review, or missing-basis filters.

graphql
query Transactions($clientId: ID!) {
getClientTransactions(
clientId: $clientId
startDate: "2025-01-01"
endDate: "2025-12-31"
reviewed: false
limit: 25
page: 0
sortBy: "date"
ascending: false
) {
total
transactions { id title createdAt provider capGainsSum incomeSum }
}
}

Inspect one transaction

Read the transaction and its transfer legs before editing. Transfer value is the token quantity; fiatAmountCents and basis are monetary fields.

graphql
query Transaction($clientId: ID!, $transactionId: ID!) {
getTransaction(clientId: $clientId, transactionId: $transactionId) {
id title createdAt provider txnHash labelUsed notes
capGainsSum incomeSum isMissingBasis
transfers {
id value fiatAmountCents basis isMissingBasis
transferCategory fromAccountId toAccountId
fullAsset { symbol name }
}
}
}

Label transactions in bulk

Fetch valid labels with getLabels first. Mutations require a ReadWrite API key.

graphql
mutation LabelTransactions($clientId: ID!, $transactionIds: [ID!]!) {
labelTransactions(
clientId: $clientId
transactionIds: $transactionIds
label: "v1:swap"
) { id labelUsed }
}

Edit a transaction

Use updateTransaction for titles, notes, labels, visibility, dates, and supported overrides. Set createDefaultRule only when the same correction should apply to similar future activity.

Recalculate after ledger edits

Labels, transfer changes, merges, and splits can change downstream tax results. Trigger one recalculation after your batch of edits, then verify the affected transactions.

graphql
mutation UpdateTransaction($clientId: ID!, $transactionId: ID!) {
updateTransaction(
clientId: $clientId
transactionId: $transactionId
createDefaultRule: false
updates: { notes: "Reviewed via API", overrideLabel: false }
) { transaction { id notes } }
}

More edit operations

TaskOperation
Change a transfer value or basisupdateTransfer
Merge related activitymergeTransactions
Split a transactionsplitTransaction
Link owned-wallet movementmarkInternalTransfer
Hide or unhide activityhideTransaction / hideMultipleTransactions
Review edit historygetClientAuditLogs