Backlink Checker - Backlinks, Referring Domains & Anchor Text avatar

Backlink Checker - Backlinks, Referring Domains & Anchor Text

Pricing

$10.00 / 1,000 domain checkeds

Go to Apify Store
Backlink Checker - Backlinks, Referring Domains & Anchor Text

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

SR

Maintained by Community

Actor stats

1

Bookmarked

494

Total users

323

Monthly active users

a day ago

Last modified

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.

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.

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.

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

FieldTypeDefaultDescription
domainstringrequiredDomain to analyze (e.g. "coolblue.nl" or "example.com"). Required.
include_backlinksbooleanTrueIf false, returns only the domain-level summary (faster, smaller payload).
timeoutinteger60How long to wait for the backlink lookup (default 60).
second_indexbooleanTrueCheck the domain against a second, independent backlink index and return its counts, trust scores and dofollow split in their own columns.
second_index_linksbooleanTrueAlso 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.
maxBacklinksinteger0Stop after this many backlink rows. Also the cost ceiling, since every row is billed. 0 means no cap beyond what the source returns.
openpagerank_keystringoptionalAdds 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.

FieldFrom
url_from, domain_from, anchor_text, nofollow, source_domain_score, link_status, outbound_links_on_pageThe backlink itself
total_link_count, referring_domains_count, domain_score, follow_percentFirst index
second_backlink_count, second_referring_domains_count, second_domain_score, second_page_score, second_follow_percent, second_backlinks_sampleSecond index
open_page_rank, open_page_rank_integer, open_page_rank_positionOpen PageRank, when a key is supplied
backlink_sources, authority_sourcesHow 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.

CodeWhat it meansWill a re-run help?
second_index_no_crawlThe second index has never crawled this domain, so it has no links to add for it.No. The answer is stable
second_index_links_emptyIt has crawled the domain and holds no links for it. That is its answer, not a failure.No
second_index_links_missIts link list was temporarily unavailable.Yes
second_index_missThe second index did not answer, so the counts are single-sourced rather than corroborated.Yes
referring_domain_trends_missThe authority spread and trend were temporarily unavailable.Yes
upstream_quota_exhaustedThe 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.

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 manageHosted for youJSON outputUsage-based, no monthly plan
This ActorYesYesYesYes
DataForSEO Backlinks APINo, key requiredYesYesCredit or subscription
SE Ranking Backlinks APINo, key requiredYesYesSubscription
vebapi Backlink Data APINo, key requiredYesYesCredit plans

FAQ

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.

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.

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.

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.

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.