{
  "openapi": "3.1.0",
  "info": {
    "title": "Bonafido API",
    "version": "1.0.0",
    "summary": "Free business domain verification API and MCP server: verdict, trust score, risk flags and evidence (domain age, MX/SPF/DMARC, parked page, contacts, name match, Wikidata, look-alikes).",
    "description": "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.\n\nFree tier: 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. No key needed. Remote MCP server: https://bonafido.cybermax-tools.workers.dev/mcp",
    "contact": {
      "name": "CyberMax",
      "url": "https://cybermax-tools-cybermax.static.hf.space/"
    },
    "license": {
      "name": "Proprietary (free to call)",
      "identifier": "LicenseRef-CyberMax"
    }
  },
  "servers": [
    {
      "url": "https://bonafido.cybermax-tools.workers.dev"
    }
  ],
  "paths": {
    "/api/verify": {
      "get": {
        "tags": [
          "Bonafido"
        ],
        "summary": "Verify up to 5 business domains (optionally against a company name)",
        "description": "Runs DNS (A/AAAA/NS/MX/TXT/DMARC), RDAP registration date, homepage visit (redirects, parked/for-sale/placeholder pages, bot walls), contact signals, company-name match, Wikidata official-website lookup and look-alike detection, then returns verdict (verified, likely_legit, unverified, suspicious, not_found), trustScore 0-100, riskFlags, riskDetails and evidence.",
        "operationId": "verifyDomainsGet",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Up to 5 domains, URLs or emails, comma separated",
            "schema": {
              "type": "string"
            },
            "example": "stripe.com"
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "description": "Expected company name (used when one domain is given)",
            "schema": {
              "type": "string"
            },
            "example": "Stripe"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "ISO-2 country hint, e.g. us",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "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
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited (see the Retry-After header)",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Bonafido"
        ],
        "summary": "Verify up to 5 business domains (optionally against a company name)",
        "description": "Runs DNS (A/AAAA/NS/MX/TXT/DMARC), RDAP registration date, homepage visit (redirects, parked/for-sale/placeholder pages, bot walls), contact signals, company-name match, Wikidata official-website lookup and look-alike detection, then returns verdict (verified, likely_legit, unverified, suspicious, not_found), trustScore 0-100, riskFlags, riskDetails and evidence.",
        "operationId": "verifyDomainsPost",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "items": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 5,
                    "items": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "domain": {
                              "type": "string"
                            },
                            "companyName": {
                              "type": "string"
                            },
                            "country": {
                              "type": "string",
                              "description": "ISO-2"
                            }
                          },
                          "required": [
                            "domain"
                          ]
                        }
                      ]
                    },
                    "description": "Domains, URLs or emails, or objects {domain, companyName, country}. Up to 5."
                  },
                  "country": {
                    "type": "string"
                  }
                },
                "required": [
                  "items"
                ]
              },
              "example": {
                "items": [
                  {
                    "domain": "stripe.com",
                    "companyName": "Stripe"
                  },
                  "paypa1-secure-login.com"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Results (same field names as the bulk version's dataset records) plus the free-tier limits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "example": {
                  "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
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited (see the Retry-After header)",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "Took too long; ask for fewer items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "retryAfterSeconds": {
            "type": "integer"
          },
          "limits": {
            "type": "object"
          }
        },
        "required": [
          "error",
          "message"
        ]
      }
    }
  },
  "x-mcp-server": "https://bonafido.cybermax-tools.workers.dev/mcp"
}