Is this company website real? Know in seconds
Give a domain, URL or email, optionally with the company you expect. Bonafido checks DNS, domain age, mail setup, the live homepage, parked or for-sale pages, contact details, the company-name match, Wikidata and look-alike domains, then gives a verdict, a 0-100 trust score and evidence you can quote.



Who it's for
Anyone who needs this answer fast, from a person to an AI agent.
Sanity-check a new vendor or payee domain before paying an invoice.
Spot parked, brand-new or look-alike domains at sign-up.
Answer "is this the real company site?" with a verdict and quotable evidence.
Drop dead or parked domains from a lead list before outreach.
Try it
One domain with the expected company name, or up to 5 domains.
Raw JSON response
Real sample output
Captured from a live call to this API (trimmed for length).
{
"results": [
{
"input": {
"domain": "stripe.com",
"companyName": "Stripe"
},
"domain": "stripe.com",
"registrableDomain": "stripe.com",
"companyName": "Stripe",
"country": null,
"verdict": "verified",
"trustScore": 81,
"summary": "stripe.com: verified (trust 81/100) - official website of Stripe per Wikidata, domain 31 years old, email on Google Workspace, contact page found. No risk flags.",
"riskFlags": [],
"riskDetails": [],
"evidence": [
{
"source": "dns",
"text": "MX: Google Workspace; SPF softfail; DMARC p=reject."
},
{
"source": "rdap",
"text": "Registered 1995-09-12 via SafeNames Ltd. (31 years ago)."
},
{
"source": "homepage",
"text": "HTTP 200 at https://stripe.com/, title \"Stripe | Financial Infrastructure to Grow Your Revenue\"."
},
{
"source": "website",
"text": "Found contact page on 2 page(s)."
},
{
"source": "website",
"text": "Links to company profiles on github, x, youtube, linkedin, facebook, crunchbase, instagram."
},
{
"source": "schema.org",
"text": "Organization markup names \"Stripe\"."
},
{
"source": "wikidata",
"text": "Q7624104 \"Stripe\" (Irish-American payment technology company) lists stripe.com as its official website."
},
{
"source": "name-match",
"text": "Company name vs. domain label 1.00, vs. homepage brand text 1.00."
}
],
"resolves": true,
"reachable": true,
"httpStatus": 200,
"finalUrl": "https://stripe.com/",
"redirectsToOtherDomain": false,
"redirectTarget": null,
"pageType": "normal",
"siteName": "Stripe",
"domainAgeDays": 11336,
"registeredAt": "1995-09-12T04:00:00Z",
"registrar": "SafeNames Ltd.",
"tlsValid": null,
"tlsDaysLeft": null,
"tlsIssuer": null,
"mx": true,
"mxProvider": "Google Workspace",
"spf": true,
"dmarcPolicy": "reject",
"contact": {
"contactPage": true,
"contactPageUrl": "https://stripe.com/contact/sales",
"contactForm": false,
"emailFound": false,
"emails": [],
"phoneFound": false,
"phones": [],
"addressFound": false,
"address": null
},
"socials": {
"github": "https://github.com/stripe",
"x": "https://twitter.com/stripe",
"youtube": "https://youtube.com/@stripe",
"linkedin": "https://www.linkedin.com/company/stripe",
"facebook": "https://www.facebook.com/StripeHQ",
"crunchbase": "https://www.crunchbase.com/organization/stripe",
"instagram": "https://www.instagram.com/stripehq"
},
"nameMatch": {
"checked": true,
"score": 1,
"level": "strong",
"officialDomains": [
"stripe.com"
],
"matchesOfficial": true,
"wikidata": {
"id": "Q7624104",
"label": "Stripe",
"description": "Irish-American payment technology company",
"url": "https://www.wikidata.org/wiki/Q7624104"
}
},
"lookalike": {
"suspected": false,
"of": null,
"reason": null
},
"errors": [],
"checkedAt": "2026-09-25T23:03:27.862Z",
"ms": 588
}
],
"count": 1,
"verdicts": {
"verified": 1
}
}Limits, plainly
Free and rate limited so it stays fast for everyone. A bulk and scheduled version for big lists is coming to the Apify Store.
- 10 calls per minute per IP address.
- Up to 5 domains per call.
- One contact page is read per domain (none when you send more than 3).
- About 15 seconds per call at most.
- Free, no key. Information only, not a guarantee or legal advice.
Use the API
JSON over HTTPS, CORS enabled, no key. GET for quick calls, POST a JSON body for lists. Spec: openapi.json · llms.txt
curl -s "https://bonafido.cybermax-tools.workers.dev/api/verify?domain=stripe.com&company=Stripe"
# lists: POST a JSON body
curl -s -X POST https://bonafido.cybermax-tools.workers.dev/api/verify \
-H "content-type: application/json" \
-d '{"items":[{"domain":"stripe.com","companyName":"Stripe"},"paypa1-secure-login.com"]}'import requests
r = requests.post("https://bonafido.cybermax-tools.workers.dev/api/verify",
json={"items":[{"domain":"stripe.com","companyName":"Stripe"},"paypa1-secure-login.com"]}, timeout=30)
r.raise_for_status()
for row in r.json()["results"]:
print(row)Endpoints: /api/verify verify up to 5 business domains (optionally against a company name)
Add it to your AI agent (MCP)
A remote MCP server at https://bonafido.cybermax-tools.workers.dev/mcp (streamable HTTP, no auth). Read-only tools with JSON schemas, so agents know exactly what to send.
// Claude Desktop, Cursor, VS Code, any MCP client (remote, no key)
{
"mcpServers": {
"bonafido": { "type": "http", "url": "https://bonafido.cybermax-tools.workers.dev/mcp" }
}
}
# Claude Code
claude mcp add --transport http bonafido https://bonafido.cybermax-tools.workers.dev/mcp
# Tools: verify_domain
# e.g. verify_domain({"domain":"stripe.com","company_name":"Stripe"})verify_domain
Verify a business domain, URL or email domain: does it resolve, how old is it (RDAP), mail setup (MX/SPF/DMARC), live homepage vs parked/for-sale page, redirects, contact details, company-name match, Wikidata official website and look-alike detection. Returns verdict (verified/likely_legit/unverified/suspicious/not_found), trustScore 0-100, riskFlags and evidence. Pass company_name to check the domain belongs to that company. Up to 5 domains via "domains".
FAQ
Why not just look up WHOIS?
WHOIS (now RDAP) only tells you when a domain was registered. Scams use old, parked or look-alike domains too. Bonafido combines domain age with DNS, mail setup, the live homepage, contact details, the company-name match and Wikidata, and shows the evidence for each point.
What do the verdicts mean?
verified: strong identity match (for example Wikidata lists it as the official site). likely_legit: live, established business site. unverified: not enough signals either way. suspicious: red flags such as a brand-new domain, a parked page or a look-alike of a known brand. not_found: the domain does not resolve.
Is it a guarantee?
No. It is an automated first check with evidence, not a background check, KYC/KYB certification or legal advice. Use it to decide what needs a closer look.
Do you store what I check?
No. Each call is checked live and nothing is saved.
Can I check a whole vendor list or monitor domains?
The free API checks up to 5 domains per call. A bulk and scheduled version (alerts when a verdict changes) is coming to the Apify Store.