# Backlink Checker: Referring Domains and Anchors

> Backlink Checker is an Apify actor (API) by CheapAPI Labs. Backlinks, referring domains, anchors and authority for any domain, plus a link gap against competitors. It costs $1.50 per 1,000 rows on every Apify plan, plus $0.035 per domain report, billed through your Apify account with no API key. Compared with the most used actor named Backlink Checker (about 530 users): authority metrics for 1,000 domains costs $1.235 on every plan here and $10.00 there (Apify Store listing prices, checked September 2026). Apify platform usage is billed on top here. For a single domain overview, some all in one SEO scrapers charge less than our $0.035.

- Page: https://cheapapilabs.com/actors/backlink-checker/
- Run on Apify: https://apify.com/cheapapi/backlink-checker
- Publisher: CheapAPI Labs (Apify username cheapapi)
- Main price: $1.50 per 1,000 rows on Free, $1.50 on Gold
- Our prices updated: 2026-10-30

## Prices per event (USD)

| Event | Free | Bronze | Silver | Gold |
|---|---:|---:|---:|---:|
| Domain report | $0.035 | $0.035 | $0.035 | $0.035 |
| Result row | $0.0015 | $0.0015 | $0.0015 | $0.0015 |
| Bulk domain metrics | $0.0012 | $0.0012 | $0.0012 | $0.0012 |
| Low yield extra page | $0.0303 | $0.0303 | $0.0303 | $0.0303 |

Platinum and Diamond pay the Gold price. Apify platform usage: billed separately by Apify.

## Call it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/cheapapi~backlink-checker/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"domains":["apify.com"],"report":"overview","maxResults":100}'
```

## Example output row

```json
{
  "id": "3e789dfb3468632a76638996",
  "target": "example.com",
  "report": "backlinks",
  "sourceUrl": "https://www.textilwerbung-edenfeld.de/index.html",
  "sourceDomain": "www.textilwerbung-edenfeld.de",
  "targetUrl": "https://example.com/",
  "anchorText": "Gütsel Webcube CMS",
  "isDofollow": true,
  "linkType": "anchor",
  "linkScore": 70,
  "sourcePageScore": 81,
  "sourceDomainScore": 65,
  "linkSpamScore": 0,
  "isNew": false,
  "isLost": false,
  "isBroken": false,
  "firstSeen": "2024-02-12T03:09:59.000Z",
  "previousSeen": "2025-09-06T14:31:21.000Z",
  "lastSeen": "2025-11-16T18:51:04.000Z",
  "sourcePageTitle": "Textilwerbung Edenfeld Ostwestfalen Lippe (OWL), Kreis Gütersloh",
  "sourceCountry": "DE",
  "sourceTld": "de",
  "sourcePageStatusCode": 200,
  "textBefore": "2023 Textilwerbung Edenfeld,",
  "linksOnPage": 1,
  "similarLinks": 62,
  "targetStatusCode": 301,
  "isIndirect": true,
  "indirectPath": [
    {
      "type": "redirect",
      "statusCode": 302,
      "url": "https://www.guetsel.de/"
    }
  ],
  "sourceRankingKeywordsTop100": 5,
  "scoreScale": 100,
  "scrapedAt": "2026-09-29T05:08:24.620Z"
}
```

## Fields

One row per natural entity (domain, backlink, referring domain, anchor, page, period…). The most important fields:

| Field | Type | Example | Reports |
|---|---|---|---|
| `id` | string | `"3e789dfb3468632a76638996"` | all (stable across runs, see Monitoring) |
| `target` | string | `"example.com"` | all except link gap |
| `report` | string | `"backlinks"` | all |
| `authorityScore` | number | `51` | overview, lists, bulk |
| `backlinks` | number | `332721` | overview, lists, bulk |
| `referringDomains` | number | `2940` | overview, lists, bulk |
| `referringMainDomains` | number | `2791` | overview, lists, bulk |
| `referringPages` / `referringIps` / `referringSubnets` | number | `329215` / `2307` / `1403` | overview, lists, bulk |
| `linkSpamScore` | number | `15` | overview, lists, bulk |
| `siteSpamScore` | number | `0` | overview, bulk |
| `brokenBacklinks` / `brokenPages` | number | `1130` / `130` | overview, lists, bulk |
| `firstSeen` / `lostDate` | string (ISO date) | `"2019-01-15T23:54:14.000Z"` | overview, lists, bulk |
| `linkTypes` / `linkAttributes` / `linkingCountries` / `linkingTlds` | object | `{"anchor": 64150, "image": 237276}` | overview, aggregated lists |
| `sourceUrl` / `sourceDomain` | string | `"https://www.textilwerbung-edenfeld.de/index.html"` | backlinks, page link gap |
| `targetUrl` | string | `"https://example.com/"` | backlinks |
| `anchorText` | string | `"Gütsel Webcube CMS"` | backlinks, anchors |
| `isDofollow` | boolean | `true` | backlinks |
| `linkType` | string | `"anchor"` | backlinks |
| `sourceDomainScore` / `sourcePageScore` | number | `65` / `81` | backlinks |
| `isNew` / `isLost` / `isBroken` | boolean | `false` | backlinks |
| `lastSeen` | string (ISO date) | `"2025-11-16T18:51:04.000Z"` | backlinks |
| `textBefore` / `textAfter` | string | `"2023 Textilwerbung Edenfeld,"` | backlinks |
| `referringDomain` | string | `"github.com"` | referring domains |
| `pageUrl` / `pageTitle` / `wordCount` | string / string / number | `"https://example.com/blog"` | top pages |
| `competitorDomain` / `sharedReferringDomains` | string / number | `"rival.com"` / `412` | competitors |
| `date` / `newBacklinks` / `lostBacklinks` | string / number / number | `"2026-08-01"` / `1520` / `980` | new & lost, growth |
| `linkingDomain` / `linksTo` / `missingFrom` | string / array / array | `"blog.io"` / `["rival.com"]` / `["you.com"]` | link gap |
| `scoreScale` | number | `100` | all with scores |
| `scrapedAt` | string (ISO date) | `"2026-09-28T09:00:00.000Z"` | all |

Every field is declared with its type in the dataset schema. The backlinks list adds 25+ more fields (`linkScore`, `previousSeen`, `sourcePageTitle`, `sourceCountry`, `sourceTld`, `sourceIp`, `linkPosition`, `imageUrl`, `imageAlt`, `isIndirect`, `indirectPath`, `targetStatusCode`, `sourceRankingKeywordsTop10`…). The dataset has three ready table views: **Profile overview**, **Backlinks** and **Bulk domain metrics**.

## Compared with alternatives

Typical runs: **1,000 backlinks of one domain**, **authority metrics for 1,000 domains**, and a **domain overview of 1 domain**. Prices are shown as **Free plan / Gold plan** (this Actor costs the same on every plan). Prices are the listed pay per event fees. This Actor also bills Apify platform usage separately (at the default 256 MB a small run typically uses about $0.001 to $0.005), shown as "+ usage" in our row.

| Alternative | 1,000 backlinks of one domain (Free / Gold) | Metrics for 1,000 domains (Free / Gold) | Domain overview, 1 domain (Free / Gold) | Backlinks per domain | Link gap report | Keyword & traffic data | Free plan |
|---|---|---|---|---|---|---|---|
| Most used all in one SEO scraper, Ahrefs style data (~2,100 users) | not possible (a top backlinks list inside one result per domain) | not on Free / $4.00 ($0.004 per domain on Gold, + $0.00005 start) | not on Free / **$0.004** | top backlinks only | ✗ | ✓ | ✗ (its listing says it does not run on the Apify Free plan) |
| Ahrefs style SEO scraper (~2,000 users) | not possible (up to 100 top backlinks per domain, returned as one result: $0.01 / $0.005 + $0.001 start per GB of memory) | not on Free (1 domain per run) / $5.00 (+ start fee) | **$0.011 / $0.006** (incl. start fee) | up to 100 | ✗ | ✓ | ✓ limited, as listed (10 runs per 30 days, 1 domain per run, up to 3 data types) |
| Semrush style SEO scraper (~1,700 users) | not possible (backlink data returned as one result per domain) | not on Free (1 URL per run) / $17.50 ($0.0175 per result on Gold, + $0.01 start per GB; announced from 11 Oct 2026: $0.025 Free, $0.001 start) | $0.0375 / **$0.0275** (incl. $0.01 start) | one result per domain | ✗ | ✓ | ✓ limited, as listed (5 runs per 30 days, 1 URL per run) |
| Most used Actor named "Backlink Checker" (~530 users) | not possible (a few hundred links per domain) | $10.00 / $10.00 ($0.01 per domain; $25.00 from 9 Oct 2026 with the announced $0.015 per domain fee) | link list only (no overview) | a few hundred | ✗ | ✗ | ✓ as listed |
| Per backlink checker (~175 users) | $3.03 / $2.424 ($0.03 / $0.024 per run + $0.003 / $0.0024 per link) | $4.50 / $3.60 (max. 20 domains per run: 50 runs + 1,000 summary rows) | link list only (no overview) | up to 1,000 | ✗ | ✗ | ✓ as listed |
| Bulk domain rating checker (~46 users) | not possible (rating only, no links) | **$0.50 / $0.375** ($0.0005 / $0.000375 per domain) | rating only: $0.0005 / $0.000375 | none | ✗ | ✗ | ✓ as listed |
| **This Actor** | **$1.535 / $1.535** + usage | **$1.235 / $1.235** + usage | $0.035 / $0.035 + usage (34 fields) | **up to 50,000** | **✓** | ✗ | ✓ (up to $0.25 of results per month) |

Prices from public Apify Store listings (Platinum and Diamond prices equal Gold for all rows), checked September 2026. Free plan limits are as shown on each listing. Where we are **not** cheaper:

- **Domain overview of a single domain:** our overview costs $0.035 per domain on every plan. The two Ahrefs style scrapers return a domain summary for about $0.011 on Free (where available) and $0.004 to $0.006 on Gold, and the Semrush style scraper for $0.0275 on Gold, so for plain overviews they are cheaper. Our overview adds 34 fields with breakdowns by link type, attribute, TLD, country and platform; for authority and link counts of many domains, our bulk metrics cost $0.0012 per domain.
- **Only a domain rating for many domains?** The bulk domain rating checker costs $0.50 / $0.375 per 1,000 domains, less than our $1.235. Our bulk metrics add backlinks, referring domains, spam score and more per domain.
- **Only a top-100 backlink sample for a few domains?** The Ahrefs style scraper returns up to 100 links as one result for $0.01 / $0.005 plus its start fee, vs. $0.185 here for 100 links. The all in one scrapers also cover keywords and traffic.
- **Very small link lists on a high Apify plan:** our $0.035 report fee is a little above the per backlink checker's $0.03 / $0.024 per run fee, but each link costs $0.0015 here instead of $0.003 / $0.0024, so we are cheaper from 4 links (Free plan) or 13 links (Gold plan) upwards.

This Actor is cheaper as soon as you need full lists, referring domains, link gap, history or rich metrics for many domains, and you get filters, grouping and a hard budget cap on top.

## Not included

- **Keyword rankings and organic traffic estimates**, use our [Domain SEO Analyzer](https://cheapapilabs.com/actors/domain-seo-analyzer/) (ranked keywords, traffic, SEO competitors for any domain).
- **Keyword research (search volume, difficulty, ideas)**, use our [Keyword Research Tool](https://cheapapilabs.com/actors/keyword-research-tool/).
- **Live Google results / rank checks for a keyword**, use our [Google SERP Scraper](https://cheapapilabs.com/actors/google-serp-scraper/).
- **Visibility in AI answers (ChatGPT, Gemini, AI Overviews…)**, use our [AI Search Visibility Tracker](https://cheapapilabs.com/actors/ai-search-visibility-tracker/).
- **On page / technical site audits** (broken pages, meta tags, speed), use our [SEO Site Audit](https://cheapapilabs.com/actors/seo-site-audit/).
- **Page level top pages, competitors or domain link gap**, these three reports work on whole domains only; page URLs given to them are converted to their domain automatically (use the backlinks, referring domains, anchors or page link gap reports for a single page).
- **Moz DA or other tools' own scores**, authority and spam scores here come from our own link index and are not comparable one to one with other tools' numbers.

## Limits

- No link index covers the whole web; counts differ from other SEO tools and are best compared within this Actor.
- History reports start on 2019-01-30.
- Link gap reports compare 2 to 20 domains at a time; excluded domains are limited to 10.
- Custom filters accept at most 8 conditions per report (simple filters count toward the limit); custom sort accepts 3 rules.
- Top pages, competitors and link gap by domain work on whole domains; page URLs are converted to their domain (with a warning).
- Up to 50,000 rows per domain and report per run; use "Skip first rows" to continue.

## FAQ

**Is there a limit on the Apify Free plan?**
Yes: up to $0.25 of this Actor's results per calendar month, enough to try it. Apify pays developers nothing for Free plan usage while our data costs are real, so this keeps the Actor sustainable. Runs that reach the allowance stop cleanly and keep everything collected so far; the allowance resets on the 1st of the month. Any paid Apify plan has no limit.

**Is it legal to use this Actor?**
Yes. It returns public link data about websites (which pages link to which pages) from our own continuously crawled link index. You are responsible for how you use the results, e.g. in outreach campaigns.

**Is Apify platform usage included?**
No. Apify platform usage (compute) is billed separately by Apify, on top of the event fees. At the default 256 MB memory a small run typically uses about $0.001 to $0.005; large bulk runs use more. You can see each run's usage in Apify Console.

**How fresh is the data?**
The link index is recrawled continuously. `lastSeen` shows when each link was last confirmed, `isNew` flags links from the most recent crawl and `lostDate` shows when a link disappeared.

**Why did I get fewer results than expected?**
Your filters (link status, dofollow only, min. authority, max. spam score, countries) may exclude links, "Max rows per domain" may be lower than the available rows, grouping (one link per domain) reduces rows, or your maximum cost per run was reached (see `stoppedByBudget` in `RUN_SUMMARY`). Very new or small sites may have few or no known links.

**What is the authority score?**
A 0 to 100 score (or 0 to 1,000 with the finer scale) based on the number and strength of links pointing to a page or domain. Scores are comparable with each other, not with other tools' numbers.

**What happens if my custom filter has a typo?**
The run stops immediately with a message such as `"Custom link filters" is not valid JSON near character 23` or `Unknown operator "=>"`, before any data is fetched, so nothing is charged.

**What is the difference between link spam score and site spam score?**
Link spam score rates how spammy the incoming links are; site spam score rates the site itself.

**How do I control my budget?**
Set "Max rows per domain" and the run option "Maximum cost per run". The Actor plans each domain within the remaining budget (report fee, rows and a possible extra page fee) and never exceeds it.

**Why was I charged $0.035 for a domain with no results?**
The report is charged per report requested, even if nothing is found: looking up a domain in the link index costs the same whether it has links or not. Check the domain spelling and your filters before large runs; `targetsWithoutData` in `RUN_SUMMARY` lists how many domains returned nothing.

**Why was I charged for a request that timed out?**
A request that was sent but got no answer is never resent and is charged like an empty report (or page), because the data service may already have processed it. Rerun the domain later.

**Why was I charged a $0.0303 extra page fee?**
Your report asked for more than 1,000 rows, so a second (or later) page was fetched, and it brought fewer than 21 rows. Each page is a separate paid lookup that the row price alone can't cover below 21 rows. Choose Max rows of 1,000 or a multiple of 1,000 plus at least 21 to avoid it.

**How many domains can I check?**
Up to 10,000 per run. For many domains use **Bulk metrics** ($1.20 per 1,000 domains) instead of one overview per domain.

**Can I monitor backlinks over time?**
Yes. Schedule the **New & lost backlinks** report (or bulk metrics with "new & lost since"), or schedule a backlinks run with "New links only" and deduplicate by the stable `id` field, see Monitoring.

**Which export formats are supported?**
JSON, CSV, Excel, XML, HTML table and RSS from the Output tab or the dataset API.
