Nomes de lote, e-mails e nomes de usuário
POST /gender/batch aceita um array items contendo de 1 a 50 entradas com acesso à chave API ou no máximo 10 entradas com o teste de IP. Envie nomes, endereços de e-mail, nomes de usuário ou uma mistura dos três. Cada entrada possui campos country, forceToGenderize e options separados. Os IDs são opcionais, mas devem ser exclusivos no lote.
Os resultados seguem a ordem de entrada. Cada resultado contém index, charged_credits e exatamente um de data ou error. Se você forneceu um id, ele também será retornado. Uma resposta HTTP 200 pode conter falhas em entradas individuais, portanto, verifique todos os resultados. meta.summary inclui total, succeeded, identified, unknown e failed. Uma previsão concluída sem um gênero conhecido ainda conta como bem-sucedida e custa créditos.
Se a validação ou o planejamento da solicitação falhar, todo o lote será rejeitado antes que quaisquer créditos sejam deduzidos. Se todas as entradas falharem durante a execução, a API retornará uma resposta de problema diferente de 2xx com uma matriz data e o alias herdado results. As entradas falhadas custam zero créditos após um reembolso confirmado. Se o faturamento não for confirmado, não presuma que o custo relatado para cada entrada seja final.
Escolha uma linguagem de programação. Configure sua chave API, e execute o exemplo em seu servidor.
Cada solicitação de previsão é uma nova operação faturável, incluindo novas tentativas. Esses exemplos não repetem automaticamente. Verifique o status do faturamento antes de enviar outra solicitação.
Antes de executar: acesso e tratamento de erros
Execute estes exemplos em seu servidor. Configure GENDERAPI_API_KEY no ambiente de processo para sua chave API existente. Confirme que meta.access.mode é api_key: uma chave não reconhecida pode retornar à avaliação IP.
Para respostas JSON HTTP 4xx e 5xx, os exemplos preservam o corpo do erro e saem com um status diferente de zero. Verifique code, action e meta.usage.billing_status antes de tentar novamente. Para uma resposta em lote HTTP 200, inspecione também data ou error em cada resultado.
Guia de erro e nova tentativa →cURL 7.76+ em um shell POSIX. Execute em seu terminal. Documentação de tempo de execução
Node.js 22+; busca integrada. Salve como example.mjs e execute node example.mjs. Documentação de tempo de execução
Python 3.10+; biblioteca padrão. Salve como example.py e execute python3 example.py. Documentação de tempo de execução
PHP 8+ com a extensão cURL. Salve como example.php e execute php example.php. Documentação de tempo de execução
Java 17+; cliente HTTP padrão. Salve como GenderApiExample.java e execute java GenderApiExample.java. Documentação de tempo de execução
Aplicativo de console .NET 8+. Use como Program.cs em um projeto de console e execute dotnet run. Documentação de tempo de execução
Go 1,22+; biblioteca padrão. Salve como main.go e execute go run main.go. Documentação de tempo de execução
Ler uma resposta em lote
Este exemplo sintético independente contém uma correspondência de conjunto de dados, um resultado desconhecido e uma falha de provedor. Ele ilustra uma resposta HTTP 200 com sucesso parcial, não a saída esperada da solicitação em lote acima. Os dois itens bem-sucedidos custam 1 crédito cada; o item com falha tem uma cobrança zero confirmada.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Onur",
"country": "TR"
},
"name": "onur",
"gender": "male",
"country": "TR",
"confidence": 0.9,
"confidence_kind": "observed_frequency",
"sample_count": 100,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "onur",
"method": "normalized",
"scope": "country",
"country": "TR"
}
}
},
{
"index": 1,
"id": "missing",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "zzzxxyy",
"country": null
},
"name": null,
"gender": null,
"country": null,
"confidence": null,
"confidence_kind": null,
"sample_count": null,
"source": "none",
"result_status": "unknown",
"reason": "not_found",
"country_source": null,
"match": {
"name": null,
"method": null,
"scope": null,
"country": null
}
}
},
{
"index": 2,
"id": "failed",
"charged_credits": 0,
"error": {
"type": "urn:genderapi:problem:ai_upstream_error",
"title": "ai upstream error",
"status": 502,
"detail": "The AI provider could not complete the request.",
"instance": "urn:uuid:11111111-1111-4111-8111-111111111111",
"code": "ai_upstream_error",
"request_id": "11111111-1111-4111-8111-111111111111",
"documentation": "https://api.genderapi.io/api/v2/errors",
"action": "inspect_billing_before_retry"
}
}
],
"meta": {
"request_id": "11111111-1111-4111-8111-111111111111",
"duration_ms": 12,
"access": {
"mode": "ip_trial",
"reason": "api_key_missing"
},
"usage": {
"charged_credits": 2,
"remaining_credits": 6,
"billing_status": "confirmed",
"resets_at": "2026-09-26T12:00:00.000Z",
"limit": 10,
"period_seconds": 86400
},
"summary": {
"total": 3,
"succeeded": 2,
"identified": 1,
"unknown": 1,
"failed": 1
}
}
}Planejar créditos em lote e novas tentativas
Autentique com sua chave Bearer API existente e envie Content-Type: application/json. Cada lote enviado é uma nova operação. Se tentar novamente uma falha parcial, envie apenas os itens com falha após verificar o faturamento; o reenvio de itens bem-sucedidos cobra-os novamente.
Por padrão, as entradas em lote usam off e custam 1 crédito por previsão concluída. Selecionar fallback também custa 1 crédito no total, incluindo IA. Selecionar always custa 2 créditos. Com forceToGenderize, um gênero encontrado no conjunto de dados custa 1 crédito; usar IA custa 2 créditos no total. Previsões concluídas com gênero desconhecido também custam créditos. Um saldo inicial de 1 crédito é suficiente para iniciar um lote. A dedução final pode deixar o saldo negativo.