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.