Surnex’s own report widgets read the same figures. A September number is the same in a Surnex report as in a tool reading this API.
How it’s organised
Figures are grouped into views, one per area of the product. Each view has metrics: one number per day.The catalogue
GET /v1/reporting lists every view and metric with its label, description, unit and which way is better. It’s the same for every project — read it once to build a metric picker.
A view’s metrics
GET /v1/projects/{projectId}/reporting/{view}
What each field means
Anything without data is
null rather than 0, so a tool can show it as empty. series is [] when nothing was checked in the period.
Units
How the figures are counted
Every figure follows the same rules as the dashboard:- A keyword outside the top 100 counts as 100 in
avg_position, and a Local SEO check that missed the listing counts as 20 — see how Avg Position is counted. - Each day counts what was being tracked that day, each at its latest check. Surnex records when every keyword, local keyword and prompt is added, paused, resumed and removed, so a day’s figures include exactly those tracked on it:
- A keyword added on a Wednesday is checked that day; the day still counts every other keyword at its last position, not just the new one.
- A check that fails leaves the keyword at its last position — it doesn’t drop out of the count.
- A keyword paused or removed stops counting from that day.
improved,declined,newandlostcompare each keyword’s latest check with the one before it: moves inside the top 100, then into and out of it. A first check counts in none.- AI Overview rates are of Google keywords only — AI Overviews are Google’s.
- Web vitals average the URLs you check, each at its latest check.
- Audits, web vitals and domain refreshes are dated in your organization’s timezone, as checks are — a crawl that finishes at 23:30 counts on that day, not the next.
domainkeeps a snapshot of each domain overview refresh, one a day. Its history starts from 4 October 2026: before then Surnex kept only the latest overview, so a period before that has the one reading that was kept.
How fresh the data is
The API reads what Surnex has stored, so a figure is as fresh as the last check behind it:
See data collection for the schedules.
Lists and tables
The reporting API is for numbers over time. For lists, use the existing endpoints — they return the current list, which is what a report table shows:Errors
The full schema is in the API reference under reporting.