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 β
| Option | The catch (checked live, September 2026) |
|---|---|
Gravatar ?d=identicon | works, 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 identicons | not 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">
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.
# 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.
| Param | Meaning |
|---|---|
style | identicon (5Γ5 mirrored grid), shapes (abstract geometric), or initials (default β see the avatar guide). |
seed / u / name | Any string β picks the pattern and colors deterministically. |
size or path (/avatar/64) | Square size in px, 1β1000. Default 128. |
background / bg | Hex without # (3 or 6 digits). Omit for a deterministic palette pick. |
color / fg | Foreground hex. Auto-contrast picked if omitted. |
rounded / round | true or 1 β circle-clipped. Default square. |
grayscale / blur=1β10 | picsum-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.
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
| Service | Pick it when⦠|
|---|---|
| DiceBear | you 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. |
| RoboHash | you want fun robots/monsters per string, in PNG. |
| Gravatar | your users may have real Gravatar photos and you want identicons only as the fallback for those who don't. |
| Mockbird | you want deterministic SVG identicons plus the mock API around them: users CRUD, auth, filters, GraphQL, webhooks β one base URL, no signup. |
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 β