The universal avatars API
The avatar API for username, email, and domain. Get avatars from GitHub, Gravatar, Google, X, and 99+ providers through one URL — the same pattern also covers logos, app icons, and artwork when you need them.
<img src="https://unavatar.io/github/username" />No SDK, no dependencies. Just a URL that works with any HTTP client, framework, or language. Cached responses served from the edge in under 50ms worldwide.
Free, Forever, Enjoy!!!!!
Browse every supported platform
Each provider has its own page with API usage, code examples, and a live preview. Pick one to get started.
- Apple Musicmusic.apple.com
- Apple Storeapps.apple.com
- Behancebehance.net
- Bilibilibilibili.com
- BIMIbimigroup.org
- Bitbucketbitbucket.org
- Blueskybsky.app
- Buy Me a Coffeebuymeacoffee.com
- Cash Appcash.app
- Chess.comchess.com
- Codeforcescodeforces.com
- CodePencodepen.io
- Cults3Dcults3d.com
- Cursorcursor.com
- Dailymotiondailymotion.com
- Deezerdeezer.com
- DEVdev.to
- DeviantArtdeviantart.com
- Discorddiscord.com
- Docker Hubhub.docker.com
- Dribbbledribbble.com
- DuckDuckGoduckduckgo.com
- Duolingoduolingo.com
- ENSens.domains
- Facebookfacebook.com
- Farcasterfarcaster.xyz
- Flickrflickr.com
- Giteegitee.com
- GitHubgithub.com
- GitLabgitlab.com
- Goodreadsgoodreads.com
- Googlegoogle.com
- Google Playplay.google.com
- Gravatargravatar.com
- Gumroadgumroad.com
- Hevyhevy.com
- Hugging Facehuggingface.co
- Instagraminstagram.com
- Juejinjuejin.cn
- Kagglekaggle.com
- Keybasekeybase.io
- Kickkick.com
- Ko-fiko-fi.com
- Lemmyjoin-lemmy.org
- Libravatarlibravatar.org
- LinkedInlinkedin.com
- Mastodonmastodon.social
- Matrixmatrix.org
- Mediummedium.com
- Microlinkmicrolink.io
- Minecraftminecraft.net
- Mixcloudmixcloud.com
- NetEase Musicmusic.163.com
- notenote.com
- npmnpmjs.com
- OnlyFansonlyfans.com
- Open Collectiveopencollective.com
- OpenStreetMapopenstreetmap.org
- osu!osu.ppy.sh
- Patreonpatreon.com
- PayPalpaypal.com
- Pinterestpinterest.com
- Primalprimal.net
- Printablesprintables.com
- Product Huntproducthunt.com
- PSN Profilespsnprofiles.com
- QQqq.com
- Raycastraycast.com
- Redditreddit.com
- Revolutrevolut.com
- Robloxroblox.com
- Sketchfabsketchfab.com
- Snapchatsnapchat.com
- SoundCloudsoundcloud.com
- Speedrun.comspeedrun.com
- Spotifyopen.spotify.com
- Stack Overflowstackoverflow.com
- Steamsteamcommunity.com
- Stravastrava.com
- Stripestripe.com
- Substacksubstack.com
- Telegramtelegram.com
- Thingiversethingiverse.com
- Threadsthreads.net
- Tidaltidal.com
- Tiebatieba.baidu.com
- TikToktiktok.com
- Tumblrtumblr.com
- Twitchtwitch.tv
- Venmovenmo.com
- Vimeovimeo.com
- Wattpadwattpad.com
- Weiboweibo.com
- WhatsAppwhatsapp.com
- Wisewise.com
- X/Twitterx.com
- Xbox Gamertagxboxgamertag.com
- YouTubeyoutube.com
- Zhihuzhihu.com
- New providerOpen GitHub issue
Set up in seconds,
a clean and simple API.
A single GET request returns the resolved image — usually an avatar, or a logo, icon, or artwork from the same API. No SDK, no tokens for the free tier, no setup.
<img src="https://unavatar.io/github/username" />curl "https://unavatar.io/github/username"await fetch('https://unavatar.io/github/username')import requests
response = requests.get(
'https://unavatar.io/github/username'
)package main
import "net/http"
func main() {
req, _ := http.NewRequest("GET", "https://unavatar.io/github/username", nil)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}require 'net/http'
require 'uri'
uri = URI('https://unavatar.io/github/username')
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end$ch = curl_init('https://unavatar.io/github/username');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);Build the product you want without worrying about hosting, performance, or uptime.
Start reading the documentation and see everything you can do with it.
Track avatar API usage, top providers, and billing in one dashboard.
See request trends, platform mix, error rates, and billing insights in a single view so teams can move faster without guesswork.
View live demo
Performant and proven to handle scale, every day.
Fast responses backed by a global edge network you can count on.
Proudly serving companies from small to large every day.
Trusted by developers at
Get avatars from Threads in one request
Build a URL with the Threads endpoint and your input, then fetch the image. No API keys required for the free tier.
Build the URL
Start from unavatar.io/threads/ and add the input that provider expects.
Get the avatar
unavatar fetches the image from threads.net.
<img src="https://unavatar.io/threads/myspacetom" />Cached & optimized
Responses are cached for up to 24 hours. Subsequent requests return instantly — no redundant upstream lookups.
Everything you need, nothing you don't
One endpoint that resolves avatars from 99+ providers, with room for logos, app icons, and artwork on the same URL pattern. Optimized delivery from the edge. No SDK, no complexity.
99+ providers
Query by username, email, or domain. GitHub, X, Instagram, Spotify, TikTok, Gravatar — one API rules them all.
Fast & optimized
Cached across 200+ edge nodes. Images compressed on the fly for optimal size and quality. Under 50ms worldwide.
Custom TTL
Control cache freshness from 1 hour to 28 days. Avatars stay fresh on your schedule with the ?ttl parameter.
Custom fallbacks
Never show a broken avatar. Return a custom image, a generated placeholder, a base64 pixel, or fallback=false for a clean 404.
JSON or image
Get the image directly in an <img> tag, or pass ?json for a structured JSON payload with status, data, and error codes.
Typed inputs
Query with artist:, track:, channel: and more. Spotify, Apple Music, YouTube, and WhatsApp all support typed lookups.
Free to start
No registration, no API key required. 50 requests per day for free — just start using it.
Smart proxies
Automatic routing through origin, datacenter, or residential proxies. Maximum reliability, transparent cost per tier.
No SDK needed
Just an <img> tag. No client library, no build step, no dependencies. Works in any language, any framework, any platform.
Transparent pricing
$0.010 per token. Every response header tells you exactly what it cost, which proxy tier was used, and how much quota remains.
Pricing, made simple
Pure pay-as-you-go. No minimums, no commitments — you only pay for what you use. Cached requests are served for free and don't count toward your usage.
Free tier includes 25 requests/day for unauthenticated traffic and 50 requests/day for authenticated (API key) traffic.
From developers to teams like you
See how teams use unavatar to power profile and account experiences.
“We replaced three different avatar services with a single unavatar call. Simpler code, fewer dependencies, better results.”
“The fallback chain is genius — we never show a broken avatar anymore. Our users noticed the difference immediately.”
“Integrated unavatar into our onboarding flow in 10 minutes. The API is exactly what you'd expect — no surprises, just works.”
What is unavatar?
unavatar is the universal avatars API: one HTTP endpoint for user profile photos from 99+ sources like GitHub, X, Instagram, and Gravatar. The same URL pattern also resolves logos, favicons, app icons, and artwork — pass a username, email, or domain instead of wiring every provider yourself.
Is unavatar free to use?
Yes. The free tier covers 25 requests per day per IP with no API key, and 50 requests per day with an API key. Paid usage is metered — there are no minimums or subscriptions, you only pay for non-cached requests you actually make.
How do I get an avatar from an email address?
Make a GET request to unavatar.io/your@email.com (email as the path). The API tries Gravatar first, then GitHub when the address matches public GitHub data. You can also call /gravatar or /github explicitly. See the email avatar API for the full lookup order. No API key is needed for the free tier.
Do I need an API key?
Not for the free tier. Once you sign up for a paid plan, you get an API key that removes rate limits and unlocks extra features like custom TTL.
What happens if an image can't be found?
A default fallback image is returned automatically. You can customize it by passing a fallback URL as a query parameter to match your app's style.
How fast are API responses?
Cached responses are served from the edge in under 50ms worldwide. Fresh lookups depend on the upstream provider but are typically resolved in under 300ms. All responses are cached on a global CDN.
Can I use unavatar in production?
Absolutely. unavatar serves millions of requests per month with 99.6%+ uptime. Paid plans include an SLA guarantee and priority support.
Which providers are supported?
Over 99 providers including GitHub, X (Twitter), Instagram, Gravatar, Google, Bluesky, Spotify, LinkedIn, YouTube, Telegram, and more. You can also resolve images by email address or domain name.
How is unavatar different from Gravatar?
Gravatar only works for email addresses registered on its platform. unavatar checks 99+ providers including Gravatar, so you get much higher coverage for profile photos and related images. For email lookups, if Gravatar has no result, unavatar tries GitHub next. You can also resolve by username or domain across many other providers.
Still have questions? Ask on GitHub
1,479 stars on GitHub
Proudly Open Sourcecrafted by Microlink.io
unavatar is free, open source, and community-driven. Inspect the code, open an issue, or contribute a new provider — everyone is welcome.