UI Avatars

Generate avatars with initials from names.

UI Avatars has a simple-to-use API with no limiting or login. No usage tracking and no information is stored. The final images are cached, but nothing else. Just write name or surname, or both.

NEW! Bold font weight option

NEW! There is now a official Laravel Wrapper

Example avatars
- Daily Requests
-ms Avg. Response Time


All requests returns a image stream to be used directly in a <img/> tag.

Generate a avatar with default settings, for user "John Doe".


Generate a blue avatar



Image Size (size)

Avatar image size in pixels. Between: 16 and 512. Default: 64


Font Size (font-size)

Font size in percentage of size. Between 0.1 and 1. Default: 0.5


Initial Characters (length)

Length of the generated initials. Default: 2


Name (name)

The name used to generate initials. You can specify the initials yourself as well. Default: John Doe


Rounded Image (rounded)

Boolean specifying if the returned image should be a circle. Default: false


Bold (bold)

Boolean specifying if the returned letters should use a bold font. Default: false


Background Color (background)

Hex color for the image background, without the hash (#). Default: ddd


Font Color (color)

Hex color for the font, without the hash (#). Default: 222


Uppercase (uppercase)

Decide if the API should uppercase the name/initials. Default: true


All settings above can be mixed together as you desire.

With gravatar or similar

A good use-case would be using it as a fallback for Gravatar. Example:


Because of limitations in Gravatar, we must pass in the parameters as sub-directories, instead of query-parameters. You should also consider urlencoding the name, in case it contains special characters. It's a limitation by Gravatar, not UI Avatars.

The order is as follows:


I recommend using 1.5x or 2x sizes for your avatars, but keeping the img tag the original size, to ensure crisp avatars on high DPI screens.

Language/Script support

I have added support for some unicode scripts/languages that are not supported by the typical fonts. Current support:

Wordpress plugin

It has Wordpress plugin! If you have a Wordpress site, you can use the Wordpress plugin, which is also free.


Servers are setup in the following countries/cities:

Privacy and Monitoring

Now that the servers are being monitored, I want to clear up what is monitored and stored. But don't worry, the sentence above "No usage tracking and no information is stored" will always be honored.

To aggregate statistics such as avg. response time, number of requests and similar - NGINX access logs has been enabled, with a config that won't store request data. The format is as follows:

log_format aggregate '[$time_local] $status $body_bytes_sent $request_time $upstream_response_time';

These log files are parsed to aggregate the data, and the output (count, avg. response time) is sent to another service which will store it. The log file is then truncated. The actual requests are never stored.