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,"vouches":9184}

count is the highest number issued, revoked included. vouches is every vouch ever recorded. 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","level":"corroborated",
 "vouches_received":2,"humans_brought":3,"referred_by":null}

display_name is present only if set. A revoked human also carries revoked_at and revoked_reason. referred_by is the number of the human whose invite link was used at registration, or null. With the owner's session cookie the response also carries invite_url and linkedin_add_url, LinkedIn's "Add to profile" deep link with the level in the certification name at the time of the request, and is not cached. Unknown numbers return 404 with {"error":"No such human."}. Cached for 60 seconds.

Verification levels

level is derived from vouches_received, which counts vouches from humans who are not revoked.

Self-declared
0
Corroborated
1–2
Widely believed
3–9
Beyond reasonable doubt
10–24
Undeniable
25 or more

Vouching needs a session: POST /vouch/:id from the record page or an invite page. One vouch per pair, permanent, ten per human per hour. /ledger lists the most vouched and the most humans brought, refreshed every five minutes. /lineage/:id shows who invited whom.

Notes

A record carries up to two fixed notes about its number, rarest first: the first, prime, a power of two, a perfect square or cube, a Fibonacci number, a factorial, a triangular number, a palindrome, every digit the same, consecutive digits, reads as binary, also a year, round, and five specific numbers. Numbers with no such property have no notes. Nothing is invented.

Badge

https://numbered.me/badge/1.svg
https://numbered.me/badge/1.svg?label=verified
https://numbered.me/badge/1.svg?level=1

An SVG in the shields.io flat style. label replaces the left text, up to 20 characters. level=1 appends a third, grey segment with the verification level. Cached for one day at the edge and in browsers, with an ETag; the registry purges it on registration, revocation and any vouch that changes the level. An unknown number returns a grey unknown badge with status 200 and a 60-second cache, so a badge embedded before registration corrects itself.

Banners

https://numbered.me/banner/1.svg
https://numbered.me/banner/1.svg?variant=madeby&style=dark&size=sm&level=1
https://numbered.me/banner/team.svg?ids=1,12,4281&style=outline

Rectangular SVG banners for websites. variant is verified (default, "Verified human" over "Human #N") or madeby ("Made by" over "Human #N"). style is light (default), dark or outline; size is md (250×54, default) or sm (200×44); level=1 adds the verification level after the number. /banner/team.svg?ids= takes up to six numbers, sorted ascending, unknown and revoked ones dropped, and reads "Made by humans". A revoked human's banner says "Revoked" in red; an unknown number shows #? with a 60-second cache. Caching, ETag and purging are the badge's.

Certificate

https://numbered.me/certificate/1.pdf
https://numbered.me/certificate/1.pdf?size=letter

A one-page PDF of the record, A4 by default or Letter, with the number, the level, the vouches, who invited them, the notes, and a stamp. Generated at the edge; the fonts are embedded. Cached for one day with an ETag and purged with the card. Unknown numbers return 404.

Card

https://numbered.me/og/1.png

A 1200×630 PNG of the record with the level, who vouched for it at registration where applicable, and the first note about the number. 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.