Every profile. One URL.
One reliable image URL for GitHub, Gravatar, Google, X, WhatsApp, Spotify, and 72+ other providers, plus email addresses and domains.
https://oneavatar.dev/github/octocatOne URL.
The right avatar.
Give OneAvatar a username, email, or domain. We figure out where the profile image lives and return it through a single, predictable endpoint.
Build the URL
Choose a provider and append the profile identifier.
/github/octocatWe resolve the profile
OneAvatar looks up the profile and finds the corresponding image.
Use the image anywhere
Drop the URL directly into an image, avatar, profile, or UI component.
Avatar resolved
GitHub · octocat
image/png · cache-control: max-age=86400Everything you need for
profile images.
Keep the messy provider-specific logic out of your application. OneAvatar handles the lookup and gives you a consistent interface.
72+ providers
GitHub, Google, Discord, Spotify, YouTube, domains, email and many more.
One URL pattern
Stop maintaining separate integrations and image lookup logic for every provider.
Smart caching
Frequently requested avatars are served from cache instead of repeatedly hitting providers.
JSON when needed
Append .json when you need provider, username and image metadata instead of the image itself.
Automatic fallbacks
When no profile image exists, generate a clean lettermark instead of leaving an empty avatar.
Simple integration
Use it anywhere an image URL works. No SDK, client library or complicated setup required.
No image?
No broken UI.
When a provider doesn't return an image, OneAvatar will return your fallback URL or generate a simple lettermark instead.
Customize it directly through query parameters.
Fallback parameters
Configure the fallback lettermark avatar.
fallbackstring(Optional) Fallback avatar URL. If not provided, a lettermark will be shown.
sizeintegerAvatar image dimension in pixels, ranging from 16 to 512 (default: 64).
backgroundhexBackground color code without the '#' symbol (e.g., 0D8ABC).
colorhexText font color code without the '#' symbol (e.g., fff).
lengthintegerMaximum number of initial characters to display (default: 2).
font-sizefloatProportion of font size relative to total size, between 0.1 and 1.0.
roundedbooleanToggle circular border shape ('true' or 'false').
boldbooleanToggle bold font weight ('true' or 'false').
uppercasebooleanAutomatically uppercase letter initials ('true' or 'false').
formatstringOutput file format, specify either 'svg' or 'png'.
Questions, answered.
What is OneAvatar?
OneAvatar provides a single image URL for profile pictures across dozens of platforms. Give it a provider and identifier, and it resolves the corresponding avatar for you.
Do I need an API key?
You can use the free tier without an API key. Paid usage and higher limits may require an API key depending on your plan.
What happens when a profile has no avatar?
OneAvatar will use your fallback avatar URL if provided. Otherwise, it will generate a simple lettermark using the id or handle you provide.
Can I use the URL directly in an img tag?
Yes, but it is not recommended. While you can append your token to an image tag query string, it exposes your API key in public frontend source code. For better security, we recommend fetching avatar URLs server-side using your API key and passing only the public URL to your frontend.
Can I get profile information instead of the image?
Yes. Append .json to a lookup URL to request profile metadata such as the provider, username and resolved image URL.
Are avatars cached?
Yes. Responses can be cached for 24 hours so repeated requests don't require a fresh lookup every time. This helps reduce latency and unnecessary upstream requests.
Simple avatars. One URL.
Start using OneAvatar in your app today.