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 desenvolvedor

Conecte 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.

Abrir texto simples

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

HTTPPermissões
POST /api/v1/face-age/jobsface-age:write
GET /api/v1/face-age/jobs/{id}face-age:read
GET /api/v1/creditscredits:read
GET /api/v1/usage?page=1&pageSize=20usage: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.