Skip to main content
The reporting API gives a reporting tool every number Surnex tracks — rankings, backlinks, audits, AI visibility, Local SEO and more — as it stood on any date, with the change against the period before and a point per day for charts. It reads stored data only. It never calls a data provider and never spends your plan’s allowance, so a tool can call it as often as it likes and a Read Only key is all it needs.
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, new and lost compare 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.
  • domain keeps 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.