Read your VerifiedDR data from your own tools
Fetch the websites you own, their current Domain Rating, organic traffic, verification status, and latest backlink report totals. Anyone can read these docs; only Agency/API users can create API keys.
Authentication
Every request needs an API key passed as a bearer token. Keys are scoped to your account and only work while your Pro subscription is active or trialing — lapsed subscribers keep their key but lose access until they resubscribe.
Authorization: Bearer vdr_your_api_keyAccount scoped
The API only returns websites owned by the API key owner — never other users' data, even for publicly listed sites.
JSON everywhere
All endpoints return JSON with standard HTTP status codes. Errors use an `error` envelope.
Rate limits
Requests are limited to 60 requests per minute in a sliding window, counted per API key rather than per IP — so server-to-server callers behind one NAT don't starve each other. Over the limit, the API responds with 429 and a Retry-After header in seconds.
{
"success": false,
"error": "Too many requests",
"message": "Rate limit exceeded. Please try again later.",
"retryAfter": 42000
}/api/v1/sitesList your sites
Returns every website attached to your account with current metrics. Backlink and referring-domain totals come from each site's latest ready SEO report and are null until one exists.
slugstring- Stable site identifier.
urlstring- Full site URL.
drnumber | null- Current Domain Rating (0–100).
trueDrnumber | null- Trust-adjusted authority score (0–100), or null until computed.
drWeeklyChangenumber | null- DR delta over the last 7 days.
drMonthlyChangenumber | null- DR delta over the last 30 days.
trueDrWeeklyChangenumber | null- True Domain Rating delta over the last 7 days.
trueDrMonthlyChangenumber | null- True Domain Rating delta over the last 30 days.
globalRanknumber | null- Global Ahrefs rank.
organicTrafficnumber | null- Estimated monthly organic visits.
trafficChangenumber | null- Traffic delta vs. the previous month, in percent.
verifiedboolean- Whether ownership is verified on VerifiedDR.
referringDomainsnumber | null- Referring domains from the latest ready SEO report.
backlinksnumber | null- Backlinks from the latest ready SEO report.
curl https://verifieddr.com/api/v1/sites \
-H "Authorization: Bearer vdr_your_api_key"{
"sites": [
{
"slug": "verifieddr-com",
"url": "https://verifieddr.com",
"dr": 42,
"trueDr": 37,
"drWeeklyChange": 1,
"drMonthlyChange": 4,
"trueDrWeeklyChange": 2,
"trueDrMonthlyChange": 5,
"globalRank": 120000,
"organicTraffic": 8600,
"trafficChange": 12,
"verified": true,
"referringDomains": 120,
"backlinks": 540
}
]
}/api/v1/sitesSubmit a site
Creates a new website under the API key owner and starts DR, traffic, metadata, and True Domain Rating enrichment in the background. If the website is already listed, the API returns the existing listing with created: false.
urlstring- Website URL or bare domain, for example verifieddr.com.
tagsstring[]- One to three category values, for example seo or directories. Labels like Customer Support are accepted too. List all valid values with GET /api/v1/categories. Unknown values are rejected with a 400 naming them.
titlestring | optional- Display name. Defaults to the hostname when omitted.
descriptionstring | optional- Short description, up to 240 characters.
xHandlestring | optional- Founder X handle, with or without @.
curl https://verifieddr.com/api/v1/sites \
-X POST \
-H "Authorization: Bearer vdr_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "verifieddr.com",
"title": "VerifiedDR",
"tags": ["seo", "directories"],
"xHandle": "verifieddr"
}'{
"site": {
"slug": "verifieddr-com",
"url": "https://verifieddr.com",
"dr": null,
"trueDr": null,
"drWeeklyChange": null,
"drMonthlyChange": null,
"trueDrWeeklyChange": null,
"trueDrMonthlyChange": null,
"globalRank": null,
"organicTraffic": null,
"trafficChange": null,
"verified": false,
"referringDomains": null,
"backlinks": null
},
"created": true
}/api/v1/sites/:slugGet one site
Returns a single owned site plus its full DR and monthly traffic history. The :slug parameter accepts either the site slug (verifieddr-com) or the bare domain (verifieddr.com).
siteobject- Same shape as a sites[] entry above.
drHistory[].datestring- Day the DR was recorded, as YYYY-MM-DD.
drHistory[].drnumber- Domain Rating on that day.
drHistory[].trueDrnumber | null- True Domain Rating recorded on that day, or null for older records.
drHistory[].globalRanknumber | null- Global rank on that day, when known.
trafficHistory[].datestring- Month of the estimate, as YYYY-MM.
trafficHistory[].trafficnumber- Estimated organic visits that month.
curl https://verifieddr.com/api/v1/sites/verifieddr.com \
-H "Authorization: Bearer vdr_your_api_key"{
"site": {
"slug": "verifieddr-com",
"url": "https://verifieddr.com",
"dr": 42,
"trueDr": 37,
"drWeeklyChange": 1,
"drMonthlyChange": 4,
"trueDrWeeklyChange": 2,
"trueDrMonthlyChange": 5,
"globalRank": 120000,
"organicTraffic": 8600,
"trafficChange": 12,
"verified": true,
"referringDomains": 120,
"backlinks": 540
},
"drHistory": [
{ "date": "2026-06-09", "dr": 41, "trueDr": 36, "globalRank": 121500 },
{ "date": "2026-06-10", "dr": 42, "trueDr": 37, "globalRank": 120000 }
],
"trafficHistory": [
{ "date": "2026-05", "traffic": 7700 },
{ "date": "2026-06", "traffic": 8600 }
]
}/api/v1/categoriesList categories
Returns every category accepted in the tags field when submitting or updating a site. Public — no API key required.
categories[].valuestring- The value to send in tags, for example customer-support.
categories[].labelstring- Display label, for example Customer Support. Also accepted in tags.
maxPerSitenumber- Maximum number of categories per site.
curl https://verifieddr.com/api/v1/categories{
"categories": [
{ "value": "ai", "label": "AI" },
{ "value": "marketing", "label": "Marketing" },
{ "value": "seo", "label": "SEO" }
],
"maxPerSite": 3
}Errors
Failed requests return a JSON body with an error message explaining what went wrong.
| Status | Meaning |
|---|---|
401 | Missing or invalid API key. Pass it as Authorization: Bearer vdr_… |
403 | API access requires an active Agency/API subscription. |
404 | The site is not in your account. |
429 | Rate limit exceeded — retry after the Retry-After header. |
{ "error": "Site not found among your sites." }