Skip to main content

Insights

GET https://searchlight.digital/api/<organization>/insights

Returns AI-generated performance insights for your accounts: written findings and recommended actions produced from each account's activity, published periodically per account.

Unlike events and benchmarks, this endpoint returns documents rather than computed numbers. You receive the published insight as-is.

Query Parameters

ParameterRequiredDescription
accountoptionalA single account key. Without it, every account you can access is included
accountsoptionalComma-separated list of account keys
startoptionalStart date in YYYY-MM-DD format. Must be paired with end
endoptionalEnd date in YYYY-MM-DD format. Must be paired with start
fieldsoptionalComma-separated list of document sections to return. Omit to receive the whole document

Omit start and end to receive the most recent insight for each account. Provide both to receive every insight published in that range. Providing only one returns a 400.

Dates refer to when an insight was published, not the period it covers. The period it analyzes is inside the document, as period.

Response

A JSON array (gzip-compressed, see responses). One object per insight document:

[
{
"account": "example-home-services",
"date": "2026-07-21",
"insight": {
"account": "Example Home Services",
"period": "June 2026",
"generated_at": "2026-07-21T09:30:00.000000+00:00",
"confidence": "high",
"graded_calls": 412,
"action_items": [
{
"title": "6 calls from 'water heater rental' searches, a service you don't offer",
"summary": "The top negative keyword recommendation is ...",
"action": "Worth discussing with your marketing agency: ...",
"category": "operations",
"priority": "low",
"impact": { "value": 6, "unit": "calls", "display": "6 calls" }
}
],
"deep_insights": [
{
"title": "Weekend calls book at 38% while weekday calls book at 55%",
"summary": "Weekend callers reach the answering service more often ...",
"takeaway": "Booking capacity, not lead quality, is the weekend constraint ...",
"priority": "high"
}
]
}
}
]
FieldDescription
accountThe account key the insight belongs to
dateThe date the insight was published, YYYY-MM-DD
insightThe published document, returned unmodified

Accounts with no published insights are absent from the response. When nothing matches, the response is an empty array [] with status 200.

Document sections

The document is returned as published, and its sections are still expanding while insights are in beta. The main ones today:

SectionDescription
periodThe period the insight analyzes, e.g. "June 2026"
generated_atWhen the insight was produced
confidenceThe confidence in the analysis
graded_callsHow many graded calls informed it
action_itemsSpecific recommended actions, each with a title, summary, suggested action, category, priority and estimated impact
deep_insightsLonger findings and patterns, each with a title, summary and takeaway
surprise_insightsUnexpected patterns worth a look, each with the insight, a suggested action, the audience and the calls behind it
main_themesRecurring themes across the period, each with an overview, its share of activity, and the channels, campaigns and drivers behind it

Because this list will grow, don't assume a fixed shape. Read the sections you need and ignore the rest.

Selecting sections

Pass fields to return only the sections you need, which can substantially reduce the response size:

GET /api/<organization>/insights?fields=period,action_items
[
{
"account": "example-home-services",
"date": "2026-07-21",
"insight": {
"period": "June 2026",
"action_items": [ ... ]
}
}
]

A section name that a document doesn't carry is ignored rather than treated as an error, so request without fields first to see everything a document holds, then narrow.

Limits

A single request returns at most 200 documents. Requesting many accounts over a wide date range can exceed that:

{ "error": "This request matched 412 insight documents, exceeding the limit of 200. Request fewer accounts or a shorter time period." }

Errors

StatusCause
400start without end (or the reverse), or more than 200 matching documents
401Missing, incorrect, or revoked API key
404Unknown or inaccessible organization
429Hourly request limit reached. Retry later