Free backlink checker Ahrefs style vs an API: what one post costs
A table of per-call credits and hard caps, then the arithmetic for a blog that ships a few posts a day. Everything priced here comes from our own published numbers.
SEOBlogBot research team ·
Credits and caps per action
1 credit = $0.0001. A call is billed once whatever the row count.
Free checkers from Ahrefs, Semrush and Moz show a limited slice of results behind a form. Their terms and limits change without notice, so read each tool's own page before building on it, and remember that a script scraping a form breaks the day the markup changes.
An API with a documented price avoids both problems. If you only need a quick look by hand, the free domain checker on the home page is the same idea with no key.
Three real budgets, priced
01
Gate only
One bulk_dr call per post is 1 credit. Thirty posts a month is 30 credits, or $0.003.
02
Gate plus audit
Add refdomains and anchors once a month per site: 1 + 2 + 2 = 5 credits per post cycle, $0.0005.
03
Archive sweep
One-time pull for 200 posts on one site stays under 100 credits. The worked example shows how.
Reading the table like a budget
Start from the ratio.
A gate call costs 1 credit and an audit pull costs 2, so even a team that publishes ten posts a day on ten sites stays below a dollar a month on credits. The surprise cost is nearly always something else: CI minutes, a Slack seat, or an editor reading every HOLD message the moment it arrives.
Price your pipeline end to end, then decide whether the API line is worth optimising at all.
Compared with a subscription
The minimum request size matters more than the headline price
Ahrefs sells API units inside subscriptions starting at $129 a month for 200,000 units, with at least 50 units per request. A pipeline that asks small questions burns units on the minimum, while ours bills per call with no floor.
Ahrefs and Semrush are fuller for keywords and rank tracking.
Our link data refreshes roughly monthly, not daily.
Neither side's numbers match the other's DR or DA, so benchmark inside one source.
Rate limits and the numbers we do not have
We state no requests-per-second limit.
Because none is published, treat pacing as your job: sleep briefly between items in a loop, group domains through bulk_dr instead of looping, and stop on 402 rather than retrying. Measure your own throughput on a test run and write that number in your runbook instead of assuming one.
When you do measure it, write down the batch size, the wait between items and the date, because a number without a date is folklore by the next quarter. The glossary entry on the refresh window explains why monthly data changes how you test.
Cost hygiene for a scheduled job
Log _credits after every authenticated call.
Prefer bulk_dr over a loop of single lookups.
Page with per up to 5000 only when you need the rows.