Ahrefs vs KWFinder: Both Halves Are Available by the Call
We said the keyword half was not buyable per call. That was wrong. Here is the corrected answer, and the 740x volume disagreement we found while checking.

Copy this line to your agent to read a domain's link profile.
set up https://monid.ai/SKILL.md and use ahrefs /site-explorer/backlinks-stats and /site-explorer/anchors
This page said something wrong on 2026-09-18 and this is the corrected version. We claimed that keyword research was not available by the call and that you had to buy a seat for it. It is available, we checked on 2026-09-24, and one call returns volume, difficulty, traffic potential and intents for up to a hundred keywords at once. Then we used that endpoint to audit our own keyword source and found it inflating some rows by a factor of 740. Both halves of that are below, and the guide runs through Monid, the OpenRouter for agent tools.
What did this page get wrong?
It claimed a whole product family did not exist on our shelf.
The original claim
On 2026-09-18 we ran a discovery query, saw only site-explorer endpoints come back, and concluded that Ahrefs data was available per call for links and not for keywords. The article told readers that if their question was keyword research they should buy a seat, and we titled it after that asymmetry.
What is actually there
A discovery run on 2026-09-24 returned a full keywords family, and we verified the main one live the same day:
/keywords-explorer/overview volume, difficulty, traffic_potential,
intents, cpc. Up to 100 keywords per
call, each returned keyword one billed
row. 2.3 to 2.5 seconds.
/keywords-explorer/matching-terms keyword ideas containing a seed term
/keywords-explorer/search-suggestions autocomplete-style suggestions
/keywords-explorer/volume-history monthly volume over time
/keywords-explorer/volume-by-country volume split across countries
Either those arrived after our first look or our query was too narrow to surface them. Either way the error is ours, and the fix is a rewritten thesis rather than a patched sentence.
What the corrected answer is
Both halves are buyable by the call. Links and keywords. So the honest version of the Ahrefs-versus-KWFinder question changes shape: it is no longer "you need a seat for the keyword half", it is "you need a seat for the interface, the saved searches and the exploration, and not for the data".
That is a smaller claim and a more useful one. The sections below keep the link measurement, which was correct, and add what the keyword endpoint returned when we pointed it at our own work.
What happened when we audited our own keywords?
We put 38 keywords this blog has targeted through the endpoint we had just said did not exist. Two sources, one call, and the disagreement has a clear shape.
Where the two sources agree
| Keyword | Semrush | Ahrefs |
|---|---|---|
buzzfile search by name | 40,500 | 43,000 |
tiktok profile viewer | 18,100 | 18,000 |
email extractor | 6,600 | 7,800 |
brave api key | 2,400 | 2,700 |
tavily api key | 1,600 | 1,700 |
b2b prospecting tool | 1,900 | 1,700 |
Six rows within roughly twenty percent of each other. Every one of them is a phrase a person would type.
Where they do not
| Keyword | Semrush | Ahrefs | Ratio |
|---|---|---|---|
doctors npi number search | 14,800 | 20 | 740x |
profile facebook viewer | 6,600 | 10 | 660x |
ai lead score calculation method | 14,800 | 40 | 370x |
prom.ua api | 33,100 | 90 | 368x |
search for upc | 9,900 | 40 | 248x |
target company url analysis | 8,100 | 500 | 16x |
Every one of those reads like a machine assembled it. "Profile facebook viewer" has the words in the wrong order. "Ai lead score calculation method" is a description of a task rather than a query. "Target company url analysis" is a phrase nobody says out loud.
What we published on the strength of the inflated numbers
Four pages, named rather than buried:
facebook-profile-viewer-api "profile facebook viewer" 10/mo
search-for-upc-barcode-lookup-api "search for upc" 40/mo
ai-lead-score-calculation-method "ai lead score calculation method" 40/mo
target-company-url-analysis "target company url analysis" 500/mo
The articles themselves are fine: every measurement in them was run and every finding holds. What was wrong was the reason for choosing the topic. Three of those four were written for demand that does not appear to exist.
The rule we should have had
Cross-check the volume on a second source before writing, and distrust any phrase that does not sound like speech. The tell was in the wording all along and we read it as quirky rather than as synthetic. One call per batch of a hundred keywords is a trivial cost against a day of writing.
The one saving grace is that this page's own target, ahrefs vs kwfinder, is itself an 11x casualty: Semrush said 5,400 and Ahrefs says 500. Five hundred a month at a difficulty of zero is still worth having, which is why the page stays.
What is the real difference between Ahrefs and KWFinder?
One is a crawler with a keyword tool attached. The other is a keyword tool. We resell neither as a seat and nothing about KWFinder is measured here, so take the following as a description of categories rather than a scorecard.
What KWFinder is for
Finding keywords and judging how hard they are, in a small focused interface, at a price that suits one person or a small team. It is bought by people who want a list of terms and a difficulty score without paying for an enterprise suite.
What Ahrefs adds
A web crawl of its own. Everything distinctive about it, backlinks, referring domains, anchor text, Domain Rating, link history, comes from operating that crawler. Its keyword tool sits on top of the same infrastructure.
Why the usual comparison misses
Comparing them on keyword difficulty scores is comparing the part they both do. The part only one of them does is the link index, and a team that needs link data is not choosing between these two products at all; it is choosing whether to pay for a link index.
And the part this article can settle
Whether you need a seat to get at either kind of data. You do not, for the read-only version of both, and the next section is what each one returns.
📖 See also Ahrefs API for Domain Rating and Backlinks: What It Returns
Which half can you actually buy by the call?
Both. Two families under one provider, and they are priced and shaped differently.
LINKS
/site-explorer/domain-rating a target's DR and Ahrefs rank
/site-explorer/backlinks-stats live and all-time link and domain counts
/site-explorer/refdomains domains linking to a target, with their DR
/site-explorer/anchors anchor text breakdown
/site-explorer/refdomains-history referring-domain count over time
KEYWORDS
/keywords-explorer/overview volume, difficulty, traffic potential,
intents, cpc, up to 100 keywords a call
/keywords-explorer/matching-terms ideas containing a seed term
/keywords-explorer/search-suggestions autocomplete-style suggestions
/keywords-explorer/volume-history monthly volume over time
/keywords-explorer/volume-by-country volume split across countries
Nothing from KWFinder is on the shelf, which has not changed.
The link half is not one number, and we measured why
Listing five link endpoints makes them look interchangeable. They are not, and the differences are large enough to change a report. One domain, three of those calls, 2026-10-03:
backlinks-stats live 74,255,926 vs all time 284,379,762
live refdomains 138,392 vs all time 396,506
refdomains two domains both rated DR 97: one sends 9,450 links,
the other sends 24
anchors the first two rows of the default ordering were
recruitment spam and an advert for black-hat links
Live links were 26% of the all-time count on this domain, so a tool quoting the cumulative number is describing a profile that no longer exists. Link volume turned out to be unrelated to the sending domain's rating. And the anchor list, unsorted, opened with spam.
The full walk through those three calls, including the order_by that fixes the last one, is in what a backlink API actually returns. This page keeps the suite comparison; that one keeps the link endpoints.
What that means for the decision
If your question is a fixed list of keywords, you do not need a seat. One call returns volume, difficulty, traffic potential and intents for up to a hundred terms, and each returned keyword is one billed row, so the cost scales with what you asked for.
If your question is exploration, you probably do. A seat is where you browse, follow a term sideways into a cluster, save the search and come back to it next month. An API answers questions you already know how to ask.
If your question is link data, the per-call route is excellent. Domain Rating, backlink counts, referring domains and anchors in your own store, on a schedule, with no interface.
And the split is cheaper than it was. A small keyword seat for exploration plus per-call data for everything programmatic is a common shape, and now the programmatic half covers both kinds of data rather than one.
What the keyword call returned
Five keywords, one call, 2,484 milliseconds, on 2026-09-24:
| Keyword | Volume | Difficulty | Traffic potential |
|---|---|---|---|
tiktok profile viewer | 18,000 | 50 | 159,000 |
claude mcp | 2,000 | 30 | 500 |
mcp gateway | 1,400 | 0 | 150 |
buzzfile search by name | 43,000 | null | null |
ai lead score calculation method | 40 | null | null |
Two things to note before the next section. difficulty came back null on two of five rows, so the field is not always populated. And traffic_potential is a separate quantity from volume: the first row has nine times more traffic potential than search volume, because the pages that rank for it rank for much else besides.
What the calls returned on the link side
Pointed at our own domain, so these numbers are ours to publish:
| Endpoint | Wall clock | Returned |
|---|---|---|
domain-rating | 2,022 ms | domain_rating 52, ahrefs_rank 569,811 |
backlinks-stats | 2,153 ms | live 1,896, all-time 3,826, live refdomains 409, all-time refdomains 547 |
anchors | 2,452 ms | anchor rows with refdomains, links_to_target, first_seen, last_seen |
Three calls, under seven seconds together, no seat.
One parameter quirk to plan for
domain-rating and backlinks-stats both require a date and fail with a 400 without one. anchors rejects it outright: Unrecognized key: "date". Three sibling endpoints under one prefix, two opposite rules, and the same inconsistency we hit on 2026-09-15. Write the date logic per endpoint, not per provider.
How do you pull link data through one key?
Three calls in a fixed order.
For agents
Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:
set up https://monid.ai/SKILL.md
It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.
For humans
npm install -g @monid-ai/cli
monid keys add -k <your-api-key> -l main
Step 1. The one number people quote
monid run -p ahrefs -e /site-explorer/domain-rating \
--query '{"target": "monid.ai", "date": "2026-09-15"}'
Returns domain_rating and ahrefs_rank. Ours came back 52 with a rank of 569,811. Three days earlier the same call returned 53, so this is a metric that moves by whole points on a quiet week and should never be tracked as a fixed property of a site.
Step 2. The counts that matter more
monid run -p ahrefs -e /site-explorer/backlinks-stats \
--query '{"target": "monid.ai", "date": "2026-09-15"}'
Four integers: live backlinks, all-time backlinks, live referring domains, all-time referring domains. The gap between live and all-time is the next section and it is the most useful thing on this page.
Step 3. What the links say
monid run -p ahrefs -e /site-explorer/anchors \
--query '{"target": "monid.ai", "limit": 20}'
No date here. Returns anchor rows with the number of referring domains using each, the number of links, and a first-seen timestamp.
Give this to your agent![]()
Set up https://dev.monid.ai/SKILL.md, and then use Monid to pull domain rating, backlink stats and anchors for our domain and three competitors, then tell me each site's live-to-all-time ratio for both links and referring domains.📖 See also Live Web Search Your Agent Can Call
What do all-time backlink counts hide?
Half your links, in our case.
The numbers
backlinks live 1,896 all-time 3,826 → 50.4% gone
referring domains live 409 all-time 547 → 25.2% gone
Over the life of the domain, Ahrefs has seen 3,826 backlinks to us and 1,896 of them are still there. It has seen 547 referring domains and 409 remain.
Why the two rates differ, and why that is the interesting part
Links decayed twice as fast as domains did. That is the signature of losing many links from a few sources rather than losing sources: a handful of sites that linked to us repeatedly, a directory or an aggregator, dropped a lot of pages while the domain itself stayed. A site losing whole relationships would show the two rates converge.
So track the ratio, not the count. A rising all-time number with a flat live number is a site whose link building is being undone as fast as it is done, and only the pair of figures shows it. This is the same argument as the two rank fields in the SERP guide: one number looks stable while the thing it describes is moving.
What the anchors said about us
The rows that came back are a fair picture of a young domain's profile rather than a flattering one. Among them: وثائق Monid in Arabic, Перейти на сайт ↗ in Russian, Connect your agent to every tool it needsMonid which is our own page title scraped without the space, and Check official pricing.
Almost none of that is editorial anchor text. It is aggregators, directories and translated listings quoting a title or a navigation label. last_seen came back null on every row returned, so the recency signal you might want from this endpoint is not populated.
That picture is consistent with what our own link measurement found: the profile is platform listings rather than earned editorial links, which is exactly what a Domain Rating in the low fifties is made of.
Which endpoint should I use for which job?
| Endpoint | What it does | Input | Output | Best for | Billing |
|---|---|---|---|---|---|
ahrefs/site-explorer/domain-rating | Link authority score | target, date | domain_rating, ahrefs_rank | The headline number | Per result |
ahrefs/site-explorer/backlinks-stats | Live and all-time counts | target, date | Four integers | Decay, which is the real signal | Per result |
ahrefs/site-explorer/refdomains | Linking domains with their DR | target | Domain rows | Judging link quality | Per result |
ahrefs/site-explorer/anchors | Anchor text breakdown | target, limit, no date | Anchor rows with domain counts | What the web calls you | Per result |
ahrefs/site-explorer/refdomains-history | Referring domains over time | target | Time series | Trend without storing it yourself | Per result |
ahrefs/keywords-explorer/overview | Volume, difficulty, intents | keywords up to 100, country | One row per keyword | Checking a list you already have | Per result |
ahrefs/keywords-explorer/matching-terms | Ideas containing a seed | Seed term, country | Keyword rows | Expanding a seed programmatically | Per result |
Rows one to five were verified on 2026-09-18 and the keyword rows on 2026-09-24. The table gives billing shape rather than figures, because shape drives design and current numbers live on monid.ai/tools.
The last two rows are the ones the first version of this article said did not exist.
When should you just buy the seat?
Four cases, and the first is the common one.
Exploration is the job. If what you need is to wander a topic, follow one term into a cluster, save the search and return to it, buy the tool. A call answers a question you can already phrase; a seat is where you work out what to ask. For one person doing content planning that is often the whole answer, and nothing measured here replaces it.
A person needs to explore. Link building is investigative work. Clicking from a referring domain into its outbound links into a competitor's profile is a thing an interface does well and a pipeline does badly. Per-call data serves monitoring, not exploration.
You need the crawl fresh and deep. Per-call routes give you the metrics the index already computed. If you want to interrogate the raw link graph at depth, the seat's exports are built for it.
Your volume is small. Three calls on one domain is trivial. Three calls on ten thousand domains is a budget, and a suite with a generous export allowance may cost less than the same data by the call. Compute the crossover from your own domain count rather than from a headline rate.
And the disclosure: this is Monid's blog and we resell the Ahrefs link endpoints. We also just told you that if your question is keyword research, an API is not the answer and you should buy a seat from a company that is not us.
Conclusion
The Ahrefs and KWFinder comparison is usually run on keyword research, which is the ground where the two products overlap and where neither is replaceable by a call. The ground where they differ is a link index that one of them built and the other did not, and that half is available per call: Domain Rating, live and all-time counts, referring domains and anchor text, three calls in under seven seconds with no seat involved.
What matters more than the comparison is which pair of numbers you read. Our domain shows 1,896 live backlinks against 3,826 all-time, and 409 live referring domains against 547. Half the links are gone and a quarter of the domains are, and only the live-to-all-time ratio shows it. A single all-time figure on a slide is a number that can only go up, which is why it is the one usually on the slide.
Free next step: run monid inspect -p ahrefs -e /site-explorer/backlinks-stats, then pull the four integers for your own domain and divide. If your links are decaying faster than your domains, you are losing pages at a few partners rather than losing partners. Start at monid.ai.
FAQ
Is a cheaper keyword tool enough on its own?
For keyword research and content planning, often yes, and we have no measurement that says otherwise because we do not resell one. The question to ask is whether link data is part of your job. If you are publishing into a competitive space and need to know who links to the pages beating you, a keyword tool cannot tell you, and no pricing tier of it ever will, because it does not operate a crawler. Buy the cheap seat for terms, and add link data separately per call if and when the link question actually arrives, rather than paying for a suite in advance against a need you may not have.
Why did Domain Rating change by a point in three days?
Because it is a computed score over a link graph that is re-crawled continuously, and it is relative: your score moves when other sites gain or lose links even if nothing about yours changes. Ours read 53 on 2026-09-15 and 52 on 2026-09-18 with no link event of our own in between. The practical consequence is to treat it as a slow indicator with noise of about a point, never as an identifier, and never to alert on a single-point move. If you are tracking authority, store the referring-domain count alongside it, because that number moves for reasons you can actually explain.
Can you do keyword research without a seat at all?
Yes, and an earlier version of this page said otherwise, which was our mistake. One call to the keywords overview endpoint returns volume, difficulty, traffic potential, intents and cost per click for up to a hundred terms at once, billed per returned keyword. What a seat still buys you is exploration: wandering a topic, following a term into a cluster, saving the search. So the split is between checking a list you have, which is a call, and working out what should be on the list, which is an interface. The SERP surface itself is a third thing and it is in the SERP guide.
How should you read anchor text on a young domain?
As a description of who has noticed you, not as a description of what you are about. Ours came back as page titles scraped with a missing space, navigation labels like "Check official pricing", and listings in Arabic and Russian. That is the profile of a site indexed by aggregators and directories rather than cited by writers, which is normal early and is not fixed by acquiring more of the same. Look at the count of distinct referring domains per anchor: a large number of domains sharing one templated anchor is one syndication network, not thirty endorsements.
Last updated September 2026.


