SelfBadge holds verified, structured profiles of people. You can read them three ways: the JSON-LD in every profile page, the public lookup API, and the MCP server for AI agents. All three return only what the person made public, and mark every fact with how it was verified.
Lookup API
Base address: https://selfbadge.com/api/v1. Answers are JSON (UTF-8), open to any origin (CORS).
| Call | What it returns |
|---|---|
GET /api/v1/people/<handle> | One profile: every public fact with its verification level and source, the checks that verified them, and the schema.org JSON-LD. |
GET /api/v1/people?id=<SelfBadge id> | The same, by the stable id (https://selfbadge.com/<handle>#person), which survives a handle change. |
GET /api/v1/search?name=&job_title=&organization=&location= | People by name, each with the hints that tell namesakes apart (job title, organization, location, description). Hints you pass rank the best match first. |
GET /api/v1/organizations/<slug> | An organization's public facts and JSON-LD, with its team members and founders on SelfBadge. |
Add ?format=jsonld (or Accept: application/ld+json) to a people call to get only the JSON-LD. Errors look like{"error":{"code":"not_found","message":"..."}}.
Example:
curl "https://selfbadge.com/api/v1/search?name=Noa%20Bergman&organization=Harbor%20Ventures"Verification levels
- 0 Seeded: from an open public source (such as Wikidata), not claimed by the person. Unconfirmed.
- 1 Self-declared: added by the person, not independently checked.
- 2 Account-verified: proven by signing in to the account, a work-email code, a DNS record or a link-back.
- 3 Document-verified and 4 ID-verified.
What is searchable
Name search returns only people who claimed and published their profile. Profiles we created from public sources are not searchable by name; they can be read by their exact handle, and are marked seeded.
Limits and API keys
Without a key: 120 calls an hour per network address. With a free API key: 5000 calls an hour per key. Every answer carriesX-RateLimit-Limit and X-RateLimit-Remaining; over the limit you get 429 with Retry-After.
Get a key: sign in, then open Account > API keys. Send it as Authorization: Bearer sbk_... (orX-API-Key). Keys are shown once; we keep only a hash. You can revoke a key at any time.
MCP server for AI agents
Address: https://selfbadge.com/mcp (Model Context Protocol, Streamable HTTP, no session). It has the same limits as the API, and takes the same key.
{
"mcpServers": {
"selfbadge": {
"type": "http",
"url": "https://selfbadge.com/mcp"
}
}
}With a key:
{
"mcpServers": {
"selfbadge": {
"type": "http",
"url": "https://selfbadge.com/mcp",
"headers": {
"Authorization": "Bearer sbk_..."
}
}
}
}Tools:
find_person: Search SelfBadge for people with a given name. Use this to identify a person correctly and tell them apart from namesakes: each candidate comes with their job title, organization, location and a short description. Pass what you already know (job title, organization, location) so the best match comes first, then call get_person with the chosen id for the full, verified profile. Only people who claimed and published their profile are returned; an empty result means SelfBadge has no claimed profile with that name, not that the person does not exist.get_person: Get one person's SelfBadge profile: every public fact (name, roles, organizations, education, accounts, published work and more) with its verification level and source, plus schema.org JSON-LD. Use it after find_person, or when you already have a SelfBadge handle, profile address or id. Profiles created from public sources and not yet claimed are marked seeded; treat their facts as unconfirmed.get_organization: Get an organization's SelfBadge page: its public facts, schema.org JSON-LD, and the people on SelfBadge linked to it (team members who accepted their company's invitation, and founders). Use it to check whether someone works at or founded an organization.
Using the data
Use it to identify people correctly and to tell them apart from namesakes. Do not use it to build profiles of people for marketing, to contact them in bulk, or to re-publish facts without their verification status. Respect a person's changes: re-read a profile rather than keeping old copies. The full terms are in our Terms of Service.
Questions: [email protected].