Check anyone on the register from your own system.

Background-check firms, investors, hiring platforms and finance teams can query the register directly. The API returns exactly what the public entry shows, nothing more, and every response carries the same honesty note.

Trust badge, no key needed

A live image that reflects the entry at the moment it is loaded. If a membership lapses or a badge is withdrawn, every embedded copy changes. Always link it to the entry.

<a href="https://www.verified.ceo/<handle>"><img src="https://www.verified.ceo/<handle>/badge.svg" alt="verified.ceo entry" width="420" height="118"></a>

<a href="https://www.verified.ceo/company/<slug>"><img src="https://www.verified.ceo/company/<slug>/badge.svg" alt="verified.ceo company" width="420" height="118"></a>

Verification API

Ask for a key at api@verified.ceo. Keys are issued to named organizations with a daily limit.

GET https://www.verified.ceo/api/v1/verify?handle=<handle>
GET https://www.verified.ceo/api/v1/verify?email=<company email>
Authorization: Bearer vc_live_…

Response:

{
  "found": true,
  "entry_url": "https://www.verified.ceo/jane-acme",
  "badge_svg_url": "https://www.verified.ceo/jane-acme/badge.svg",
  "name": "Jane Doe",
  "standing": { "tier": "1b", "label": "Company-vouched", "proves": "…", "does_not_prove": "…" },
  "challenges_paused": false,
  "badges": [ { "kind": "verified_ceo", "label": "Verified CEO", "decided_at": "…", "expires_at": "…" } ],
  "positions": [ { "role": "Chief Executive Officer", "standing": { … },
                   "organization": { "name": "Acme", "domain": "acme.com", "profile_url": "…", "badges": [ … ] } } ],
  "former_positions": [ { "role": "Founder", "organization": { … }, "from": "…", "until": "…" } ],
  "checked_at": "…",
  "notice": "Standing and badges describe checks performed. They are not a guarantee of any transaction or of conduct."
}

found: false means nobody with that handle or email is on the register. Errors: 401 missing or revoked key, 429 daily limit reached, 400 malformed query.

What to do with the answer

  • Treat Email-verified as weak: it proves control of a mailbox, nothing more.
  • Treat Company-vouched as the company itself naming the person.
  • Badges certify the exact claims listed on the badge page; check expires_at.
  • For a specific request in someone's name, use the challenge on their entry. Nothing in this API speaks to a particular message.