DataForSEO pricing versus per-call credits, priced for one notebook
We cannot quote another vendor's price list, and you should not trust anyone who does from memory. We can show how our own credits add up for a monthly job.
CranSEO research team ·
Our price list as a lookup table
| Actions | Credits per call | Cost per call | Per 1,000 calls |
|---|---|---|---|
| domain, overview, stats, suggest | 0 | Free | Free |
| bulk_dr, compare, top, dr_distribution, tld_breakdown | 1 | $0.0001 | $0.10 |
| refdomains, backlinks, anchors, toppages, anchor_cloud, intersect | 2 | $0.0002 | $0.20 |
| search, keyword | 3 | $0.0003 | $0.30 |
A hypothetical month, line by line
This is an example, not a customer story. Imagine an analyst who tracks 30 client sites and 200 competitor domains in one Quarto report.
Each month the notebook runs bulk_dr once over all 230 domains, which is 1 credit. It then pulls refdomains for each of the 30 client sites, at 2 credits per call, so 60 credits.
Add anchors for the same 30 sites, another 60 credits, and a handful of re-runs while debugging, say 40 more. The month totals about 161 credits.
That is roughly $0.016. Even if the example were ten times bigger, the $100 sign-up credit would last for years of such runs, and the bill would stay a rounding error.
Reading the table the way a budget owner would
Most cells are tiny. Look at the right-hand column.
A thousand calls to a 1-credit action cost ten cents, and a thousand calls to a 3-credit action cost thirty. Free actions cost nothing, so exploration in a notebook is effectively unmetered while you work out the shape of the data.
The only way to spend real money here is to loop over very many domains with a 2- or 3-credit action, which is why bulk_dr, at 1 credit for up to 2,000 domains, is the call to learn first.
The same budget as a few lines of R
Edit the counts and rerun. The numbers below are the hypothetical ones from the paragraphs above.
credit_usd <- 0.0001
plan <- tibble::tribble(
~step, ~calls, ~credits_per_call,
"bulk_dr", 1, 1,
"refdomains", 30, 2,
"anchors", 30, 2,
"debug reruns", 40, 1
)
plan$credits <- plan$calls * plan$credits_per_call
sum(plan$credits) # 161
sum(plan$credits) * credit_usd # 0.0161Ahrefs sells API units inside subscriptions, from $129/month for 200,000 units, with at least 50 units per request. For DataForSEO pricing, open its current price list and plug the same call counts into the tibble above.
What the arithmetic leaves out
Time, mostly. Credits are cheap, but cleaning an export is not.
A budget in dollars hides the real costs of a pipeline: the hour you spend on a failed join, the day you lose when a key leaks, the confusion when two vendors disagree by 30 percent. Credit price rarely decides a choice at this scale.
What does matter is billing shape. Billing once per call, whatever the rows, rewards big pages and punishes loops, so the code in the teardown asks for per = 1000 and stops early. If you are still choosing a provider, start from the decision tree.
The free actions are the quiet saving. A shared notebook whose demo cells call domain or overview needs no key, so a colleague can rerun it without touching your balance, and the action glossary lists exactly which actions those are.
Questions to ask any vendor before you compare
- Is a call billed once, or once per row returned?
- Is there a monthly minimum or a subscription floor?
- What does a failed request cost?
- How fresh is the underlying data, and who says so?
- Can the free tier run the demo cells of a shared notebook?