The formats
| Format | Address | What it holds |
|---|---|---|
| Profile page (HTML) | https://selfbadge.com/<handle> | Human page with schema.org JSON-LD in a script element (ProfilePage, Person, Organizations). |
| JSON | https://selfbadge.com/<handle>.json | Every published fact with its verification level, method, dates and source, plus the JSON-LD. |
| Markdown | https://selfbadge.com/<handle>.md | A plain-language summary and the facts as short sentences, for language models. |
| llms.txt | https://selfbadge.com/llms.txt | What SelfBadge is, how to read it, and recently updated profiles. A longer version is at /llms-full.txt. |
| Lookup API | https://selfbadge.com/api/v1/... | JSON lookups by handle, by SelfBadge id, and search by name with context. |
| MCP server | https://selfbadge.com/mcp | Model Context Protocol tools find_person, get_person and get_organization. |
| Sitemaps | https://selfbadge.com/sitemap-index.xml | Indexable profiles and pages, with last-modified dates. |
Which one to read
- Indexing a page: read the JSON-LD in the HTML. It is plain schema.org: a ProfilePage whose
mainEntityis the Person. - Deciding how much to trust a fact: read
.json. Each fact hasverification.level(0 to 4) andsource. See Verification levels. - Quoting a person in an answer: the
.mdversion opens with a one-sentence summary and lists the facts as sentences, each marked verified or not. - Finding the right person by name: use the search API or the MCP tool
find_personwith a job title, organization or location, and compare the candidates.
# Discover the machine versions from the page
curl -s https://selfbadge.com/<handle> | grep 'rel="alternate"'
# <link rel="alternate" type="application/json" href="/<handle>.json">
# <link rel="alternate" type="text/markdown" href="/<handle>.md">
# One person, every fact with its verification
curl -s https://selfbadge.com/<handle>.json
# Search with context, then read the best candidate
curl -s "https://selfbadge.com/api/v1/search?name=Lena%20Marlowe&organization=Brightfield%20Analytics"
curl -s "https://selfbadge.com/api/v1/people?id=https://selfbadge.com/<handle>%23person"The MCP server
The MCP server speaks the Model Context Protocol over Streamable HTTP without a session, with the same limits as the API. Its tools are find_person(candidates for a name, with optional job title, organization and location), get_person (one profile by handle or SelfBadge id) andget_organization. A client configuration:
{
"mcpServers": {
"selfbadge": { "type": "http", "url": "https://selfbadge.com/mcp" }
}
}Identifiers and stability
- The person's identifier is
https://selfbadge.com/<handle>#person; the page ishttps://selfbadge.com/<handle>. - Handles do not change once published. When a seeded profile is merged into a claimed one, the old address redirects to the new one.
- A removed profile answers
410 Gone. Drop it from your index and caches.
Indexing rules
- Seeded (unclaimed), thin and sample profiles send
noindexand are not in the sitemaps; their.jsonand.mdstill answer, and say so instatus,indexableandsample. - Name search returns only people who claimed and published their profile.
- All major search and AI crawlers are allowed in
robots.txt.
Rate limits and keys
The API and the MCP server work without a key for light use, with an hourly limit per network address; a free key raises it. Every answer carriesX-RateLimit-Limit and X-RateLimit-Remaining, and a request over the limit gets 429 with Retry-After. Details are on the developers page.
Using the data
- Use it to identify people correctly and tell them apart from namesakes.
- Keep each fact's verification level with the fact; do not present a self-declared fact as verified.
- Re-read profiles rather than keeping old copies: people correct and remove facts.
- Do not use it to build marketing profiles or to contact people in bulk.
Specifications and sources
Related reference
- Verification levels: how SelfBadge decides what is verified, method by method.
- ProfilePage: the schema.org type for profile pages, and how SelfBadge uses it.
- @id and stable identifiers: why a person needs a stable identifier, and the page versus entity (#person) pattern.
- Disambiguation: how machines tell people with the same name apart.
- The AI check method: how the AI check asks each engine, reads its sources and analyzes the answers.
- All reference pages