API de API de pesquisa de avatares e logótipos
Encontre uma foto de perfil verificada para um email ou nome de utilizador, ou um logótipo para um domínio. Use esta referência para escolher uma operação e integrar seu contrato de resposta documentado.
Operações
GET /v1/avatar
GET
/v1/avatar
Créditos: 2
Parâmetros de consulta
| Parâmetro | Tipo | obrigatório |
|---|---|---|
| string | opcional | |
| username | string | opcional |
| platform |
string
Valores permitidos
githubblueskymastodonkeybase
|
opcional |
| domain | string | opcional |
Campos da resposta
| Campo | Tipo |
|---|---|
cache_age_s |
integer |
input |
object |
input.type |
string |
input.value |
string |
input.platform |
string | null |
avatar |
object |
avatar.url |
string |
avatar.source |
string |
avatar.kind |
string |
avatar.verified |
boolean |
avatar.content_type |
string | null |
avatar.width |
integer |
avatar.height |
integer |
avatar.profile_url |
string | null |
candidates[] |
object[] |
candidates[] |
object |
candidates[].source |
string |
candidates[].kind |
string |
candidates[].status |
string |
candidates[].reason |
string |
candidates[].detail |
string |
candidates[].url |
string | null |
candidates[].verified |
boolean |
candidates[].content_type |
string | null |
candidates[].width |
integer |
candidates[].height |
integer |
candidates[].profile_url |
string | null |
candidates[].may_be_generated |
boolean |
status |
string |
classification |
object |
classification.status |
string |
classification.reason |
string |
classification.evidence |
object |
classification.evidence.source |
string |
classification.evidence.method |
string |
classification.evidence.observed_at |
string |
classification.evidence.detail |
string |
classification.checked_at |
string |
checked_at |
string |
meta |
object |
meta.cached |
boolean |
meta.sources_checked |
integer |
Exemplo de requisição
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/avatar?email=user%40example.com&username=example&platform=github&domain=example.com"const response = await fetch("https://domscan.net/v1/avatar?email=user%40example.com&username=example&platform=github&domain=example.com", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/avatar?email=user%40example.com&username=example&platform=github&domain=example.com",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/avatar?email=user%40example.com&username=example&platform=github&domain=example.com", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/avatar?email=user%40example.com&username=example&platform=github&domain=example.com")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))Exemplo de resposta
{
"input": {
"type": "username",
"value": "octocat",
"platform": null
},
"avatar": {
"url": "https://cdn.bsky.app/img/avatar/plain/did:plc:example/bafkreiexample",
"source": "bluesky",
"kind": "avatar",
"verified": true,
"content_type": "image/jpeg",
"profile_url": "https://bsky.app/profile/octocat.bsky.social"
},
"candidates": [
{
"source": "github",
"kind": "avatar",
"status": "present",
"detail": "image_verified",
"url": "https://avatars.githubusercontent.com/u/583231?v=4",
"verified": true,
"content_type": "image/png",
"profile_url": "https://github.com/octocat",
"may_be_generated": true
},
{
"source": "bluesky",
"kind": "avatar",
"status": "present",
"detail": "image_verified",
"url": "https://cdn.bsky.app/img/avatar/plain/did:plc:example/bafkreiexample",
"verified": true,
"content_type": "image/jpeg",
"profile_url": "https://bsky.app/profile/octocat.bsky.social"
},
{
"source": "mastodon",
"kind": "avatar",
"status": "absent",
"detail": "account_not_found",
"url": null,
"verified": false,
"content_type": null
},
{
"source": "keybase",
"kind": "avatar",
"status": "unknown",
"reason": "rate_limited",
"detail": "http_429",
"url": null,
"verified": false,
"content_type": null
}
],
"status": "present",
"classification": {
"status": "present",
"evidence": {
"source": "bluesky",
"method": "image_probe",
"observed_at": "2026-11-02T10:00:00.000Z",
"detail": "image_verified"
},
"checked_at": "2026-11-02T10:00:00.000Z"
},
"checked_at": "2026-11-02T10:00:00.000Z",
"meta": {
"cached": false,
"sources_checked": 4
}
}
Códigos de status HTTP
200OK400Pedido inválido401Não autorizado402Pagamento necessário429Demasiados pedidos