Every workflow you build runs on the same numbers trusted by 1,500+ home services operators and agencies. Cross-channel marketing attribution, ClaraT™ lead-funnel grading, and industry benchmark context, all from one authenticated request.
Already a SearchLight customer? Generate a key in your dashboard →
One request shape · GET /events · self-serve keys · revenue-verified · updated daily
curl --get --compressed \ --url 'https://searchlight.digital/api/<organization>/events' \ --header 'Authorization: <your-api-key>' \ --data-urlencode 'start=2026-05-01' \ --data-urlencode 'end=2026-05-31' \ --data-urlencode 'fields=account,spend,leads,roasPotential' # → revenue-verified, ready to use [ { "account": "Example Home Services", "spend": 12310.45, "leads": 287, "roasPotential": 5.65 }, { "account": "Example Plumbing Co.", "spend": 6139.67, "leads": 125, "roasPotential": 4.31 } ]
Teams building real automation don't want a dashboard to screenshot. They want the numbers, clean and revenue-verified, on their schedule. Without an API, that means someone exporting and pasting the same report by hand, every week, forever.
Every endpoint takes the same shape. On /events you choose the fields. Any known metric is computed; anything else becomes a dimension to group by. Combine them freely to build the exact shape your stack needs.
At least one metric is required. Add interval=day|week|month for a time series, which also lets one request run past the 90-day attribution window. Filter on any field.
Ask for interval=day across a 45-day window and get one clean row per day back. No stitching together a dozen chunked requests. The API is designed to power a real pipeline, not a one-off pull.
curl --get --compressed \ --url '.../api/<organization>/events' \ --header 'Authorization: <your-api-key>' \ --data-urlencode 'start=2026-05-01' \ --data-urlencode 'end=2026-05-31' \ --data-urlencode 'fields=account,spend,leads' \ --data-urlencode 'interval=day' [ { "start":"2026-05-01", "end":"2026-05-01", "account":"Example Home Services", "spend":412.00, "leads":11 }, { "start":"2026-05-02", "end":"2026-05-02", "account":"Example Home Services", "spend":388.50, "leads":9 }, // … one row per day, per account ]
Retire the manual export-and-paste routine. Point a scheduled job at the endpoint and let the report build itself.
Catch campaigns going dark, spend with zero leads, or a sudden book-rate drop the day it happens, not at the next deep-dive.
Push revenue-verified numbers into the systems your team already uses to adjust campaigns and report to clients.
Every answer is the same request with different fields. Here are three that teams actually run.
Break spend and revenue out per campaign. With campaign as a dimension, spend-based metrics use the spend attributed to that specific campaign.
--data-urlencode 'fields=account,campaign,spend,revenuePotential,roasPotential' [ { "campaign":"Search - Branded", "spend":2104.33, "revenuePotential":11892.50, "roasPotential":5.65 }, { "campaign":"Search - HVAC", "spend":4880.10, "revenuePotential":15210.00, "roasPotential":3.12 } ]
Group by adjustedType to see how customers distribute across the funnel, from first lead through closed revenue.
--data-urlencode 'fields=adjustedType,customers' [ { "adjustedType":"lead-originated", "customers":540 }, { "adjustedType":"booked", "customers":265 }, { "adjustedType":"estimated", "customers":210 }, { "adjustedType":"sold", "customers":148 }, { "adjustedType":"closed", "customers":120 } ]
Lead-grading metrics show how much of your conversion volume is actually bookable. (Requires the Lead Grading add-on; accounts without it return 0.)
--data-urlencode 'fields=account,conversions,gradedConversions,conversionQuality' [ { "account":"Example Home Services", "conversions":341, "gradedConversions":322, "conversionQuality":0.81 } ] # conversionQuality 0.81 → 81% of graded conversions were bookable
One customer produces many events over their lifecycle. The API exposes that whole journey, so you can pull a single metric or reconstruct the entire path from first touch to closed revenue.
Each event carries its attribution, funnel stage, and revenue, reconciled by SearchLight rather than copied raw from the CRM. Query at the account grain for BI, or at the opportunityId grain to build customer profiles.
The way you designed it makes it very user-friendly and lets me access basically everything I can from the web UI. The setup was easy and the documentation is great.
The single /events endpoint with flexible dimensions and metrics is genuinely powerful. Pulling interval=day across a 45+ day window in one call let us build a real daily pipeline instead of a bunch of chunked requests — and fully automated a manual weekly export routine we'd done by hand for months.
If you can send an authenticated GET request, you're done. No SDK required.
sl_.https://searchlight.digital/api returns the organizations and accounts your key can reach, plus the full field dictionary.https://searchlight.digital/api/<organization>/eventsinterval to go longer.--compressed to curl.Authorization: <your-api-key>. There's no Bearer prefix. Just the key itself.
# Your first call: group-wide spend, leads & ROAS curl --get --compressed \ --url 'https://searchlight.digital/api/<organization>/events' \ --header 'Authorization: <your-api-key>' \ --data-urlencode 'start=2026-05-01' \ --data-urlencode 'end=2026-05-31' \ --data-urlencode 'fields=spend,leads,roasPotential' [ { "spend": 18450.12, "leads": 412, "roasPotential": 4.31 } ]
One authenticated call stands between your team and a fully automated, revenue-verified data pipeline. Generate a key and make your first call today.
Questions? [email protected] · 1-866-710-4661 · API support: [email protected]