Paging
limit defaults to 50 and is at most 500. An unknown sort key is a 400
naming the keys that exist, not a silently ignored parameter.
Filtering
Filters are an allow-list per endpoint and are documented on each.q is
free-text search over that endpoint’s own searchable columns.
Times
Every time is RFC 3339 in UTC (2026-09-15T13:50:10Z), in and out. Filters
such as from, to and since take the same form.
Your own ids
Calls, campaigns, campaign contacts and contacts can carry your id, asreference or external_ref. It comes back on every event, callback, result
and export, so you rarely need to store ours.
Money is a string
Absent is not zero
The convention worth internalising before you write any reporting.
Cost and margin are omitted when the caller may not see them. An AI charge
is absent when no price matched or when the tenant’s own key paid. Substituting
zero in your own code turns “unknown” into a false assertion.
Scope is applied server-side
A supervisor’s list is already narrowed to their teams; an agent’s to their own work. You do not filter for this and you cannot widen it by asking.Where FireTone cannot show a record is yours, it does not return it. “Cannot
prove it is yours” resolves to no.