Backlink Checker - Backlinks, Referring Domains & Anchor Text
Pricing
$10.00 / 1,000 domain checkeds
Backlink Checker - Backlinks, Referring Domains & Anchor Text
Get the full backlink profile for any domain — domain score, referring-domain count, total-link count, and per-link records (origin URL, target URL, anchor text, follow/nofollow, dates).
Pricing
$10.00 / 1,000 domain checkeds
Rating
5.0
(1)
Developer
SR
Maintained by CommunityActor stats
1
Bookmarked
494
Total users
323
Monthly active users
a day ago
Last modified
Categories
Share
Backlink Checker API: Every Backlink, One Row Each
Hosted backlinks checker that returns structured JSON without the captcha-solving, proxy-rotation, and site-update maintenance you'd otherwise own. Run it from the Apify Store with one click, or call it from your own service via the Apify API. Pay only for what you scrape, no monthly subscription.
How the backlinks checker seo works
A backlinks checker answers one question that drives most of off-page SEO: who links to this domain, and how much authority do those links pass. This Actor takes a domain and returns its link profile as structured JSON, the referring domains count, the total link count, the share of dofollow links, a domain authority score, and a per-link breakdown with the anchor text and source. You get the same shape of data an SEO team pulls before a link-building campaign or a competitor audit, without a per-seat subscription.
The practical workflow is simple. Point the backlinks checker at your own domain to see where your authority comes from and which links are worth protecting, then point it at the domains ranking above you to find the referring domains they have and you do not. Those gaps are your outreach shortlist. Because the output is JSON and billed per result, you can run it across a whole list of competitors in one pass and load the link gaps straight into a spreadsheet.
What you get
- Structured JSON output, every backlinks checker run returns clean, parseable records ready for analytics or downstream pipelines.
- Hosted on Apify, no servers, no proxies, no anti-bot maintenance. Click Run.
- Pay only for what you scrape, pricing scales with usage; no monthly subscription minimum.
- Two independent backlink indexes, not one, so the headline number comes with a second opinion beside it.
One row per backlink
Every backlink is its own row, carrying the page that links to you, the domain it sits on, the anchor text, whether it is nofollow, and how strong the linking domain is. A domain with 89 backlinks returns 89 rows.
Each row also repeats the target domain's own figures — domain_score,
total_link_count, referring_domains_count, follow_percent. That looks
redundant until you export a CSV: a row carrying only the link would force you
to join it back against something else to know whose profile it belongs to.
Set Include per-link records off to get a single row with the metrics and no links, which is one billed result instead of hundreds.
What the source returns, and what it reports
This is the number to understand before you plan a run.
The source reports a total and hands over a capped list. zyte.com reports
25,440 backlinks and returns 462. A smaller profile is usually complete:
shoppingscraper.com reports 288 and returns 89.
total_link_count is what the index says the profile holds.
backlinksReturned in the run summary is what you actually got. The gap is the
source's own ceiling, not a parse failure, and no parameter widens it — limit
and offset are ignored and everything else errors.
So for a large domain, treat this as a strong sample of the profile rather than
the whole of it, and use total_link_count for the headline figure.
Maximum backlinks per domain caps the rows, and therefore the cost.
Two indexes, and they disagree
Every backlink tool reports a single number and none of them tell you how much to trust it. This one runs the domain past two independent indexes and puts both answers in the row.
They will not agree. Measured on the same domain on the same day, one index
reported 418 backlinks and the other 906, and their link lists barely
overlapped: one had github.com and news.ycombinator.com, the other had
saashub.com and linkorado.com. Neither is a superset of the other. They
crawl different parts of the web and refresh on different schedules.
Nothing is merged. total_link_count is the first index and
second_backlink_count is the second, and there is no averaged figure anywhere
in the output, because an average of two numbers that differ by a factor of two
is wrong for both. backlink_sources tells you how many answered.
The spread is itself the useful part. Two indexes that roughly agree mean the profile is well-established and evenly crawled. A large gap usually means the links are recent, or concentrated somewhere one crawler reaches and the other does not, and that is worth knowing before you quote any single number to a client.
One thing does hold steady across both, and it is the most useful number in the
output for that reason. On a domain where the counts differed by 46 per cent
(288 against 420), the dofollow share agreed to within a point: 74.0 and
72.9. Absolute link counts depend on how much of the web a crawler has seen;
the ratio between followed and nofollowed links does not. So when the two
indexes disagree on size, follow_percent and second_follow_percent are
still the pair to trust.
The same idea applies to authority: domain_score and second_domain_score
are each index's own trust score, and open_page_rank is a third opinion
derived from the Common Crawl web graph when you supply a free key.
Turn Check against a second backlink index off for a slightly faster run with one source.
How good are those referring domains, and which way are they moving
A referring-domain count answers "how many" and stops there. Two domains with 11,000 referring domains each can be in completely different health, and the count cannot tell them apart. Two columns fix that.
referring_domain_authority_spread counts your referring domains into ten
authority bands, 0-10 through 90-100. On zapier.com, 57,557 of its
118,308 referring domains sit in the bottom 0-10 band. The headline number
reads like an unassailable profile; the spread shows that about half of it is a
long tail of near-worthless domains. That is the difference between a link
profile you can quote to a client and one you cannot.
The bands sum to the second index's referring-domain total, so they will
not add up to referring_domains_count, which is the first index's figure
(118,308 against 74,231 on that same domain). That is the same disagreement
between the two indexes described above, not an error.
referring_domains_new_lost_series gives referring domains gained and lost
per day, with referring_domains_gained and referring_domains_lost as
totals. A single snapshot cannot show direction. 1,003 gained against 392 lost
is a profile compounding; the reverse is one decaying while the headline count
still looks fine.
Neither figure is available from any other source in this Actor, and both answer on every domain, including ones the 100-link sample cannot reach because no crawl exists for them yet. They add no billed rows. Turn Add the referring-domain authority spread and trend off for a slightly faster run.
They do not raise backlink_sources. This is more detail about one index's
view of your links, not another index's opinion, and counting it as one would
be a claim the numbers do not support.
Why use this backlinks checker instead of Ahrefs
Ahrefs is a great tool, but it has trade-offs that this Apify Actor avoids:
- No subscription lock-in. Ahrefs typically requires a monthly contract starting at $99-$449/month. This Actor charges per run, you can spend $5 on a one-off competitive audit and walk away.
- Direct dataset access. Instead of clicking through a dashboard UI to copy data, you get a machine-readable JSON dataset on every run. Pipe it straight into BigQuery, Snowflake, or your warehouse.
- Hosted scraping infrastructure. Apify handles proxy rotation, captcha solving, and retries, so you get the same data Ahrefs returns, without paying for their reporting layer you may not need.
- No per-seat pricing. Anyone on your team can call the Actor's API; pricing is based on usage, not seats.
Input
| Field | Type | Default | Description |
|---|---|---|---|
domain | string | required | Domain to analyze (e.g. "coolblue.nl" or "example.com"). Required. |
include_backlinks | boolean | True | If false, returns only the domain-level summary (faster, smaller payload). |
timeout | integer | 60 | How long to wait for the backlink lookup (default 60). |
second_index | boolean | True | Check the domain against a second, independent backlink index and return its counts, trust scores and dofollow split in their own columns. |
second_index_links | boolean | True | Also return the second index's own backlinks as rows, marked link_source=second_index. Up to 100 more, and they barely overlap the first index. On by default; every row is billed, so use maxBacklinks for a cost ceiling or turn this off for the first index alone. |
maxBacklinks | integer | 0 | Stop after this many backlink rows. Also the cost ceiling, since every row is billed. 0 means no cap beyond what the source returns. |
openpagerank_key | string | optional | Adds a third authority opinion from Open PageRank, derived from the Common Crawl web graph. Free for 30,000 domains a month. Without it the backlink data is unchanged and the run says the score is single-sourced. |
Output
Every run pushes results to the Apify dataset as JSON records. One record per backlink, not per referring domain: a site that links to you from three pages is three rows. Every row also carries the target domain's own figures and both indexes side by side, so a CSV export stands on its own without a join.
| Field | From |
|---|---|
url_from, domain_from, anchor_text, nofollow, source_domain_score, link_status, outbound_links_on_page | The backlink itself |
total_link_count, referring_domains_count, domain_score, follow_percent | First index |
second_backlink_count, second_referring_domains_count, second_domain_score, second_page_score, second_follow_percent, second_backlinks_sample | Second index |
open_page_rank, open_page_rank_integer, open_page_rank_position | Open PageRank, when a key is supplied |
backlink_sources, authority_sources | How many sources answered |
second_backlinks_sample is capped at ten links. That is the second index's own
ceiling rather than a setting here, and its summary counts are complete. Turn on
second_index_links to get up to 100 of that index's links as full rows
instead, in the same columns as every other row and marked
link_source=second_index.
The two indexes find largely different links. On one test domain, only 2 of
the second index's 100 referring domains already appeared in the first
index's 218 rows, and the other 98 skewed toward link networks. That is the
point of asking both: a link audit that cannot see the spammy half is not an
audit. spam_score and source_page_score are reported by the second index
only and stay null on first_index rows.
The first index returns every link it will give for a domain in one call, which
is fewer than total_link_count says the profile holds. That gap is the
source's ceiling, not a truncation here, and the run summary reports
backlinksReturned against backlinksReported so you can see it.
You can:
- Download the dataset as JSON, JSONL, CSV, or Excel from the Apify console
- Stream results via the Apify API for use in your own application
- Pipe results to webhooks, S3, BigQuery, or any of Apify's 30+ integrations
- Diff today's run against yesterday's to detect changes (new entries, removed entries, modified fields)
When a source comes back empty, which empty is it
"No data" is several different facts, and they call for different reactions.
The errors record names which one happened instead of reporting them all the
same way, and the run still succeeds with everything the other sources did
return.
| Code | What it means | Will a re-run help? |
|---|---|---|
second_index_no_crawl | The second index has never crawled this domain, so it has no links to add for it. | No. The answer is stable |
second_index_links_empty | It has crawled the domain and holds no links for it. That is its answer, not a failure. | No |
second_index_links_miss | Its link list was temporarily unavailable. | Yes |
second_index_miss | The second index did not answer, so the counts are single-sourced rather than corroborated. | Yes |
referring_domain_trends_miss | The authority spread and trend were temporarily unavailable. | Yes |
upstream_quota_exhausted | The first index's allowance for this run is spent. | Yes, later |
The distinction that matters most is the first row against the third. A domain nobody has crawled and a source that was briefly unavailable look identical in an empty dataset, and only one of them changes if you run it again. The first row will read the same tomorrow; the third is worth another go.
The Actor already retries the recoverable ones for you before reporting anything, so an error in this list means it tried and the condition persisted.
Use cases for the backlinks checker
Competitive monitoring
Run the backlinks checker weekly across your top competitors. Spot meaningful changes before they show up anywhere else.
Lead enrichment
Pipe backlinks checker data into your CRM as part of a nightly enrichment job, every record gets the structured fields your team needs.
Market research
Aggregate backlinks checker data across a category to size demand, identify gaps, and find under-monetized niches.
Operational reporting
Schedule the backlinks checker as a recurring Apify task. Pipe results to your warehouse and surface in your existing dashboards.
How it compares
The established backlink APIs all require you to register, manage an API key, and buy into a credit or subscription plan before the first call. This Actor runs on Apify with no key to manage and returns the link profile as JSON per run.
| No API key to manage | Hosted for you | JSON output | Usage-based, no monthly plan | |
|---|---|---|---|---|
| This Actor | Yes | Yes | Yes | Yes |
| DataForSEO Backlinks API | No, key required | Yes | Yes | Credit or subscription |
| SE Ranking Backlinks API | No, key required | Yes | Yes | Subscription |
| vebapi Backlink Data API | No, key required | Yes | Yes | Credit plans |
FAQ
Is this backlinks checker free?
The Actor itself is hosted on Apify with pay-per-event pricing, you only pay for what you actually scrape. There's no monthly subscription and no minimum spend. The first few runs typically cost less than a coffee. For long-running daily jobs, your monthly bill scales with the volume of data you pull.
How does this backlinks checker compare to existing tools?
Compared to Ahrefs, this Actor returns the same structured data without the monthly subscription or per-seat pricing. You pay per run, not per month, which is dramatically cheaper for most teams that need data in bulk but don't need a dashboard UI.
What input does the backlinks checker accept?
The full input schema is rendered as a form on the Apify Store page, you can run a job by filling out a few fields with no code. The schema also accepts raw JSON if you're calling the Actor via the Apify API from your own service. See the Input section above for the field list.
How accurate is the backlinks checker data?
The Actor scrapes data directly from the source, so accuracy matches what a human user would see on the page. There's no third-party cache or middleware, every run returns the live state. If the upstream site throttles requests, the Actor handles retries and proxy rotation transparently and surfaces a structured error in the dataset's errors field rather than failing silently.
Can I run this backlinks checker on a schedule?
Yes, Apify has built-in scheduling. You can set the Actor to run hourly, daily, or weekly, and pipe results to webhooks, S3, or your data warehouse via the Apify integrations. Most teams schedule the backlinks checker as a daily task and incrementally diff against the previous run to detect changes.
Pricing
This backlinks checker uses Apify's pay-per-event pricing, every successful record costs a small fixed amount, so your bill scales linearly with usage. There's no monthly subscription and no minimum spend. See the Apify Store page for the current per-event price; expect typical workloads to cost a few dollars per run.