Every report on this site is available as JSON over a single endpoint. No key, no sign-up, CORS enabled (Access-Control-Allow-Origin: *).
Per-domain reports are served from a pre-aggregated distillate (millisecond lookups); deep pagination and heavy filters fall back to the raw link store.
Base URL: https://backlinks.semalt.com/api.php · Data: Common Crawl backlink index · 13 crawls (2025–2026-08) · 798,560,911,485 backlinks · 181,132,097 domains.
Every response is JSON with an ok boolean. List endpoints add rows, total, page, per. Errors: {"ok":false,"error":"…"}.
{ "ok": true, "domain": "moz.com", "summary": { "backlinks": 5681074, "ref_domains": 81774, "dr": 67, ... } }
| action | params | returns |
|---|---|---|
| overview | q | full dashboard: summary (backlinks, ref_domains, dofollow, DR, dates), top-5 referring domains / anchors / pages, DR & TLD distributions |
| domain | q | compact metrics for one domain (DR, backlinks, ref_domains, dofollow) — ideal for programmatic lookups |
| refdomains | q, sort, order, page, per, follow, min_dr, max_dr, min_links, tld, domain, from, to | referring domains with links, dofollow, donor DR, first/last seen |
| backlinks | q, group=domain|page, sort, order, page, per, follow, rel, ltype, atype, oneper, anchor, src, target, tld, min_dr, from, to | individual backlinks (or grouped by referring domain / page) |
| anchors | q, sort, order, page, per, anchor, follow, min_links, min_refdomains | anchor text distribution with counts, ref-domains, dofollow, share % |
| anchor_cloud | q, per | top anchors with share % (fast, distillate) |
| toppages | q, sort, order, page, per, url, follow, min_backlinks, min_refdomains | most-linked target pages with backlinks, ref-domains, dofollow |
| dr_distribution | q | referring-domain count per DR bucket (0-14 … 70-100) |
| tld_breakdown | q | referring domains grouped by TLD |
| action | params | returns |
|---|---|---|
| bulk_dr (alias: authority) | domains — up to 2000, comma/space/newline separated (GET ?domains= or POST body) | DR + backlinks + ref_domains for every domain in one call (missing domains returned with zeros) |
| compare | q — up to 20 domains, comma separated | side-by-side DR, backlinks, ref_domains, dofollow |
| intersect | q — 2 to 10 domains, comma separated | referring domains shared by ≥2 targets (link intersect), ranked by overlap & links |
# Bulk DR — POST a list (best for scoring thousands of domains) curl -s 'https://backlinks.semalt.com/api.php?action=bulk_dr' --data-binary $'github.com\nmoz.com\nnytimes.com' # Bulk DR — GET curl -s 'https://backlinks.semalt.com/api.php?action=bulk_dr&domains=github.com,moz.com,ahrefs.com' # Link intersect — who links to all three curl -s 'https://backlinks.semalt.com/api.php?action=intersect&q=moz.com,ahrefs.com,semrush.com'
| action | params | returns |
|---|---|---|
| search | q (query), field=anchor|title|url, follow, ltype, tld, domain, sort, page, per | full-text search across all backlinks (Elasticsearch) |
| top | metric=pr_val|in_degree|harmonic_val|out_degree, page, per, order | global domain ranking on the web graph |
| suggest | q | domain autocomplete |
| stats | — | dataset totals |
round(100·log(ref_domains+1)/log(2·10⁷)).page (1-based) & per (10–5000). Sorting: sort + order=asc|desc.www. stripped) before lookup.