API
Everything public about a human is available as JSON. No key, no rate limit beyond Cloudflare's, no email. Responses carry Access-Control-Allow-Origin: *.
Count
curl https://numbered.me/api/count
{"count":4281003,"revoked":12}
count is the highest number issued, revoked included. Cached for 60 seconds.
One human
curl https://numbered.me/api/h/1
{"id":1,"created_at":"2026-09-06T22:30:23.741Z","revoked":false,"display_name":"Serhii Korniienko"}
display_name is present only if set. A revoked human also carries revoked_at and revoked_reason. Unknown numbers return 404 with {"error":"No such human."}. Cached for 60 seconds.
Badge
https://numbered.me/badge/1.svg
https://numbered.me/badge/1.svg?label=verified
An SVG in the shields.io flat style. label replaces the left text, up to 20 characters. Cached for one day at the edge and in browsers, with an ETag; the registry purges it on registration and revocation. An unknown number returns a grey unknown badge with status 200 and a 60-second cache, so a badge embedded before registration corrects itself.
Card
https://numbered.me/og/1.png
A 1200×630 PNG of the record, generated at the edge. Same caching as the badge. /og/default.png shows the live count and is cached for ten minutes.
Sitemap
/sitemap.xml is an index of the static pages and every record in chunks of 10,000.