The Transactions Query API returns transaction data filtered by date range, portfolio scope, and attribute-based criteria. It is the primary endpoint for pulling transaction history into data warehouses, reconciliation systems, and reporting pipelines. Unlike the Transactions endpoint (which operates on individual records by ID), Transactions Query lets you retrieve many transactions at once based on who owns them, what date range they fall in, and what attributes they have.

Use this endpoint for synchronous, filtered reads. For large exports that may time out, use Transaction Jobs instead.

Overview

Base route/v1/transactions/query
MethodPOST
ProducesJSON
PaginationNo
OAuth scopesTRANSACTIONS or TRANSACTIONS_WRITE

📘

Access requirements

  • API Access: Create, edit, and delete.
  • Transaction firm view: View only.
  • Transactions: View-only permission to extract transaction data.

Required parameters

ParameterDescription
columnsAttribute keys to return as columns. Array of strings. Example: ["trade_date", "security", "value"]
start_dateBeginning of the date range. YYYY-MM-DD.
end_dateEnd of the date range. YYYY-MM-DD.
portfolio_typeScope of the query. Values: ENTITY, ENTITY_FUNDS, GROUP, GROUP_FUNDS, FIRM, FIRM_ACCOUNTS, FIRM_CLIENTS, FIRM_HOUSEHOLDS, FIRM_UNVERIFIED_ACCOUNTS.
portfolio_idEntity ID, group ID, or 1 (for firm). Accepts a single number or array.

Alternative to portfolio_id: Pass external_ids to scope by external identifier instead of internal ID. Format: [{"external_type_key": "salesforce", "external_id": "sf_record_123"}]

Optional parameters

ParameterDescription
filtersFilter rows by attribute values. Array of filter objects (see below).
sortingsSort results by up to 3 columns. Array of {"attribute": "...", "ascending": true/false}. Default: trade date descending.
limitMaximum transactions to return. Default: no limit (returns all matching).
include_online_valuationsInclude online snapshots. Default: false.
include_unverifiedInclude unverified transactions. Default: false.
include_deletedInclude deleted online transactions. Default: false.

Query transactions

POST /v1/transactions/query

curl -X POST "https://{firm}.addepar.com/api/v1/transactions/query" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/vnd.api+json" \
  -H "Accept: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "transaction_query",
    "attributes": {
      "columns": ["direct_owner", "security", "value", "trade_date"],
      "portfolio_type": "GROUP",
      "portfolio_id": 7,
      "start_date": "2021-02-01",
      "end_date": "2021-03-01",
      "include_online_valuations": false,
      "include_unverified": false,
      "include_deleted": true
    }
  }
}'
{
  "meta": {
    "columns": ["direct_owner", "security", "value", "trade_date"]
  },
  "data": [
    {
      "id": "7",
      "type": "transaction_query",
      "attributes": {
        "direct_owner": { "name": "Person 1", "entity_id": 22 },
        "security": { "name": "Holding Company 1", "entity_id": 21 },
        "trade_date": "2000-01-01",
        "value": null
      }
    }
  ],
  "included": [],
  "links": { "next": null }
}

The response meta.columns array confirms which columns were used. Each row in data is a transaction with the requested attribute values. Entity-reference columns (like direct_owner, security) return an object with name and entity_id.

Response codes:

  • 200 OK -- Query succeeded
  • 400 Bad Request -- Malformed query, invalid column name, or missing required parameters
  • 403 Forbidden -- Insufficient permissions or scope

Filter object

Filters narrow results by attribute value. Each filter specifies an attribute, an operator (include or exclude), a type that matches the attribute's data type, and the criteria.

FieldDescription
attributeColumn key to filter on. Example: "security", "trade_date"
operatorinclude (keep matching rows) or exclude (remove matching rows).
typeData type of the filter. Values: DISCRETE, NUMBER, DATE, STRING.

Type-specific fields:

Filter typeRequired fieldFormat
DISCRETEvalues (plural)Array of strings. Case-sensitive. Example: ["Buy", "Sell"]
STRINGvalue (singular)Space-separated tokens. Matches any token. Example: "stock Apple"
NUMBERnumberObject with start and end. Example: {"start": 1, "end": 30.5}
DATEperiodPeriod object (see date filters below).

Example with discrete filter:

curl -X POST "https://{firm}.addepar.com/api/v1/transactions/query" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/vnd.api+json" \
  -H "Accept: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "transaction_query",
    "attributes": {
      "columns": ["direct_owner", "value", "trade_date"],
      "filters": [
        {
          "operator": "include",
          "type": "discrete",
          "values": ["Buy", "Sell"],
          "attribute": "type"
        }
      ],
      "portfolio_type": "firm",
      "portfolio_id": [1],
      "start_date": "2021-09-05",
      "end_date": "2021-10-05",
      "include_online_valuations": false,
      "include_unverified": false,
      "include_deleted": true
    }
  }
}'

Date filters

Date filters use a period object that defines the time window. The period type determines which additional fields are required:

Period typeAdditional fieldsDescription
static_time_periodstart, end (both YYYY-MM-DD)Fixed date range.
trailing_time_periodperiod (duration string)Window trailing backward from the query's end date.
relative_time_periodperiod (duration string)Relative to today.
current_time_periodNoneCurrent calendar period.
since_inception_time_periodNoneFrom position inception to query end.
inception_to_start_date_time_periodNoneFrom inception to query start date.
custom_time_periodVariesCustom-defined range.

Duration string format: P{count}{unit} where unit is: D (days), K (weekdays), W (weeks), M (months), Q (quarters), Y (years). Example: "P3M" = 3 months, "P2K" = 2 weekdays.

Static time period example:

{
  "attribute": "trade_date",
  "operator": "include",
  "type": "date",
  "period": {
    "type": "static_time_period",
    "start": "2020-01-02",
    "end": "2020-01-03"
  }
}

Trailing time period example:

{
  "attribute": "trade_date",
  "operator": "include",
  "type": "date",
  "period": {
    "type": "trailing_time_period",
    "period": "P2K"
  }
}

Sorting

Sort results by up to 3 columns. The order of entries in the array determines priority (first entry is the primary sort).

"sorting": [
  { "attribute": "trade_date", "ascending": false },
  { "attribute": "security", "ascending": true }
]

This sorts newest trades first, then alphabetically by security name within the same date.

Available columns

Full column reference (90+ columns)
Column keyAddepar UI label
account_numberAccount #
accrued_incomeSnapshot Accrued Income
are_tax_lots_ignoredAre Custodian Tax Lots Ignored
asset_classAsset Class
cash_accountPaid to(from)
clientClient
commentsComments
contextContext
currencyCurrency
cusipCUSIP
data_sourceData Source
data_typeSummary Data Level
descriptionDescription
direct_owner_idDirect Owner Entity ID
edited_online_dataEdited Online Data
associated_hidden_positionsAssociated Hidden Position(s)
entity_idEntity ID
ex_dateEx-Date
feesFees
fundFund
affected_by_hidden_positionsAffected by Hidden Position(s)
has_tax_lotsHas Tax Lots
has_wash_saleHas Wash Sale
is_verifiedIs Verified
direct_ownerDirect Owner
idID
isinISIN
limited_partnerLimited Partner
other_affected_assetsOther Affected Assets
ownership_typeOwnership Type
account_nameAccount Name
positionPosition
position_idPosition ID
posted_datePosted Date
price_factorPrice Factor
price_per_sharePrice Per Share
recallable_amountRecallable Amount
securitySecurity
model_typeSecurity Model Type
sedolSEDOL
grouping_configurationGrouping Configuration
tagTAG
ticker_symbolTicker Symbol
trade_dateTrade Date
settlement_dateSettlement Date
snapshot_unitsSnapshot Units
summarySummary
transaction_unitsTransaction Units
typeType
unitsUnits
units_changedUnits Changed
valueValue
vendor_idVendor ID
affects_adjusted_valueAffects Adjusted Value
affects_cost_basisAffects Cost Basis
affects_paid_in_capitalAffects Paid-in Capital
affects_unfunded_commitmentsAffects Unfunded Commitments
general_feeGeneral Fee
external_brokerage_feeExternal Broker Fee
internal_brokerage_feeInternal Broker Fee
other_government_taxOther Government Tax
counterparty_feeCounterparty Fee
entry_exit_feeEntry and Exit Fee
foreign_feeForeign Fee
matching_feeMatching/Confirmation Fee
market_feeMarket Fee
market_taxMarket Tax
other_feeOther Fee
stamp_taxStamp Duty
stock_exchange_taxStock Exchange Tax
stock_exchange_feeStock Exchange Fee
turnover_feeTurnover Fee
value_added_taxValue Added Tax (VAT)
withholding_taxWithholding Tax
last_edit_byLast Edited By
last_edit_dateLast Edited Date
modified_dateModified Date
general_distributionGeneral Distribution
return_of_capitalReturn of Capital
long_term_capital_gainLong-Term Capital Gain
short_term_capital_gainShort-Term Capital Gain
unknown_capital_gainUnknown Capital Gain
interest_incomeInterest Income
ordinary_incomeOrdinary Income
dividend_incomeDividend Income
total_distributionTotal Distribution
created_dateCreated Date

📘

Related


Did this page help you?