DevelopersAPIReferencedata
PeriodDetails
Use this when the user asks for the detailed breakdown of a single period (transactions, categorizations, totals). Requires permissions: transactions:read.
Authentication
Checking whether you're signed in…
POST
header
Authorization<token>A SaaSFlow API key (format sf_…) or an OAuth bearer token. Paste only the key — the proxy adds the Bearer prefix. Create an API key in Settings → Company settings → API keys — see API keys.
companyId*stringLength
1 <= lengthapplication/json- body
startDate*stringMatch
^\d{4}-\d{2}-\d{2}endDate*stringMatch
^\d{4}-\d{2}-\d{2}dateDefinition*stringValue in
"distributed""cash"splitBy*stringValue in
"account""counterparty"includePlanned?booleanfilter?periodDetails result
application/json- response
amountBySplitId*total*numbernamesBySplitId?invoicedAmountBySplitId?invoicedTotal?numberinvoicedDueDateRange?plannedAmountBySplitId?plannedTotal?numberplannedHasRolledForwardInvoices?booleancurl -X POST "https://example.com/companies/string/data/periodDetails" \ -H "Content-Type: application/json" \ -d '{ "startDate": "string", "endDate": "string", "dateDefinition": "distributed", "splitBy": "account" }'{ "amountBySplitId": { "property1": 0, "property2": 0 }, "total": 0, "namesBySplitId": { "property1": "string", "property2": "string" }, "invoicedAmountBySplitId": { "property1": 0, "property2": 0 }, "invoicedTotal": 0, "invoicedDueDateRange": { "min": "string", "max": "string" }, "plannedAmountBySplitId": { "property1": 0, "property2": 0 }, "plannedTotal": 0, "plannedHasRolledForwardInvoices": true}ProfitLossData
Use this when the user asks for a P&L statement (revenue, costs, gross/operating/net profit) for a period. Requires permissions: financials:read.
Cohorts
Use this when the user asks about customer retention or revenue retention by cohort. Returns the cohort matrix only (one entry per cohort month, MRR and…