Reporting API and read-only keys
Reporting API
Every figure Surnex tracks — rankings, AI Overviews, backlinks, site audit, web vitals, AI visibility, Local SEO and domain overview — is now available to reporting tools such as Oviond, as of any date. One call gives each figure’s value at the end of a period, its value before the period started, the change, and a point per day for charts. It reads stored data only, so it never spends your allowance.GET /v1/reporting lists what’s available; GET /v1/projects/{projectId}/reporting/{view} answers it. See Reporting API.Read-only API keys
A new key now chooses its access: Read Only (the default) reads your data and nothing else — no changes, no paid lookups — and is the key to give a reporting tool. Full Access is what every key was before, and existing keys keep it. See Create an API key.Reports show the period you chose
A report’s figures and tables are now as of the last day of its date range: a September report shows 30 September whenever it’s opened — its keyword list, gainers and losers, prompts and figures alike — where it used to show today’s for most of them. Each figure’s change compares it with the period before, and a falling position is shown as the improvement it is. See Report editor.- What was tracked when. Surnex now records when each keyword, local keyword and prompt is added, paused, resumed and removed, so a day’s figures count exactly what was tracked that day. A failed check no longer drops a keyword from that day’s count, and a paused keyword stops counting the day it’s paused.
- Your timezone. Audits, web vitals checks and domain refreshes are dated in your organization’s timezone, like rank checks.
- Domain history. Each domain overview refresh is now kept, so domain figures have a history in reports and the reporting API — from today on, since only the latest overview was kept before.
Ranking figures
Ranking figures counted as Semrush counts them
- Avg Position counts a keyword outside the top 100 as 100. It used to leave those keywords out, so the average got better when a keyword fell out of the top 100. Now losing a keyword makes it worse and gaining one makes it better. Expect your average to read higher than before if you track keywords you don’t rank for yet. See Ranking overview.
- New in Top 100 and Lost from Top 100. Two new cards on Tracking → Overview, beside Improved and Declined, which now count only moves inside the top 100. A keyword’s first check counts in none of the four. See Ranking overview.
- New and Lost in the keyword list. The change on a keyword card reads New or Lost for a move into or out of the top 100, where it used to show
—, and the CSV export says the same. >100instead of—. Wherever a check found a keyword outside the top 100 — the keyword list, its history, competitor comparison, alerts, notifications and alert emails, AI Overviews, report tables and every export — it now reads>100.—is kept for a keyword that hasn’t been checked yet. The Position Over Time chart draws those checks at 100 instead of leaving them out. See Keyword history.- Local SEO counts a miss at 20. The Local SEO chart and a keyword’s history list every check, a check that didn’t find you in the top 20 drawn at 20 and written
>20, where the days you dropped out used to be skipped. In the Pack counts each keyword’s latest check — it counted the last check you appeared in, however old. The keyword list says when you’re not at your listing but found at 4 of 9 points on its grid. See Local SEO. - Reports have two new presets, New in Top 100 and Lost from Top 100, and the Ranking History chart’s daily average counts a keyword outside the top 100 as 100, like Avg Position. See Report editor.
- API and MCP. The ranking overview returns
entered_top100andlost_top100, and each tracked keyword returnschecked_before— whether it had been checked before its latest check, which tells a keyword new to the top 100 from one checked for the first time.
Exports and refreshes
Export any table
Every data table now has a ⋮ menu — three vertical dots in a bordered button at the right end of its toolbar, next to the search box, or in the card’s title row when the table has no search box. It offers Export as CSV, which opens in Excel and Google Sheets, and Export as JSON.- Every matching row. An export holds every row matching the table’s current search, not just the page on screen, with the table’s own columns, up to 10,000 rows.
- Free. Exports read stored data and spend no allowance.
- The header Export buttons are gone from Rank Tracking, Backlinks and the audit detail page — each of their tables has its own menu instead. Reports keep their PDF and CSV export on Sharing & Export, and the API’s CSV export endpoints are unchanged.
Paid refreshes ask first
A refresh you start yourself spends your monthly allowance, so it now opens a confirm saying what it fetches again, what it costs and how many you have left this month. That covers Refresh on Backlinks, Domain Overview and Tech Stack, and running a past search again from a history list (1 research lookup each); Check Now on an AI prompt (1 research lookup); re-running an AI search — AI Mode, ChatGPT, LLM benchmark, citation gap, AI keyword trends (1 AI brand audit); and re-checking a Web Vitals URL (1 site audit page). See Usage and limits.One button on Backlinks
The Backlinks header has one button, Refresh, for the first analysis and every one after it, in place of Run Analysis and Refresh. It fetches the backlinks, referring domains, anchors and new and lost lists again. The scheduled backlink snapshot updates only the totals and the history chart, not those lists. See Backlinks.A market for each service
Each part of Surnex has its own market
Rank tracking, keyword research and AI visibility use different data sources, and each takes its own places and languages. A project now has a market for each, and every picker offers only what its source takes. Nothing is switched to another market behind your back.- Creating a project. Four steps now; Local SEO locations are added from the Local SEO page once the project exists. Competitors says Skip until you add one. Where to Measure has a section each for rank tracking, keyword research and AI visibility, closed, each showing its market on one line. Research and AI visibility start on your rank tracking choice; when a source doesn’t take it (South Africa in Zulu has no research), the nearest market it does is preselected, marked Nearest supported, and the section says why. See Add a project.
- No markets in Project Settings. Each keyword and prompt has its own, chosen when it’s added; Keyword Research has a country and language in each tab’s form; Trends and the AI search pages open theirs in a panel from the button beside the page title, like Add Keywords. Each starts on the project’s. See Project Settings.
- AI visibility is measured by country, in a language all six engines answer in, so every prompt is answered by all six. New prompts and AI searches start on the AI visibility market chosen when the project was created. See AI visibility.
- Topics are now prompts. What AI visibility tracks is called a prompt, matching the plans’ AI prompts. Add Prompts takes one prompt per line — commas no longer separate them, since a question often contains one. See AI visibility.
- Search volume. Languages Google Ads has no volume in are marked Ranked, but no search volume when you add keywords.
- Local SEO locations have their own Google Maps language.
- Google Trends says clearly when the language chosen isn’t one Trends covers (Norwegian
nb), rather than failing. - API and MCP. Projects return
tracking_location_code,tracking_language_code,ai_location_codeandai_language_codealongside the research market (location_code,language_code), and take them on create and update — on create asresearch_*,ai_*andlocal_*. A market left out is the tracking one when its service takes it, and refused with the fields to send when it doesn’t. New:GET /v1/reference/ai-visibility/languagesandGET /v1/reference/ai-visibility/countries;list_search_languagestakesfor: tracking | ai_visibility | research.
Removed
- Content tools. The Content Tools page (Grammar Check and Paraphrase), Generate Meta Tags on a site audit and Content Brief on Keyword Research are gone, with the API routes
/v1/content/meta-tags,/v1/content/brief,/v1/content/grammarand/v1/content/paraphraseand the MCP toolsgenerate_meta_tags,generate_content_brief,check_grammarandparaphrase_text. DataForSEO retired the Content Generation API they ran on. The MCP server now has 95 tools.