API docs
Last updated 14 October 2026
Overview
The AnyBacklink API checks live web pages for links. It is free to use with an AnyBacklink account, and it is what the AnyBacklink Zapier integration uses.
Base address: https://anybacklink.com/api/v1. Every request is a GET and every answer is JSON. Pages are read as raw HTML, so links added later by JavaScript are not seen.
Authentication
Make a key on your API key page and send it with every request:
Authorization: Bearer abl_your_key_here
You can also send it as X-API-Key: abl_your_key_here. To test a key, call GET /api/v1/me, which returns the email address on the account.
Check a backlink
GET /api/v1/check?page=PAGE&site=SITE checks whether one page links to a site, and whether that link is dofollow.
curl -H "Authorization: Bearer abl_..." \ "https://anybacklink.com/api/v1/check?page=example.com/post&site=mysite.com"
{
"page": "https://example.com/post",
"original_url": "example.com/post",
"final_url": "https://example.com/post",
"site": "mysite.com",
"fetch_status": "ok",
"link_status": "found",
"result": "dofollow",
"is_live": true,
"is_dofollow": true,
"changed": true,
"change": "nofollow to dofollow",
"previous_result": "nofollow",
"previous_checked_at": "2026-10-07T21:00:00.000Z",
"first_check": false,
"rel": "",
"where": "main content",
"anchor_text": "my site",
"links_to": "https://mysite.com/",
"links_to_site_on_page": 1,
"link_hidden": false,
"page_noindex": false,
"robots_blocked": false,
"canonical_elsewhere": null,
"redirected_to": null,
"page_title": "Example post",
"error": null,
"checked_at": "2026-10-14T21:00:00.000Z"
}result is one of dofollow, nofollow, sponsored, ugc, missing, page_deleted or could_not_check. Could not check means the page could not be read, often because the site blocks checkers. It does not mean the link is missing.
Whether the page could be read and whether the link was there are reported separately, so a timeout is never mistaken for a removed link:
fetch_status:ok,page_deleted(404 or 410) orfailed(timeout, blocked or unreachable).link_status:found,absentorunknown(the page could not be read, so nothing is known).rel: the link's rel attribute exactly as the page has it, such asnofollow noopener. Empty when the link has none, null when no link was found.original_urlis the page as you sent it andfinal_urlis the page that was read after any redirects.
Change tracking. The last confirmed result for each page and site is kept for your account and only updated after the page was read successfully, so a failed check stays unknown and never counts as a change. changed is true only when a successful check differs from the last successful one, with change describing it, such as dofollow to nofollow. previous_result and previous_checked_at show the last confirmed result, and first_check is true the first time a page and site are checked. To alert only on real changes, filter on changed = true.
List links on a page
GET /api/v1/links?page=PAGE lists the links on one page, each marked dofollow, nofollow, sponsored or UGC, with where it sits. Outbound links only, unless you add &include_internal=true. Up to 300 links are returned.
{
"page": "https://example.com/post",
"result": "ok",
"total_links": 42,
"internal_links": 30,
"dofollow": 8, "nofollow": 3, "sponsored": 1, "ugc": 0,
"links": [
{ "url": "https://mysite.com/", "type": "dofollow", "where": "content",
"anchor_text": "my site", "hidden": false }
],
"links_not_listed": 0,
"error": null,
"checked_at": "2026-10-13T21:00:00.000Z"
}Limits
Each account can check 20 pages an hour, the same as the free checkers on the website. Over that, checks return could_not_check with an explanation until the hour is up.
Errors
401: the API key is missing, wrong or switched off. 400: a required parameter is missing. Both return { "error": "..." }. Questions: hello@anybacklink.com.
