AvatarLookup Referência da API

Todos os endpoints compartilham uma chave de API e um saldo.

ItemValor
URL basehttps://avatarlookup.com
Cabeçalho de autenticaçãoX-API-Key: sk_your_api_key
Envelope da resposta{ code, msg, data }

Os preços não são listados aqui; todos os produtos são cobrados por verificação bem-sucedida. Ver preços

Autenticação

Use uma chave de API criada em Configurações e envie-a em todas as solicitações.

Cabeçalho de autenticação
X-API-Key: sk_your_api_key

Mantenha sua chave de API em segredoSempre chame este endpoint a partir do seu servidor. Qualquer pessoa que tenha a chave pode gastar seu saldo.

Verificações síncronas

POST/api/v1/checkPOST/api/v1/batch-checkPOST/api/v1/image/profile

Envie um identificador, ou até 100 em uma única solicitação, e leia o resultado na mesma resposta. Sem polling, sem callbacks. Um resultado indeterminado retorna 422 com code 42200 e não é cobrado. Uma solicitação múltipla mantém a ordem de entrada, cobra cada identificador de forma independente e tem 300 segundos para terminar — se não terminar, a solicitação inteira falha e todas as cobranças são reembolsadas. A análise de imagem usa um endpoint próprio, /api/v1/image/profile, e recebe uma imagem em vez de um identificador.

Parâmetros

CampoTipoDescrição
service_typestringCódigo do produto, um dos produtos listados abaixo.
identifierstringVerificação única: um identificador. O servidor o normaliza.
identifiersstring[]Verificação múltipla: de 1 a 100 identificadores. A resposta preserva esta ordem.
filefileAnálise de imagem: uma imagem de retrato (envio multipart). Não há identifier.

Análise de perfil por imagem

image_profileimagem

Envie qualquer imagem e receba seus atributos de retrato: idade estimada, gênero, tipo de imagem, cor do cabelo e tom de pele.

Verificação única

POST/api/v1/image/profile
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/image/profile" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=image_profile \
  -F file=@portrait.jpg
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "image_profile",
    "identifier": "img:7013df96c540904a4b7ba295e9162ab2",
    "category": "individual portrait",
    "age": 39,
    "gender": "male",
    "skin_color": "white",
    "hair_color": "brown"
  }
}
Campos da resposta
CampoTipoDescrição
identifierstringImpressão digital da imagem enviada, derivada do seu conteúdo. A mesma imagem sempre gera o mesmo valor.
categorystringO que a imagem mostra: individual portrait, group photo, game avatar, cartoon avatar, landscape, pet avatar ou object. unknown quando não foi possível gerar um retrato.
ageintegerIdade estimada como número inteiro, com precisão de cerca de 3 anos e limitada a 0-80. Omitida quando não foi possível estimá-la (por exemplo, quando nenhum gênero foi determinado).
genderstringmale, female ou unknown.
skin_colorstringTom de pele descritivo, por exemplo white, east_asian ou hispanic. Trate-o como um conjunto aberto; unknown quando não determinado.
hair_colorstringCor do cabelo descritiva, por exemplo black, brown, blond ou gray white. Trate-a como um conjunto aberto; unknown quando não determinada.

Análise de foto de perfil do WhatsApp

ws_profiletelefone

Verifique se um número tem foto de perfil no WhatsApp, obtenha a URL da imagem e leia os atributos de retrato dessa foto.

Verificação única

POST/api/v1/check
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "ws_profile", "identifier": "+17253100591" }'
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "ws_profile",
    "identifier": "+17253100591",
    "registered": true,
    "avatar": true,
    "avatar_url": "https://pps.whatsapp.net/v/example.jpg",
    "category": "individual portrait",
    "age": 39,
    "gender": "male",
    "skin_color": "white",
    "hair_color": "brown"
  }
}
Campos da resposta
CampoTipoDescrição
registeredbooleanSe o número está registrado no WhatsApp.
avatarbooleanSe há foto de perfil definida.
avatar_urlstringURL da foto de perfil; string vazia quando nenhuma foto está definida.
categorystringO que a imagem mostra: individual portrait, group photo, game avatar, cartoon avatar, landscape, pet avatar ou object. unknown quando não foi possível gerar um retrato.
ageintegerIdade estimada como número inteiro, com precisão de cerca de 3 anos e limitada a 0-80. Omitida quando não foi possível estimá-la (por exemplo, quando nenhum gênero foi determinado).
genderstringmale, female ou unknown.
skin_colorstringTom de pele descritivo, por exemplo white, east_asian ou hispanic. Trate-o como um conjunto aberto; unknown quando não determinado.
hair_colorstringCor do cabelo descritiva, por exemplo black, brown, blond ou gray white. Trate-a como um conjunto aberto; unknown quando não determinada.

Verificação múltipla

POST/api/v1/batch-check
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/batch-check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "ws_profile", "identifiers": ["+17253100591", "+14155550000", "12345"] }'
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "ws_profile",
    "total": 3,
    "succeeded": 2,
    "failed": 1,
    "results": [
      {
        "identifier": "+17253100591",
        "exists": true,
        "registered": true,
        "avatar": true,
        "avatar_url": "https://pps.whatsapp.net/v/example.jpg",
        "category": "individual portrait",
        "age": 39,
        "gender": "male",
        "skin_color": "white",
        "hair_color": "brown"
      },
      {
        "identifier": "+14155550000",
        "exists": true,
        "registered": false,
        "avatar": false,
        "avatar_url": "",
        "category": "unknown",
        "gender": "unknown",
        "skin_color": "unknown",
        "hair_color": "unknown"
      },
      {
        "identifier": "12345",
        "exists": false
      }
    ]
  }
}
Campos da resposta
CampoTipoDescrição
existsbooleanSe este identificador gerou um resultado. false significa que o formato era inválido, o resultado foi indeterminado ou a verificação falhou; quando false, nenhum dos campos abaixo está presente.
registeredbooleanSe a conta existe nessa plataforma (para um endereço de e-mail: se ele é alcançável). Presente apenas quando exists é true, com o mesmo significado da consulta individual.
avatarbooleanSe há foto de perfil definida.
avatar_urlstringURL da foto de perfil; string vazia quando nenhuma foto está definida.
categorystringO que a imagem mostra: individual portrait, group photo, game avatar, cartoon avatar, landscape, pet avatar ou object. unknown quando não foi possível gerar um retrato.
ageintegerIdade estimada como número inteiro, com precisão de cerca de 3 anos e limitada a 0-80. Omitida quando não foi possível estimá-la (por exemplo, quando nenhum gênero foi determinado).
genderstringmale, female ou unknown.
skin_colorstringTom de pele descritivo, por exemplo white, east_asian ou hispanic. Trate-o como um conjunto aberto; unknown quando não determinado.
hair_colorstringCor do cabelo descritiva, por exemplo black, brown, blond ou gray white. Trate-a como um conjunto aberto; unknown quando não determinada.

Análise de foto de perfil de e-mail

email_profilee-mail

Verifique se uma conta de e-mail tem foto de perfil e leia seus atributos de retrato. Cobre Gmail, Yandex e Mail.ru.

Verificação única

POST/api/v1/check
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email_profile", "identifier": "alex.kim@gmail.com" }'
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email_profile",
    "identifier": "alex.kim@gmail.com",
    "registered": true,
    "avatar": true,
    "avatar_url": "https://lh3.googleusercontent.com/a/example",
    "category": "individual portrait",
    "age": 39,
    "gender": "male",
    "skin_color": "white",
    "hair_color": "brown"
  }
}
Campos da resposta
CampoTipoDescrição
registeredbooleanSe o endereço de e-mail é alcançável (pode receber mensagens).
avatarbooleanSe há foto de perfil definida.
avatar_urlstringURL da foto de perfil; string vazia quando nenhuma foto de perfil está definida.
categorystringO que a imagem mostra: individual portrait, group photo, game avatar, cartoon avatar, landscape, pet avatar ou object. unknown quando não foi possível gerar um retrato.
ageintegerIdade estimada como número inteiro, com precisão de cerca de 3 anos e limitada a 0-80. Omitida quando não foi possível estimá-la (por exemplo, quando nenhum gênero foi determinado).
genderstringmale, female ou unknown.
skin_colorstringTom de pele descritivo, por exemplo white, east_asian ou hispanic. Trate-o como um conjunto aberto; unknown quando não determinado.
hair_colorstringCor do cabelo descritiva, por exemplo black, brown, blond ou gray white. Trate-a como um conjunto aberto; unknown quando não determinada.

Verificação múltipla

POST/api/v1/batch-check
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/batch-check" \
  -H "X-API-Key: sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "service_type": "email_profile", "identifiers": ["alex.kim@gmail.com", "no.such.user@gmail.com", "not-an-email"] }'
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "service_type": "email_profile",
    "total": 3,
    "succeeded": 2,
    "failed": 1,
    "results": [
      {
        "identifier": "alex.kim@gmail.com",
        "exists": true,
        "registered": true,
        "avatar": true,
        "avatar_url": "https://lh3.googleusercontent.com/a/example",
        "category": "individual portrait",
        "age": 39,
        "gender": "male",
        "skin_color": "white",
        "hair_color": "brown"
      },
      {
        "identifier": "no.such.user@gmail.com",
        "exists": true,
        "registered": false,
        "avatar": false,
        "avatar_url": "",
        "category": "unknown",
        "gender": "unknown",
        "skin_color": "unknown",
        "hair_color": "unknown"
      },
      {
        "identifier": "not-an-email",
        "exists": false
      }
    ]
  }
}
Campos da resposta
CampoTipoDescrição
existsbooleanSe este identificador gerou um resultado. false significa que o formato era inválido, o resultado foi indeterminado ou a verificação falhou; quando false, nenhum dos campos abaixo está presente.
registeredbooleanSe a conta existe nessa plataforma (para um endereço de e-mail: se ele é alcançável). Presente apenas quando exists é true, com o mesmo significado da consulta individual.
avatarbooleanSe há foto de perfil definida.
avatar_urlstringURL da foto de perfil; string vazia quando nenhuma foto de perfil está definida.
categorystringO que a imagem mostra: individual portrait, group photo, game avatar, cartoon avatar, landscape, pet avatar ou object. unknown quando não foi possível gerar um retrato.
ageintegerIdade estimada como número inteiro, com precisão de cerca de 3 anos e limitada a 0-80. Omitida quando não foi possível estimá-la (por exemplo, quando nenhum gênero foi determinado).
genderstringmale, female ou unknown.
skin_colorstringTom de pele descritivo, por exemplo white, east_asian ou hispanic. Trate-o como um conjunto aberto; unknown quando não determinado.
hair_colorstringCor do cabelo descritiva, por exemplo black, brown, blond ou gray white. Trate-a como um conjunto aberto; unknown quando não determinada.

Verificações assíncronas

POST/api/v1/bulk-tasksGET/api/v1/bulk-tasks/{id}

Envie um arquivo e receba um ID de tarefa imediatamente; depois, consulte esse ID até que seja concluído com sucesso. A resposta de sucesso inclui result_url, o link para baixar o resultado. Existem apenas duas ações: enviar e consultar. Não consulte com frequência maior que uma vez a cada 30 segundos.

Parâmetros

CampoTipoDescrição
service_typestringCódigo do produto em massa, um dos produtos listados abaixo.
countrystringCódigo ISO 3166-1, como US. Obrigatório para tarefas de números: cada número deve incluir o código do país e pertencer a este país (os números que não atendem a isso são excluídos e não são cobrados); também define o roteamento. Em multipart, deve vir antes de file.
filefileUm .txt ou .csv com um identificador por linha, até max_file_bytes (20MB por padrão).
Idempotency-KeyheaderOpcional, até 128 caracteres. Reenviar a mesma chave retorna a tarefa original em vez de criar uma segunda.

Produtos deste grupo

Análise de foto de perfil do WhatsApp · Em massa

ws_profile_batchtelefone1.000–500.000 por tarefa

Envie um arquivo inteiro de números: URL da foto de perfil do WhatsApp e o que a foto mostra — categoria, idade, gênero, tom de pele e cor do cabelo.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=ws_profile_batch \
  -F country=US \
  -F file=@numbers.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "ws_profile_batch",
    "status": "processing",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "ws_profile_batch",
    "status": "success",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifier17253100591O número enviado apenas em dígitos, com o código do país, sem sinal de mais nem espaços (ex.: 17253100591).
activatedtrueSe o número está registrado no WhatsApp: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
avatar_urlhttps://pps.waavatar.xyz/v/example.jpgURL da foto de perfil; vazia quando a conta não tem foto de perfil.
categoryindividual portraitO que a foto de perfil mostra: individual portrait, group photo, cartoon avatar, pet avatar, landscape, object etc.; unknown quando não pode ser reconhecida, vazio quando não há foto de perfil.
age31Idade estimada a partir da foto de perfil; vazia quando não pode ser estimada.
gendermaleGênero estimado a partir da foto de perfil: male ou female; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.
skin_coloreast_asianTom de pele estimado a partir da foto de perfil, por exemplo white, asian, east_asian; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.
hair_colorblackCor do cabelo estimada a partir da foto de perfil, por exemplo black, brown; unknown quando não pode ser reconhecida, vazio quando não há foto de perfil.

Perfil por número do Telegram · Em massa

tg_profile_batchtelefone1.000–500.000 por tarefa

Envie números: ID de usuário do Telegram, nome de usuário, dias de atividade e URL da foto de perfil, além de idade, gênero e tom de pele reconhecidos na foto.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=tg_profile_batch \
  -F country=US \
  -F file=@numbers.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "tg_profile_batch",
    "status": "processing",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "tg_profile_batch",
    "status": "success",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifier17253100591O número enviado apenas em dígitos, com o código do país, sem sinal de mais nem espaços (ex.: 17253100591).
activatedtrueSe o número está registrado no Telegram: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
uid1234567890ID de usuário do Telegram.
usernamealex_kimNome de usuário; vazio quando a conta não tem um.
activedays9Dias desde que a conta foi vista pela última vez, como número inteiro — quanto menor, mais recente. Quando a conta oculta o horário exato em que foi vista por último, o Telegram revela apenas um intervalo, e o valor é uma aproximação: 0 (recentemente), 7 (na última semana), 30 (no último mês) ou 1000 (há muito tempo).
avatar_urlhttps://telegram.waavatar.xyz/v/example.jpgURL da foto de perfil; vazia quando a conta não tem foto de perfil.
age31Idade estimada a partir da foto de perfil; vazia quando não pode ser estimada.
gendermaleGênero estimado a partir da foto de perfil: male ou female; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.
skin_colorwhiteTom de pele estimado a partir da foto de perfil, por exemplo white, asian, east_asian; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.

Perfil por nome de usuário do Telegram · Em massa

tg_username_profile_batchnome de usuário1.000–500.000 por tarefa

Envie nomes de usuário do Telegram: ID de usuário, dias de atividade e URL da foto de perfil de cada conta.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=tg_username_profile_batch \
  -F file=@usernames.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "tg_username_profile_batch",
    "status": "processing",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "tg_username_profile_batch",
    "status": "success",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifieralex_kimO nome de usuário enviado, sem @ ou t.me/ (por exemplo, alex_kim).
activatedtrueSe o nome de usuário pertence a uma conta existente do Telegram: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
uid1234567890ID de usuário do Telegram; pode ficar vazio mesmo para uma conta existente.
activedays9Dias desde que a conta foi vista pela última vez, como número inteiro — quanto menor, mais recente. Quando a conta oculta o horário exato em que foi vista por último, o Telegram revela apenas um intervalo, e o valor é uma aproximação: 0 (recentemente), 7 (na última semana), 30 (no último mês) ou 1000 (há muito tempo). Pode ficar vazio quando a conta não revela nenhuma informação de visto por último.
avatar_urlhttps://cdn5.telesco.pe/file/example.jpgURL da foto de perfil; vazia quando a conta não tem foto de perfil.

Perfil por número do Viber · Em massa

viber_profile_batchtelefone1.000–500.000 por tarefa

Envie números: ID de membro do Viber, dias de atividade e URL da foto de perfil, além de categoria, idade, gênero e tom de pele reconhecidos na foto.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=viber_profile_batch \
  -F country=US \
  -F file=@numbers.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "viber_profile_batch",
    "status": "processing",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "viber_profile_batch",
    "status": "success",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifier17253100591O número enviado apenas em dígitos, com o código do país, sem sinal de mais nem espaços (ex.: 17253100591).
activatedtrueSe o número está registrado no Viber: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
uidA5qCVDb3jPU=ID de membro do Viber.
activedays3Dias desde que a conta esteve online pela última vez — quanto menor, mais recente.
avatar_urlhttps://viber.waavatar.xyz/v/example.jpgURL da foto de perfil; vazia quando a conta não tem foto de perfil.
categoryindividual portraitO que a foto de perfil mostra: individual portrait, group photo, cartoon avatar, pet avatar, landscape, object etc.; unknown quando não pode ser reconhecida, vazio quando não há foto de perfil.
age31Idade estimada a partir da foto de perfil; vazia quando não pode ser estimada.
gendermaleGênero estimado a partir da foto de perfil: male ou female; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.
skin_colorwhiteTom de pele estimado a partir da foto de perfil, por exemplo white, asian, east_asian; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.

Perfil por número do MAX · Em massa

max_profile_batchtelefone1.000–500.000 por tarefa

Envie números: ID de usuário do MAX, URL da foto de perfil e gênero.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=max_profile_batch \
  -F country=US \
  -F file=@numbers.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "max_profile_batch",
    "status": "processing",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "max_profile_batch",
    "status": "success",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifier17253100591O número enviado apenas em dígitos, com o código do país, sem sinal de mais nem espaços (ex.: 17253100591).
activatedtrueSe o número está registrado no MAX: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
uid343064807ID de usuário do MAX.
avatar_urlhttps://i.oneme.ru/i?r=exampleURL da foto de perfil; vazia quando a conta não tem foto de perfil.
gendermaleGênero da conta: male ou female; vazio quando desconhecido.

Análise de foto de perfil do LINE · Em massa

line_profile_batchtelefone2.000–500.000 por tarefa

Envie números: ID de usuário do LINE e URL da foto de perfil, além de categoria, idade, gênero, tom de pele e cor do cabelo reconhecidos na foto.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=line_profile_batch \
  -F country=US \
  -F file=@numbers.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "line_profile_batch",
    "status": "processing",
    "country": "US",
    "submitted_lines": 2027,
    "total": 2027,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "line_profile_batch",
    "status": "success",
    "country": "US",
    "submitted_lines": 2027,
    "total": 2000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 24,
    "preparing": false,
    "success_cnt": 1980,
    "failure_cnt": 20,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifier17253100591O número enviado apenas em dígitos, com o código do país, sem sinal de mais nem espaços (ex.: 17253100591).
activatedtrueSe o número está registrado no LINE: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
uidu5158553776c28d9164035c4fd0a07cd4ID de usuário do LINE.
avatar_urlhttps://profile.line-scdn.net/exampleURL da foto de perfil; vazia quando a conta não tem foto de perfil.
categoryindividual portraitO que a foto de perfil mostra: individual portrait, group photo, cartoon avatar, pet avatar, landscape, object etc.; unknown quando não pode ser reconhecida, vazio quando não há foto de perfil.
age31Idade estimada a partir da foto de perfil; vazia quando não pode ser estimada.
gendermaleGênero estimado a partir da foto de perfil: male ou female; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.
skin_coloreast_asianTom de pele estimado a partir da foto de perfil, por exemplo white, asian, east_asian; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.
hair_colorblackCor do cabelo estimada a partir da foto de perfil, por exemplo black, brown; unknown quando não pode ser reconhecida, vazio quando não há foto de perfil.

Perfil por número do Zalo · Em massa

zalo_profile_batchtelefone1.000–500.000 por tarefa

Envie números: ID de usuário do Zalo e URL da foto de perfil, além de categoria, idade, gênero e tom de pele reconhecidos na foto.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=zalo_profile_batch \
  -F country=US \
  -F file=@numbers.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "zalo_profile_batch",
    "status": "processing",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "zalo_profile_batch",
    "status": "success",
    "country": "US",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifier17253100591O número enviado apenas em dígitos, com o código do país, sem sinal de mais nem espaços (ex.: 17253100591).
activatedtrueSe o número está registrado no Zalo: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
uid452114152ID de usuário do Zalo.
avatar_urlhttps://s160-ava-talk.zadn.vn/example.jpgURL da foto de perfil; vazia quando a conta não tem foto de perfil.
categoryindividual portraitO que a foto de perfil mostra: individual portrait, group photo, cartoon avatar, pet avatar, landscape, object etc.; unknown quando não pode ser reconhecida, vazio quando não há foto de perfil.
age31Idade estimada a partir da foto de perfil; vazia quando não pode ser estimada.
gendermaleGênero estimado a partir da foto de perfil: male ou female; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.
skin_colorasianTom de pele estimado a partir da foto de perfil, por exemplo white, asian, east_asian; unknown quando não pode ser reconhecido, vazio quando não há foto de perfil.

Verificação de foto de perfil de e-mail · Em massa

email_avatar_batche-mail1.000–500.000 por tarefa

Envie endereços Gmail, Yandex ou Mail.ru: se cada um é entregável e sua foto de perfil.

Enviar uma tarefa

POST/api/v1/bulk-tasks
Solicitação
curl -X POST "https://avatarlookup.com/api/v1/bulk-tasks" \
  -H "X-API-Key: sk_your_api_key" \
  -F service_type=email_avatar_batch \
  -F file=@emails.txt
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_avatar_batch",
    "status": "processing",
    "submitted_lines": 1015,
    "total": 1015,
    "invalid_cnt": 0,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 0,
    "preparing": true,
    "created_at": "2026-09-08T09:30:00Z"
  }
}

Consultar a tarefa

GET/api/v1/bulk-tasks/{id}
Solicitação
curl "https://avatarlookup.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
    "product": "email_avatar_batch",
    "status": "success",
    "submitted_lines": 1015,
    "total": 1000,
    "invalid_cnt": 3,
    "no_code_cnt": 0,
    "other_country_cnt": 0,
    "duplicate_cnt": 12,
    "preparing": false,
    "success_cnt": 990,
    "failure_cnt": 10,
    "result_url": "https://…/result.csv",
    "created_at": "2026-09-08T09:30:00Z"
  }
}
Colunas do resultado
Campoexemplo:Descrição
identifieralex.kim@gmail.comO endereço enviado, em letras minúsculas.
activatedtrueSe o endereço é entregável nesse provedor — se pode receber mensagens: true ou false. Quando não é true, todas as outras colunas dessa linha ficam vazias.
avatartrueSe há foto de perfil definida: true ou false. avatar_url ainda pode ficar vazia quando a imagem não está disponível.
avatar_urlhttps://lh3.googleusercontent.com/a/exampleA URL da foto de perfil; vazia quando nenhuma URL está disponível.

Saldo

GET/api/v1/balance

Lê o saldo atual da conta em micros de USD. Somente leitura: não cria registro de verificação nem cobra nada.

Saldo

GET/api/v1/balance
Solicitação
curl "https://avatarlookup.com/api/v1/balance" \
  -H "X-API-Key: sk_your_api_key"
Resposta
{
  "code": 0,
  "msg": "ok",
  "data": {
    "balance_micros": 12500000
  }
}

Concorrência, tempos limite e comportamento de novas tentativas

As consultas de fotos de perfil são síncronas. Use o code retornado para decidir se aceita o resultado ou tenta novamente mais tarde.

CampoDescrição
5 solicitações simultâneas por usuárioAs verificações únicas e múltiplas compartilham este limite, e uma solicitação múltipla conta como uma solicitação, independentemente de quantos identificadores ela contenha. Além disso, apenas uma verificação múltipla por conta é executada por vez; uma segunda é rejeitada até que a primeira termine. Atingir qualquer um dos limites retorna o code 42901 imediatamente, sem cobrança, com um cabeçalho Retry-After — reenvie assim que uma solicitação em andamento terminar.
60s para única, 300s para múltiplaExceder o tempo limite retorna o code 50400, sem cobrança. Uma verificação múltipla que excede o tempo falha por completo — sem resultados parciais, e o valor total é reembolsado.
Uma verificação múltipla aceita até 100 identificadoresOs resultados preservam a ordem e a quantidade do envio. Uma verificação múltipla por conta é executada por vez; envie o próximo lote depois que o anterior retornar.

Códigos de erro

CódigoDescrição
40000Tipo de serviço não suportado ou campos da solicitação conflitantes
40001Corpo JSON inválido
40002Identificador inválido
40100Chave de API ausente ou inválida
40200Saldo insuficiente
42200Não foi possível determinar o identificador neste momento. Nenhum dado é retornado e a solicitação não é cobrada
42900Uma cota de uso foi esgotada ou há pedidos não concluídos demais
42901Todas as cinco vagas de solicitações simultâneas estão ocupadas ou já há uma verificação múltipla em execução nesta conta; envie depois que uma solicitação em andamento terminar. A solicitação rejeitada não é cobrada e inclui um cabeçalho Retry-After
50303O serviço está no limite da capacidade agora; sem cobrança. Aguarde os segundos indicados em Retry-After e reenvie a mesma solicitação
50400A verificação não terminou dentro do tempo limite e não é cobrada; tente novamente. O tempo esgotado de um lote faz o lote inteiro falhar e reembolsa o valor total
50300Manutenção do serviço de validação