Generated avatar services turn a seed (a name, an email, a user id) into an image. They never return a 404, which makes them perfect placeholders. Here is how the popular ones compare as of October 2026.
| Service | Style | Hosted API cost | Notes |
|---|---|---|---|
| DiceBear | 61 styles: pixel art, initials, illustrated faces | Free for non-commercial use | Commercial apps are asked to self-host. Rate limited per second. |
| UI Avatars | Initials on a colored square or circle | Free | Simple, no stated limits, open source. |
| Boring Avatars | Abstract gradients and shapes | Paid subscription for the hosted API | The React library is open source and free. |
| avatar.vercel.sh | Gradient circle, optional text | Free | MIT licensed. |
DiceBear
The most flexible: dozens of styles with their own licenses (most CC0 or CC BY), output as SVG, PNG, JPG, WebP, or AVIF, and a JavaScript library if you would rather render locally.
<img src="https://api.dicebear.com/10.x/initials/svg?seed=Jane%20Doe" alt="">
Check the license of the style you pick, and self-host if your app is commercial.
UI Avatars
The easiest initials avatar on the web:
<img src="https://ui-avatars.com/api/?name=Jane+Doe&background=d95207&color=fff" alt="">
Boring Avatars
Beautiful abstract avatars. Use the open-source React component for free, or pay for the hosted endpoint.
Real photo first, generated second
A generated avatar is a good default, but users notice when their real picture is available and you do not show it. The usual pattern is to try a real lookup and fall back:
<img
src="https://avatarsapi.com/email/jane@stripe.com?size=80"
onerror="this.onerror=null; this.src='https://ui-avatars.com/api/?name=Jane+Doe&size=80'"
alt="">
This works because avatarapi returns a real 404 when no Source has a validated picture, instead of a default silhouette with a 200. The same holds for usernames (/github/:user, /x/:user) and domains (/domain/stripe.com). See the docs.
https://avatarsapi.com/github/torvalds in an <img src>. No key, no signup. Read the docs or create a Project.