PBN.LTD API docs
View as Markdown

SEO metrics and backlinks

The SEO figures measured for each site, and the backlink tracker with its bulk link editor.

SEO metrics history of a site

GET/api/v1/sites/{site_id}/seo-metrics

Scope sites:read

The same figures as the site's SEO metrics charts tab: Trust Flow, Citation Flow, backlinks and referring domains at every reading, with the change since the reading before. latest is null until the first reading.

Parameters

NameInTypeRequiredDescription
site_idpathintegeryesThe site id (see GET /sites).
limitqueryintegernoHow many readings, newest first. Default: 90.

Example

curl -s "https://app.pbn.ltd/api/v1/sites/123/seo-metrics" \
  -H "Authorization: Bearer $PBN_API_KEY"
import os
import requests

headers = {"Authorization": "Bearer " + os.environ["PBN_API_KEY"]}
r = requests.get("https://app.pbn.ltd/api/v1/sites/123/seo-metrics", headers=headers, timeout=120)
print(r.status_code, r.json())
const res = await fetch("https://app.pbn.ltd/api/v1/sites/123/seo-metrics", {
  method: "GET",
  headers: {Authorization: `Bearer ${process.env.PBN_API_KEY}`}
});
console.log(res.status, await res.json());

Response

200

{
  "data": {
    "site_id": 123,
    "latest": {
      "measured_at": "2026-09-20T03:10:00Z",
      "trust_flow": 21,
      "citation_flow": 30,
      "backlinks": 1840,
      "referring_domains": 212,
      "trust_flow_change": 1,
      "citation_flow_change": 0,
      "backlinks_change": 35,
      "referring_domains_change": 4
    },
    "history": [
      {
        "measured_at": "2026-09-20T03:10:00Z",
        "trust_flow": 21,
        "citation_flow": 30,
        "backlinks": 1840,
        "referring_domains": 212,
        "trust_flow_change": 1,
        "citation_flow_change": 0,
        "backlinks_change": 35,
        "referring_domains_change": 4
      }
    ]
  }
}

Errors: not_found, rate_limited, scope_missing, unauthorized