Access
GET https://searchlight.digital/api
Returns what your credentials can reach: the organizations you can request, the accounts under each one, the endpoints available to you, and the dictionary of every field.
Start here if you don't know what to put in the <organization> path segment. This is the one endpoint with no organization in its path, because finding that value is what it's for.
Query Parameters
None. Extra parameters are ignored.
Response
A JSON object (gzip-compressed, see responses):
{
"user": "you@example.com",
"organizations": [
{
"organization": "example-group",
"accounts": ["example-home-services", "example-plumbing", "example-air"]
},
{
"organization": "example-group-northeast",
"accounts": ["example-air"]
}
],
"endpoints": [
{
"endpoint": "events",
"path": "/api/{organization}/events",
"parameters": ["fields", "start", "end", "interval", "account", "accounts"],
"metrics": ["spend", "leads", "bookRate", "..."],
"dimensions": ["account", "campaign", "attributionCategory", "..."]
},
{
"endpoint": "benchmarks",
"path": "/api/{organization}/benchmarks",
"parameters": ["fields", "month", "account", "accounts"],
"metrics": ["bookRate", "matchRate", "roasClosed", "..."],
"dimensions": ["attributionCategory", "attributionChannel", "customerStatus", "normalizedBusinessUnit"],
"notes": "Anonymized industry benchmark statistics for one calendar month; ..."
},
{
"endpoint": "insights",
"path": "/api/{organization}/insights",
"parameters": ["fields", "start", "end", "account", "accounts"],
"notes": "Latest insight per account when start and end are omitted."
}
],
"dictionary": {
"bookRate": {
"displayName": "Book Rate",
"definition": "The efficiency of booking new leads, calculated as the number of Booked Customers divided by Customers.",
"type": "metric",
"format": "percent",
"benchmarkable": true
},
"...": {}
}
}
| Field | Description |
|---|---|
user | The login your credentials resolve to |
organizations | Every organization you can request, each with the account keys under it |
endpoints | The available endpoints, with their parameters and the metrics and dimensions each accepts |
dictionary | Every field, keyed by name: its display name, definition, type (dimension or metric), format, and its possible values where they are enumerable. Metrics that benchmarks supports are flagged benchmarkable, and its dimensions benchmarkDimension |
Organizations and accounts
Any organization value in the response works in the <organization> path segment of the other endpoints, and any account key works in their account and accounts parameters.
Organizations nest, so the same account appears under every organization it belongs to: a group and its sub-groups. Requesting the parent covers all of its accounts; requesting a sub-group narrows to that part. Both are valid, so pick whichever matches the scope you want.
An account key can also be used directly in the path segment as a shorthand for that single account:
GET /api/example-home-services/events?fields=spend&start=2026-06-01&end=2026-06-30
Umbrella organizations that span the whole platform are not listed, and are rejected by the other endpoints.
Authentication
This endpoint requires a user API key or a signed-in session.
{ "error": "Unauthorized. Sign in or use an API key." }
See authentication for how to generate a user key.
Errors
| Status | Cause |
|---|---|
401 | Missing or incorrect key |