Cross-FSM unified KPI: jobs booked, jobs completed, conversion rate, revenue collected from paid invoices in the window, and average paid invoice value. Read revenue_source before quoting money (paid_invoices | accounting_scope_missing | unavailable); revenue is null when unknown, never zero. When counts_truncated is true the window held more jobs than one scan pass covers, so jobs_completed and conversion_rate are null rather than computed off a partial set. Scope: read.
GET/api/v1/kpi
Cross-FSM unified KPI: jobs booked, jobs completed, conversion rate, revenue collected from paid invoices in the window, and average paid invoice value. Read revenue_source before quoting money (paid_invoices | accounting_scope_missing | unavailable); revenue is null when unknown, never zero. When counts_truncated is true the window held more jobs than one scan pass covers, so jobs_completed and conversion_rate are null rather than computed off a partial set. Scope: read.
Request
Responses
- 200
- 400
- 401
- 429
- 502
KPI payload: revenue (number|null), jobs_booked, jobs_completed, conversion_rate (number|null), avg_job_value (number|null), source (servicetitan|housecall_pro|jobber|none). Tenants with no FSM connected get zeros with source "none".
Missing or invalid parameters
Invalid or missing API key
Rate limit exceeded
Response Headers
FSM integration temporarily unavailable: the connected field-service system did not respond. Retry in a moment.