This route returns DR. For a tracked site, call /lookup/:domain for TrueDR, trust, and traffic checks.
Subdomains and URLs resolve to the registrable domain: blog.example.com/post returns example.com.
Results are cached per domain, but every call still spends one quota unit.
GET/site-check/:domain
Check whether a site is real
Returns the stored fraud verdict for a submitted site. It combines a homepage render check, domain age, organic-keyword footprint, and backlink spam signals into real, suspicious, shell, or unreachable, with the reasons spelled out. Built for vetting link targets and exchange candidates before trading anything.
This route reads saved reports for listed sites. It returns 404 for a new domain. Create a report through POST /sites with siteCheck: true.
The verdict is plain rules over the returned signals, so you can audit every decision from the reasons array.
A shell verdict means the homepage renders no meaningful content without JavaScript.
Provider signals are nullable: a missing signal weakens evidence but never fails the request.
Every call spends one quota unit.
GET/lookup/:domain
Look up a site's scores
Returns DR, TrueDR, trust score, confidence, traffic validation, backlink evidence, changes, and public links for any approved site. The private per-signal trust breakdown is intentionally excluded.
Same call in the CLIvdr authority:lookup example.com
Find approved sites ranked by TrueDR and DR. Filter with category, minTrueDr, minDr, trafficValidated, includeUnverified, and limit (maximum 50). Add exchangesFor for site-specific exchange matches.
Same call in the CLIvdr discover:find --category ai --min-truedr 50
Returns verified websites open to one relevant editorial link each. Every account can browse matches. Monthly limits start when you propose an exchange.
Previews or sends a one-link-each proposal through VerifiedDR without exposing the other owner's email. The source site must belong to the API-key owner.
Same call in the CLIvdr exchanges example.com --contact match-example --dry-run
{
"exchange": {
"dryRun": true,
"sent": false,
"to": { "domain": "match.example", "slug": "match-example" },
"subject": "Link exchange between example.com and match.example",
"message": "Proposal: I add a relevant editorial link to your site, and you add one to mine...",
"quota": { "used": 1, "limit": 20, "plan": "Pro" }
}
}
A dry run can generate the standard proposal when subject and message are omitted. It never sends email.
The owner approves the target, subject, and message before the send.
A spent contact allowance returns 402 with upgradeUrl, requiredPlan, and blockedFeature.
Build your next trusted connection
Find websites that share your topic and serve your readers. Check the evidence, choose a partner and track what changes.