DataForSEO connection

One pay-per-call account powers rank checks, keyword volume and difficulty, seasonality, competitor mining, backlinks and site crawls — and until it's connected everything says so instead of pretending.

What it is

A thin typed client over the DataForSEO v3 REST API using basic auth from two environment variables. It covers live organic SERPs, keyword overview (volume, difficulty, CPC, twelve-month history), SERP competitors, ranked keywords, keyword ideas, referring domains, backlinks summary, and on-page crawl post/collect. Every call returns the API's cost alongside the data.

Also called: rank data provider · SEO data source · keyword API · DataForSEO · rank tracking · keyword volume · backlinks · site audit

See it
DataForSEO connection
Area
Integrations
Group
Search data
System
SEO Growth Engine
Solves
2 named problems
01dfsConfigured() checks for DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD.
02Each call posts to the v3 endpoint, validates status_code 20000, then unwraps tasks[0].result.
03Any failure returns { ok: false, error } with the API's own status message rather than throwing.
The Settings connection card showing DataForSEO connected/not connected with the exact variables to set. Sample data — no customer information appears here.
How it works
  1. 1dfsConfigured() checks for DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD.
  2. 2Each call posts to the v3 endpoint, validates status_code 20000, then unwraps tasks[0].result.
  3. 3Any failure returns { ok: false, error } with the API's own status message rather than throwing.
  4. 4The reported cost is passed back to the caller on every call.
  5. 5Every consumer — the daily cron, the panel actions, the growth engine — checks dfsConfigured() first and reports 'not connected' as a normal state.
Why we built it

The header sets the rule for an unconfigured integration: "Until Keith provides the login, every function reports configured: false and the panel shows exactly what to paste where — nothing crashes, nothing pretends." A half-connected analytics tool that renders zeros is worse than one that says it isn't connected, because zeros get believed.

The problem
  • Rank, keyword, backlink and crawl data came from separate subscriptions.
  • An unconfigured integration rendered as zero data rather than as unconfigured.
Sound familiar?
What you get
One pay-per-call account behind every SEO number in the panel
Every call reports its own cost
Unconnected reads as unconnected, never as zero
What's inside
Where you actually rank, checked daily
A live search results check for a tracked keyword returns your absolute position, the exact ranking URL, and the ten domains above you.
Volume, difficulty and seasonality per keyword
Batch keyword metrics return monthly search volume, difficulty and cost per click, plus a twelve-month seasonal profile folded into a January-to-December shape.
Backlink counts and the prospect pool
A domain summary reports total backlinks, referring domains, and links gained and lost — and a competitor's referring domains become a ranked prospect list.
On-page audit with a score and a checklist
A crawl of the site returns an on-page score, the number of pages crawled, and the specific checks that failed, kept as a history so fixes can be seen landing.
Find who ranks, and every term they rank for
Identify the domains that rank across a set of terms even when you rank for none, pull every keyword they rank for, fill gaps with seeded ideas, and turn a single term into a content brief.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →