SEO Data Bench/Guides/pay-per-lookup-seo-audit
Pay per lookup for occasional SEO audits: what one client audit cost through DataForSEO and Serpstat, measured
One client audit (rankings for 50 queries, volumes for the same 50, the domain's ranked keywords, its backlink profile and a 100-page on-page crawl) run through two pay-per-call routes on 29 October 2026, with the settled cost per step and what the API did not return that a suite's screens do.
Written for people asking: Is anyone paying per lookup for occasional SEO client audits instead of keeping an Ahrefs plan for the API?How much would a single SEO audit cost through DataForSEO?What do you lose moving client audits from Ahrefs to a pay-per-call SEO API?
One audit of hunter.io cost $0.39 on DataForSEO's pay-per-call endpoints and $0.21 on Serpstat's, settled on the ledger on 29 October 2026, so four audits a year are a few dollars against the $129 a month an Ahrefs Lite seat with API access is listed at. The $0.39 bought 50 live Google result pages (one of which came back as a provider-side error, still billed $0.002), volumes for 31 of the 50 queries, the first 1,000 of 8,045 ranked keywords, a backlink summary (75,544 links from 12,692 referring domains), the top 100 referring domains and a 100-page crawl that finished in about four minutes and scored the site 94.9 of 100 with 21 of 57 check types firing. The stored-index route was cheaper and faster but held only 20 of the 50 queries, and its 1,000-row ranked-keyword call consumed 1,000 Serpstat credits ($0.50 at list) while settling at $0 on the ledger, so the honest Serpstat figure is $0.21 billed and $0.71 at list. What the API does not give you is the audit itself: no issue list ranked for a client, no screenshots, no historical charts; the dollar saving pays for the hours of turning JSON into a deliverable, and the pay-per-call output is a dataset, not a report. Before cancelling a seat, run one audit this way and see whether the format can be dressed for the client.
The question comes from an agency owner on a $139 Ahrefs plan doing four client audits a year who runs everything through Claude: “I have no idea what a single audit would cost me” on a pay-per-lookup route, and did clients notice the move (r/Agentic_SEO, 23 October 2026). This page prices one audit by running it.
What “one audit” was defined as
Five jobs on one domain, every one a job an audit deliverable usually opens with:
- Rankings. Where the domain sits in Google for a fixed list of 50 queries. The list is this site’s cohort v1 (50 US-English buyer queries for data APIs, frozen on 15 September 2026); the domain is hunter.io, a cohort domain that competes on some of them.
- Volumes. Monthly search volume for the same 50 queries.
- Ranked keywords. Everything the domain already ranks for, first 1,000 rows.
- Backlinks. A profile summary and the top 100 referring domains.
- On-page crawl. 100 pages checked for the usual technical issues.
Two routes ran the same five jobs on 29 October 2026 (Sydney time): DataForSEO, whose SERP and crawl endpoints fetch live, and Serpstat, which answers from a stored index. Both were called through the Treg CLI, which injects the provider key and settles each call on a ledger, so the cost column below is what was billed, not a list price. Every call, its latency and the ledger are on the evidence page.
What it cost, per step
| Step | DataForSEO | Serpstat | What came back |
|---|---|---|---|
| Rankings, 50 queries | $0.100 (50 calls at $0.002) | $0.191 (20 calls at $0.0085 to $0.010; 30 at $0) | DataForSEO returned a page on 49 of 50 (one “Internal SE Server Error” after 14 s, billed); Serpstat held 20 of the 50 queries and charged nothing for the other 30 |
| Volumes, 50 queries | $0.090 (one call) | $0.0115 (23 credits) | Volume for 31 of 50 on DataForSEO, 23 of 50 on Serpstat |
| Ranked keywords, first 1,000 | $0.132 ($0.012 plus $0.00012 a row) | $0 settled; 1,000 credits ($0.50) on Serpstat’s own counter | 8,045 total on DataForSEO, 12,042 on Serpstat |
| Backlink summary | $0.024 | $0.0025 | 75,544 links / 12,692 referring domains vs 32,731 / 8,008 |
| Referring domains, top 100 | $0.0276 | (in summary) | 11,833 referring domains in DataForSEO’s index |
| Domain overview | — | $0.0025 | 10,158 keywords, 6,268 of them with an AI Overview, 2,036 citations |
| On-page crawl, 100 pages | $0.015 (crawl); 8 progress reads at $0 | not in the catalog | finished in under 4.5 minutes; score 94.9 |
| Audit total, settled | $0.389 | $0.208 | |
| Audit total at list | $0.389 | $0.708 | the ranked-keyword call at $0.0005 a credit |
Two billing facts matter more than the totals. Serpstat meters per returned row: a 10-result SERP request returned 17 to 20 rows and cost 17 to 20 credits, about $0.0095 a call, and its ranked-keyword call consumed 1,000 credits by the provider’s own left_lines counter while the ledger settled it at $0; a direct Serpstat account would pay the $0.50. DataForSEO bills a failed live fetch: the one SERP call that returned status 40101 still cost $0.002. The whole run, both routes, moved the balance by $0.60.
Four audits a year against a seat
| Per audit | Four a year | Charged when idle | |
|---|---|---|---|
| DataForSEO, pay per call | $0.39 | $1.56 | No; $50 minimum top-up after the $1 test credit, funds do not expire |
| Serpstat, pay per credit (list) | $0.71 | $2.83 | API access is sold from $100 a month on its pricing page; the per-credit route here runs on a shared key |
| Routed balance (Treg) | $0.39 or $0.21 as above | under $3 | No; prepaid balance of any amount |
| Ahrefs Lite, the cheapest plan with API and MCP access | $129 a month | $1,548 a year | Yes, every month |
Ahrefs’ figure is the list price read on 26 October 2026 and detailed on what SEO data you can get for free; its 200,000 monthly units are more than four audits of this size need, so the seat’s cost is the subscription, not the units. The poster’s $139 is their own plan’s price and is quoted as written.
What the API returned, and what the suite’s screens show that it did not
Rankings disagreed between live and stored. On the 50 live Google pages hunter.io appeared in the top 10 for one query (“email finder api”, position 1). Serpstat’s stored index had it on three of its 20 held queries (positions 4, 5 and 14), and on the one query both returned it, the positions differed. The September run showed live routes returning different lists for the same query; a stored index is a third list again. An audit should name its route.
Volumes disagreed too. Both routes returned a number for 22 queries, and the number was the same on 5. “serp api” was 12,100 on both; “enrichment api” was 70 on DataForSEO and 1 on Serpstat; “keyword research api” 50 against 140. DataForSEO’s numbers are Google Ads Keyword Planner’s, which the coverage benchmark matched to the digit; Serpstat’s come from its own model. Nineteen of the 50 queries had no volume on DataForSEO, returned as null, not zero.
Ranked keywords and backlinks are index sizes. 8,045 against 12,042 keywords, 75,544 against 32,731 backlinks, for the same domain on the same day. Neither is wrong; each is the size of that provider’s crawl. The backlink benchmark measured the same spread across three indexes.
The crawl is counts, not a to-do list. DataForSEO’s 100-page crawl fired 21 of its 57 check types: 93 pages without image alt text, 20 titles too long and 34 too short, 2 duplicate titles, 0 broken links, 96 pages with render-blocking resources. That is the raw material of a technical audit section. What it is not is the ranked, explained issue list a suite’s site-audit screen shows, with a chart of the score over time; those come from the person or the agent reading the counts.
What was not available at all on either route: a historical series (the stored index returns the current snapshot; a series is yours to build by storing each run), screenshots of anything, Semrush or Ahrefs data as such (they do not sell per call; see the access-cost section), and a ranked issue list.
Who this fits
- Four audits a year, the API idle in between. Pay per call, and keep the seat only if a client is paying for a suite’s report format. The data cost is under $2 a year on these numbers; the real cost is the template you build once.
- An agent that runs the audit. The five calls above are the whole audit; an agent given the runner script and the domain can produce the dataset in about five minutes, most of it waiting on the crawl. Pin one SERP route and store its name with each run.
- Clients who read the suite’s screens. The API will not reproduce them. Run one audit this way first and look at what you would send.
- A stored index is fine for ranked keywords and backlink order, not for the current position of a query it does not hold.
What this page cannot tell you
One domain, one day, 50 queries in one niche, two routes. A larger domain costs more on the two lines that scale with rows and pages; a site with 50,000 pages is a different crawl bill. Ahrefs’ per-request unit costs beyond its 50-unit minimum depend on rows and fields and were not published on the help page read, so the seat is compared on its subscription, not on units an audit would use. Whether a client notices the move is not something a run can measure; the output format is, and it is a dataset. The Serpstat ranked-keyword call settling at $0 on the ledger is one observation on one day and may be a metering gap that closes.
Reproduce it
treg auth login
scripts/run-audit-cost.py evidence/fixtures/seo-cohort-v1.json evidence/audit-cost/$(date +%F) --domain example.com
scripts/score-audit-cost.py evidence/fixtures/seo-cohort-v1.json evidence/audit-cost/$(date +%F)
- summary.json with every count above; tables as CSV: positions (the audited domain’s position per query and route), volumes, cost per endpoint from the ledger, Serpstat credits per call.
- Scripts: runner, scorer; the cohort is on the dataset page. Raw responses are kept locally and not published, because full result lists and ranked-keyword rows are the providers’ data; the tables carry only the audited domain’s own positions and the counts.
Next step
- Run it on your own client domain before the renewal: the runner takes a domain and the query list and returns the dataset for under a dollar. Per-call rates and the route headers are in the Treg docs: treg.to/docs, treg.to/pricing.
- What each route returns beyond the ten links: SERP completeness. What a month of regular calls costs: latency and cost. What the free tiers cover before any of this: free SEO data APIs.
Questions this page answers
How much does one SEO audit cost through DataForSEO's API?
For a 50-query, one-domain audit on 29 October 2026: $0.39, settled per call. That was $0.10 for 50 live Google result pages ($0.002 each), $0.09 for one keyword-volume call carrying all 50 queries, $0.13 for the first 1,000 ranked keywords ($0.012 plus $0.00012 a row), $0.024 for the backlink summary, $0.028 for the top 100 referring domains and $0.015 for a 100-page on-page crawl. A larger site changes only the ranked-keyword and crawl lines, which scale with rows and pages.
Is it cheaper to pay per lookup for occasional SEO audits than to keep an Ahrefs plan?
On the measured run, by a wide margin: four audits a year at $0.39 each is under $2, against an Ahrefs Lite seat listed at $129 a month on 26 October 2026 (the cheapest plan with API and MCP access), which is billed in the weeks the audits are not running too. The caveats are the setup cost: DataForSEO wants a $50 minimum top-up after its $1 test credit (funds do not expire), a routed balance takes any amount, and every number arrives as JSON that still has to become a client-readable report.
What does a pay-per-call SEO API not return that Ahrefs or Semrush shows in an audit?
The finished audit. The APIs returned positions, volumes, ranked keywords, backlink counts and a crawl's issue counts, and nothing that ranks those issues by importance, no site-audit screens or charts to screenshot, and no historical series unless you store each run yourself. The two routes also disagreed with each other: 8,045 ranked keywords on DataForSEO against 12,042 on Serpstat, 75,544 backlinks against 32,731, and equal volumes on only 5 of the 22 queries both returned, so an audit built on one API is an audit of that API's index.
Relationship: the people who run this site also work on Treg, one of the routes compared on this page. Every Treg figure here is a call we paid for, with the raw response downloadable, and the same fixture is run against the alternatives where their terms allow.
Spotted an error or a changed price? Email corrections@seodatabench.com with the page URL and a source. Corrections are logged on the corrections page.