REST API · v1
Documentação da API
Envie retratos por meio de uma API assíncrona, compartilhe sua carteira de créditos atual e acompanhe cada tarefa e cobrança.
Central do desenvolvedorConecte seu app com a ajuda de uma IA
Copie este prompt para o ChatGPT, Claude, Cursor ou seu assistente de programação. Ele perguntará sobre sua stack e, depois, orientará você na configuração das credenciais, na verificação do saldo, no envio da tarefa e na conferência do resultado.
Você não precisa enviar sua chave de API à IA. O prompt orienta você a configurá-la no ambiente do seu próprio servidor.
Ler o prompt completo / copiar manualmente
Cobrança
API: 1 crédito por teste concluído com sucesso. Site: 10 créditos por teste. Ambos usam a mesma carteira. A criação pela API reserva 1 crédito; uma falha final devolve esse crédito uma vez.
Envie Authorization: Bearer com o escopo necessário. Use a mesma Idempotency-Key ao repetir solicitações com os mesmos bytes de imagem. Se reutilizar essa chave com dados diferentes, a resposta será HTTP 409. Consultas não consomem créditos.
Endpoints
| HTTP | Permissões |
|---|---|
| POST /api/v1/face-age/jobs | face-age:write |
| GET /api/v1/face-age/jobs/{id} | face-age:read |
| GET /api/v1/credits | credits:read |
| GET /api/v1/usage?page=1&pageSize=20 | usage:read |
Criar uma tarefa
Use multipart/form-data com um único arquivo de imagem (JPEG, PNG ou WebP, até 5 MB) e o campo de consentimento abaixo. Este endpoint só pode ser usado por adultos que enviem a própria foto com consentimento. URLs remotas e parâmetros extras são rejeitados. Gere uma nova chave de idempotência somente para um novo teste lógico.
# Gere e salve uma chave para cada novo teste; em novas tentativas, execute apenas o curl abaixo usando a chave e a imagem originais.
IDEMPOTENCY_KEY="$(uuidgen)"
curl -X POST 'https://fahrface.org/api/v1/face-age/jobs' \
-H "Authorization: Bearer $FAHRFACE_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-F 'image=@portrait.jpg' \
-F 'consent=appearance-age-2026-10-21'{
"code": 0,
"message": "ok",
"data": {
"id": "JOB_ID",
"status": "queued",
"age": null,
"creditsCost": 1,
"billingStatus": "reserved"
}
}Consultar resultados
A criação retorna HTTP 202 e um ID de tarefa. Consulte a cada 10–15 segundos. queued, processing e retrying são estados não terminais; succeeded e failed são terminais. A reativação do HF pode levar vários minutos. As tarefas têm prazo de 20 minutos; uma concessão ativa do worker pode atrasar a recuperação final em até quatro minutos adicionais.
curl 'https://fahrface.org/api/v1/face-age/jobs/JOB_ID' \
-H "Authorization: Bearer $FAHRFACE_API_KEY"Erros e limites
As respostas usam code/message/data. HTTP 400: solicitação ou consentimento inválido; 401: chave inválida/expirada; 403: escopo ausente; 402: créditos insuficientes; 404: tarefa inexistente ou não pertencente à sua conta; 409: dados alterados; 413/415: tamanho/tipo de imagem inválido; 429: limite de solicitações, simultaneidade ou orçamento; 503: serviço indisponível. Siga Retry-After, reutilize a mesma chave de idempotência e confira message antes de tentar novamente.
As chaves expiram em até um ano. Os limites incluem créditos reservados e usados com sucesso; reembolsos restauram o limite. A conta permite 60 solicitações por minuto e, no máximo, duas tarefas de API ativas.
Os retratos são armazenados temporariamente em um bucket privado e excluídos após o processamento terminal, com um prazo de segurança de 24 horas. O HF processa a foto; as estimativas não são aconselhamento médico, verificação de identidade nem comprovante de idade.