How it worksTrendingPricingSign in
Home › API
API

The same data, without the page.

Everything a comparison page shows — referring domains, the gap, LR, page types — over JSON. Included with Unlimited. One key, cursor pagination, the same freshness as the site.

Start Unlimited — $49/monthSee the endpoints
The JSON response for a gap request: both hosts, the gap count, and the first rows with LR, type and how to get in
How it works

Three calls cover what most people build.

1

Get a key

Settings → API in your account. One key per account on Unlimited, per workspace on Agency; rotate any time. Send it as a Bearer token.

2

Ask for a gap

GET /v1/gap?a=you.com&b=them.com returns the verdict, the three counts, and every gap row with score, type and "how to get in".

3

Page through it

Every list is paginated (100 rows, ?page=). Each row carries checked_at — the same timestamp the page shows, so you know how fresh it is.

Endpoints

v1, read-only, JSON.

GET/v1/gap?a={host}&b={host}The comparison. Verdict, referring domains for both, shared, only-them, gap rows ranked by score.
GET/v1/domains/{host}/backlinksReferring pages for a host: source URL, anchor, rel, first seen, last seen, status, checked_at.
GET/v1/domains/{host}Host summary: LR, referring domain count, status (live, parked, nxdomain), last crawled.
GET/v1/comparisonsYour unlocked pairs and tracked competitors, with the latest run for each.
POST/v1/crawlsAsk for a priority crawl of a host you can't find yet. Counts against your daily crawl requests.
Example

One request, the whole verdict.

Rows are the same objects the public page renders. Locked fields on the site — contacts, pitch templates — are included for pairs your plan covers.

  • 1,000requests per hour per key; 429 with a Retry-After header beyond that
  • 24hgap cache, same as the site; add force=1 once a day to recompute
  • 100rows per page, ?page= to walk them
Request · curlResponse · 200v1
curl "https://theylink.app/api/v1/gap?you=yourdomain.com \ &them=competitor.com&page=1" \ -H "Authorization: Bearer lk_theylink_…"
{ "slug": "yourdomain.com-vs-competitor.com", "you": "yourdomain.com", "them": "competitor.com", "gap": 0, "page": 1, "page_size": 100, "lr_version": 1, "checked_at": "", "rows": [ { "url": "https://", "host": "", "lr": 0, "type": "listicle", "rel": "follow", "how_to_get_in": "…", "checked_at": "…" }, ] }
checked at every run · 100 rows per page · ?page=
Rules

What the key can and can't do.

Reselling the data

You can build internal tools, client reports and dashboards. You can't republish the index as a competing dataset or sell contact emails. See the terms.

Editor contacts

Contacts come with the same limits as the site: only for pairs you've unlocked, capped per comparison, and every opt-out is honored on the API within 48 hours.

Freshness

Numbers are only as fresh as their checked_at. Never show a count from the API without it — that's the whole point of the index.

Naming the metric

It's LR, Linkos Rank, 0–100. If you show it, call it LR. It is not Domain Rating and not Domain Authority.

Unlimited includes the API. Start there.

$49 a month, cancel any time. Agencies: seats, client workspaces and higher limits are coming — get early access.

Start Unlimited — $49/month