Retrieve recurring transactions (inflows and outflows) for a user
Returns recurring transaction patterns detected across the user's linked bank accounts, split into recurring outflows (subscriptions, bills, and other recurring expenses) and recurring inflows (salary, benefits, and other recurring income sources).
Query parameters
Filter by recurring source status. Defaults to active. Use all to return sources in any state.
Filter to a specific link ID. Defaults to all of the user's links.
Response
Example response
{
"recurring_transactions": {
"outflows": [
{
"source_id": "68a7e80942ce4ad58a93f70ce411549a",
"source_name": "Netflix",
"account_id": "68a7e80942ce4ad58a93f70ce411549a",
"categories": [
"Entertainment",
"Subscriptions"
],
"description": "NETFLIX.COM",
"merchant_category_code": "5968",
"frequency": "M",
"status": "active",
"average_amount": "15.99",
"median_amount": "15.99",
"last_amount": "15.99",
"first_detected": "2024-01-15",
"last_transaction_date": "2024-11-15",
"next_expected_date": "2024-12-15",
"logo_url": "https://example.com/logos/company.png",
"historical_transactions": [
{
"transaction_id": "24d7e80942ce4ad58a93f70ce4115f5c",
"date": "2025-05-04",
"amount": "200.31",
"description": "NETFLIX.COM"
}
]
}
],
"inflows": [
{
"source_id": "68a7e80942ce4ad58a93f70ce411549a",
"source_name": "Acme Corp",
"account_id": "68a7e80942ce4ad58a93f70ce411549a",
"description": "Salary",
"frequency": "BW",
"average_amount": "3500.00",
"median_amount": "3500.00",
"last_amount": "3500.00",
"status": "active",
"first_detected": "2024-01-01",
"last_transaction_date": "2024-11-15",
"next_expected_date": "2024-11-29",
"logo_url": "https://example.com/logos/company.png",
"historical_transactions": [
{
"transaction_id": "24d7e80942ce4ad58a93f70ce4115f5c",
"date": "2025-05-04",
"amount": "200.31",
"description": "NETFLIX.COM"
}
],
"income_type": "PAYCHECK"
}
]
}
}Changes
Changed in 2 of the 11 revisions of this API.138
- ○
the
recurring_transactions/inflows/items/average_amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
the
recurring_transactions/inflows/items/historical_transactions/items/amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
the
recurring_transactions/inflows/items/last_amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
the
recurring_transactions/inflows/items/median_amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
the
recurring_transactions/outflows/items/average_amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
the
recurring_transactions/outflows/items/historical_transactions/items/amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
the
recurring_transactions/outflows/items/last_amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
the
recurring_transactions/outflows/items/median_amountresponse's property pattern^-?\d{1,10}\.\d{2}$was added for the status200response-property-pattern-added
- ○
- ▲
the response property
recurring_transactions/outflows/items/merchant_category_codebecame nullable for the status200response-property-became-nullable
- ●
added the new
undefinedenum value to therecurring_transactions/inflows/items/frequencyresponse property for the response status200response-property-enum-value-added
- ●
added the new
undefinedenum value to therecurring_transactions/inflows/items/income_typeresponse property for the response status200response-property-enum-value-added
- ●
added the new
undefinedenum value to therecurring_transactions/outflows/items/frequencyresponse property for the response status200response-property-enum-value-added
- ▲