DevelopersAPIReferencedata
RevenueExpenses
Use this when the user asks for revenue vs. expenses (P&L summary) for a period. Requires permissions: financials: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}filter?Common filter shared by P&L slices.
revenueExpenses result
application/json- response
kpis*monthly*array<>curl -X POST "https://example.com/companies/string/data/revenueExpenses" \ -H "Content-Type: application/json" \ -d '{ "startDate": "string", "endDate": "string" }'{ "kpis": { "revenue": 0, "revenuePreviousPeriod": 0, "revenueChange": 0, "expenses": 0, "expensesPreviousPeriod": 0, "expensesChange": 0, "nonOperating": 0, "nonOperatingPreviousPeriod": 0, "nonOperatingChange": 0, "uncategorized": 0, "uncategorizedPreviousPeriod": 0, "uncategorizedChange": 0, "profit": 0, "profitPreviousPeriod": 0, "profitChange": 0, "plainProfit": 0, "plainProfitPreviousPeriod": 0, "plainProfitChange": 0 }, "monthly": [ { "month": "string", "revenue": 0, "cogs": 0, "cac": 0, "pd": 0, "ga": 0, "nonOperating": 0, "uncategorized": 0 } ]}MetricExplanation
Use this when the user asks why a metric has its value or how it was computed for a specific month: returns the formula with every part resolved to its…
RevenueExpensesBar
Use this when the user asks for revenue/expenses charted month-over-month as bars. Requires permissions: financials:read.