Get analytics by lead age
Returns the analytics summary split by how old each lead was when it reached TFU AI: the gap between the moment the sub-account’s CRM created the lead and the moment it was sent to TFU AI.
fresh: sent within 5 minutes of being created.warm: more than 5 minutes, under 3 days.dbr: 3 days or more, such as a lead from an old list being worked again.unknown: the stored times cannot place the lead in exactly one of the three.unknownReasonscounts why. A lead is never guessed into the nearer segment.
Counted the same way as the analytics summary and over the same filters, so the segments add up to it. The one difference is that a disconnected project’s archived totals are not included, because they carry no lead ages.
Allowed customer roles: agency_admin, project_user.
Required API key scope: dashboard:read.
Authorizations
Send your API key as Authorization: Bearer YOUR_API_KEY.
Query Parameters
Start of the reporting window. A UTC ISO 8601 timestamp is canonical; a plain YYYY-MM-DD date is accepted and read as that day at 00:00:00Z. A timestamp must carry Z or an explicit offset, since one without a zone would be read as server-local time and shift the window. An empty string clears the bound. Anything else is a 400 rather than a silently wrong window.
End of the reporting window, inclusive. A UTC ISO 8601 timestamp is canonical; a plain YYYY-MM-DD date is accepted and covers that whole day, through 23:59:59.999Z. A timestamp must carry Z or an explicit offset, since one without a zone would be read as server-local time and shift the window. An empty string clears the bound. Anything else is a 400 rather than a silently wrong window.
Optional display label alongside locationId. It never identifies a tenant; selecting by name alone returns 400.
1Location ID of the project to read. Required when selecting a project; omit every project selector for an agency-wide read. Project names are labels only and never select a project on their own.
1Restrict the summary to the leads one campaign dialled. Calls recorded without campaign attribution are not returned by this filter, so an older window can show fewer leads here than an unfiltered read.
1Restrict the summary to the leads an entire master campaign dialled, across every linked project the caller can see. A master campaign is fanned out into one child campaign per project, each with its own id, so filtering by a single campaignId returns one project's share of it. Mutually exclusive with campaignId: the two are contradictory scopes rather than narrowing ones, and sending both is a 400.
1Restrict the figures to one Agent Variant inside a split test, so two variants of the same campaign can be compared. Requires campaignId and cannot be combined with masterCampaignId: a variant id only identifies a variant within its own campaign, so an unscoped one has no meaning and is rejected.
1