Free identicon API β€” deterministic SVG identicons, one query param

Identicons are the classic answer to "this user has no photo": a deterministic geometric pattern generated from a username or id, so the same person always gets the same picture without storing anything. Getting one as a plain HTTP API is fiddlier than it should be in 2026:

Prefer clicking to reading? Build your identicon URL in the live playground β†’

OptionThe catch (checked live, September 2026)
Gravatar ?d=identiconworks, but the URL wants an MD5 hash of an email address β€” you can't just pass a username, and every request goes to gravatar.com
GitHub identiconsnot a documented API β€” github.com/identicons/<user>.png answers today but is unversioned, undocumented, and rate-limited like the rest of github.com
avatars.dicebear.com (old host)❌ HTTP 410 Gone β€” every pre-2023 DiceBear tutorial URL is dead; the API moved to api.dicebear.com with a version + style in the path
api.dicebear.com (current)βœ… up and good β€” but it's one more third-party dependency, with versioned paths to keep in sync
robohash.orgβœ… up β€” robots/monsters rather than classic identicons

Mockbird serves GitHub-style 5Γ—5 mirrored identicons and abstract geometric avatars as one query param on its avatar endpoint β€” same base URL as your mock REST API, no signup, no hash, works right now:

<img src="https://mockbird.mockbird.workers.dev/m/demo/avatar?style=identicon&seed=octocat">
identicon octocat identicon ada identicon grace rounded shapes octocat shapes ada rounded identicon custom bg

Same seed β†’ same pattern, same colors, forever β€” byte-identical SVG on every request, rendered at the edge with no image processing and cached for a day. Pass any string: a username, a user id, an email β€” no hashing on your side. Need raster (email clients, OG images)? Append .png to the size path or add &format=png β€” same pattern, PNG bytes.

Try it

identicon preview

Switching? It's a URL swap

# DiceBear (current API)
https://api.dicebear.com/9.x/identicon/svg?seed=octocat
# β†’ Mockbird β€” same idea, no version in the path
https://mockbird.mockbird.workers.dev/m/demo/avatar?style=identicon&seed=octocat

# DiceBear shapes style
https://api.dicebear.com/9.x/shapes/svg?seed=octocat
# β†’ https://mockbird.mockbird.workers.dev/m/demo/avatar?style=shapes&seed=octocat

# Gravatar identicon fallback (needs md5(email))
https://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?d=identicon&f=y
# β†’ just pass the email (or anything) as the seed, no hashing
https://mockbird.mockbird.workers.dev/m/demo/avatar?style=identicon&seed=jane@example.com

The style names match DiceBear's on purpose (identicon, shapes, initials), so switching either way is mechanical.

Parameter reference

ParamMeaning
styleidenticon (5Γ—5 mirrored grid), shapes (abstract geometric), or initials (default β€” see the avatar guide).
seed / u / nameAny string β€” picks the pattern and colors deterministically.
size or path (/avatar/64)Square size in px, 1–1000. Default 128.
background / bgHex without # (3 or 6 digits). Omit for a deterministic palette pick.
color / fgForeground hex. Auto-contrast picked if omitted.
rounded / roundtrue or 1 β†’ circle-clipped. Default square.
grayscale / blur=1–10picsum-style effects β€” desaturated and/or blurred output (bare ?blur = 5), deterministic, SVG and PNG alike.

Everything composes: /avatar/64?style=identicon&seed=bob&rounded=true&background=1e3a8a does exactly what it says. Need raster? Append .png to the path (/avatar/64.png?style=identicon&seed=bob) β€” identical layout and colors, PNG bytes.

Identicons inside your mock data

This is the part no standalone identicon service does: Mockbird is a mock REST API, so your seeded users can carry working identicon URLs. One curl gives you a users API; point the avatar field at ?style=identicon&seed=<username> and every record renders a stable, unique picture:

curl -X POST https://mockbird.mockbird.workers.dev/api/projects \
  -H 'content-type: application/json' \
  -d '{"name":"my-app","preset":"saas"}'
# β†’ GET /m/<id>/users returns records with working avatar URLs

When the other services are the better pick

ServicePick it when…
DiceBearyou want their rich catalogue of illustrated art styles (pixel art, adventurers, bots…) or their self-hostable library. It's a good project β€” just use api.dicebear.com, not old tutorial URLs.
RoboHashyou want fun robots/monsters per string, in PNG.
Gravataryour users may have real Gravatar photos and you want identicons only as the fallback for those who don't.
Mockbirdyou want deterministic SVG identicons plus the mock API around them: users CRUD, auth, filters, GraphQL, webhooks β€” one base URL, no signup.

FAQ

Do I need to create anything? No β€” /m/demo/avatar?style=identicon&seed=… works bare. Create your own project (one curl, no signup) for your own namespace and quota.

Is it really deterministic? Yes β€” the pattern comes from a seeded PRNG over the FNV-1a hash of your seed string. Same seed β†’ byte-identical SVG, across requests and deploys.

Is the SVG safe to embed? Yes β€” nothing request-derived is interpolated unescaped, and the response carries X-Content-Type-Options: nosniff plus a restrictive Content-Security-Policy. It behaves like a PNG in an <img> tag.

Rate limits? Avatars share the project's daily request quota (10,000/day per project; the shared demo gets 50,000). Responses cache for 24h.

Full reference in the docs. More guides: avatar placeholder API Β· placeholder image API Β· fake user API Β· free mock API tools compared. Create your API β†’