Public avatar lookups and portrait attribute analysis.
Check whether an account publishes a usable public avatar — by phone number or email address — and read the portrait attributes of that image. An image can also be analysed directly. Whole lists, across seven platforms, go through the bulk task API.
Website · API documentation · Pricing · Get an API key
One repository per product, each mirroring its own product page.
| Repository | Shape | Product code | Contents |
|---|---|---|---|
| WhatsApp avatar analysis | Realtime | ws_avatar |
OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| Email avatar analysis | Realtime | email_avatar |
OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| Image profile analysis | Realtime | image_profile |
OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| Email Bulk Avatar Check | Bulk (async) | email_avatar_batch |
Input: email · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| LINE Bulk Avatar Analysis | Bulk (async) | line_profile_batch |
Input: phone · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| MAX Bulk Number Profile | Bulk (async) | max_profile_batch |
Input: phone · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| Telegram Bulk Number Profile | Bulk (async) | tg_profile_batch |
Input: phone · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| Telegram Bulk Username Profile | Bulk (async) | tg_username_profile_batch |
Input: username · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| Viber Bulk Number Profile | Bulk (async) | viber_profile_batch |
Input: phone · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| WhatsApp Bulk Avatar Analysis | Bulk (async) | ws_profile_batch |
Input: phone · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| Zalo Bulk Number Profile | Bulk (async) | zalo_profile_batch |
Input: phone · OpenAPI contract, product.json, llms.txt, examples in 7 languages |
| avatarlookup-resources | — | — | Technical notes, guides and announcements |
Every example repository carries a machine-readable product.json, an llms.txt summary for AI clients, an OpenAPI 3.0 contract, and runnable examples in Python, Node.js, Go, Java, C#, PHP and Shell. All request paths, response fields and limits are taken from the live product pages and the published API documentation.
A realtime check (POST /api/v1/check, or POST /api/v1/batch-check for up to 100 identifiers) answers inside the same HTTP response — that is the shape for a signup form, a checkout step or a live lookup. A bulk task (POST /api/v1/bulk-tasks) takes a .txt/.csv file of 1,000–100,000 entries, returns a task id immediately, and produces a downloadable result file — that is the shape for list cleaning, campaign preparation and enrichment runs. The two are separate endpoints and are not interchangeable.
One bulk task carries one product. Phone-number tasks also carry exactly one country; email and username tasks have no country at all.
Every product on AvatarLookup uses the same API key, the same X-API-Key header and the same code / msg / data envelope, and draws from the same account balance.
Results are point-in-time signals: they describe what a provider reported at the moment of the check. They are not identity verification, not proof of ownership, and not permission to contact anyone. Use the API only for identifiers you are authorized to process, and comply with applicable privacy laws and platform terms. Third-party trademarks belong to their respective owners; no affiliation or endorsement is implied.