SEO
Search Console, crossed with revenue
The reports that tell you what to fix, ranked by the dollars at stake. Needs Search Console connected for the site.
GET
/api/v1/sites/{id}/seo/{report}Reports:
actions— the top 5 moves, sorted by monthly dollar impact.queries— clicks, impressions, position and modeled revenue per query.cannibalization— queries where two pages compete, and which to keep.never-converting— queries with traffic but no revenue: deprioritize.brand-split— brand vs non-brand clicks over time.ai-theft— pages losing clicks to AI answers, with a cited vs stolen verdict.
curl "https://datalenk.com/api/v1/sites/3/seo/actions" -H "Authorization: Bearer dlk_live_…"
response
{
"data": [
{ "kind": "cannibalization", "title": "Consolidate 'png to svg' on /: 2 pages compete",
"dollars": 67, "severity": "high", "href": "/dashboard/search#cannibalization" },
{ "kind": "opportunity", "title": "Push 'jpg to dxf' into the top", "dollars": 45, "severity": "medium" }
]
}An honest model
Google hides the query at click time, so revenue per query is modeled, not measured: we split each page's organic revenue across its queries, weighted by intent, with a confidence score. Around 46% of clicks come from queries Google anonymizes; that revenue stays in a separate bucket and is never reassigned to the visible queries. The window is fixed to 28 days because Search Console data lags 2 to 3 days.
Not connected
Without a Search Console connection you get a clean 404:
404
{ "error": { "code": "gsc_not_connected",
"message": "Google Search Console is not connected for this site. Connect it in Dashboard, Search." } }