Autentique-se na GenderAPI.io V2 com sua chave de API existente. Conheça o cabeçalho Bearer, a chave como parâmetro de consulta em GET, o acesso pelo teste por IP e as requisições JSON.
Autenticação e teste por IP
Parâmetro
Tipo
Obrigatório
Padrão
Descrição
ParâmetroAuthorization
Tipostring
ObrigatórioNão
Padrão—
DescriçãoEnvie Bearer YOUR_API_KEY para usar uma conta. Chaves ausentes ou desconhecidas usam o teste por IP compartilhado.
ParâmetroContent-Type
Tipostring
ObrigatórioSomente POST
Padrão—
DescriçãoEnvie application/json nas requisições POST.
Envie Authorization: Bearer YOUR_API_KEY a partir do seu servidor. Substitua YOUR_API_KEY pela sua chave da GenderAPI existente. As duas versões compartilham o seu saldo; não é necessária uma assinatura ou chave separada para a V2.
Todas as requisições POST exigem Content-Type: application/json. Use sua chave de API existente no cabeçalho Bearer. Cada requisição é processada de forma independente; requisições repetidas são cobradas normalmente.
Somente GET /gender também aceita o parâmetro de consulta key. Prefira o cabeçalho Authorization nas integrações, porque URLs podem ficar registradas no histórico do navegador e em logs. Não coloque chaves privadas em código de frontend.
Uma chave ausente, com formato inválido ou não reconhecida leva ao teste por IP compartilhado com a V1. Uma chave reconhecida, mas desativada, expirada ou restrita, não leva. Verifique meta.access.mode: api_key, ip_trial ou unauthenticated. Os motivos do teste por IP são api_key_missing, api_key_invalid ou api_key_not_found. Por isso, uma chave inválida pode gerar uma resposta bem-sucedida do teste por IP; verifique o modo de acesso em produção.
Os créditos do teste por IP são renovados após um período de 24 horas, não necessariamente à meia-noite. Use /usage para ler resets_at. Pessoas que usam o mesmo IP público compartilham essa cota.
Copie sua chave de API da sua conta GenderAPI. Substitua YOUR_API_KEY abaixo por essa chave e execute o exemplo escolhido na mesma sessão do terminal. Esses comandos definem uma variável de ambiente apenas para essa sessão; o marcador publicado não é uma chave válida.
Em uma aplicação ou implantação, configure GENDERAPI_API_KEY como um segredo no lado do servidor. Os exemplos não carregam um arquivo .env automaticamente. Mantenha a chave fora de bundles do navegador, do controle de versão e de URLs públicas.
Terminal macOS / Linux
export GENDERAPI_API_KEY='YOUR_API_KEY'
Windows PowerShell
$env:GENDERAPI_API_KEY = 'YOUR_API_KEY'
Verifique o acesso sem gastar créditos
Chame GET /usage com o cabeçalho Bearer. Uma chave de conta válida retorna meta.access.mode: api_key. Se o resultado indicar ip_trial, confira a chave copiada antes de executar previsões. Essa requisição é gratuita, inclusive para uma conta sem créditos restantes.
Escolha uma linguagem de programação.Configure sua chave de API, depois execute o exemplo no seu servidor.
Esta consulta de saldo não custa créditos. Ela ainda conta para os limites de requisições.
Antes de executar: acesso e tratamento de erros
Execute estes exemplos no seu servidor. Defina GENDERAPI_API_KEY no ambiente do processo com a sua chave de API existente. Confirme que meta.access.mode é api_key: uma chave não reconhecida pode levar ao teste por IP.
Respostas JSON com HTTP 4xx e 5xx preservam o corpo do erro e retornam um código de saída diferente de zero. Verifique code, action e meta.usage.billing_status antes de fazer uma nova tentativa.
import jsonimport osimport sysimport urllib.errorimport urllib.requestapi_key = os.environ.get("GENDERAPI_API_KEY")if not api_key: raise RuntimeError("Set GENDERAPI_API_KEY")class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return Nonerequest = urllib.request.Request( "https://api.genderapi.io/api/v2/usage", method="GET", headers={ "Authorization": "Bearer " + api_key, },)opener = urllib.request.build_opener(NoRedirect())try: response = opener.open(request, timeout=30)except urllib.error.HTTPError as error: response = error # Keep the Problem Details body on non-2xx responses.with response: status = response.status raw = response.read().decode("utf-8") if "json" not in response.headers.get("Content-Type", ""): raise RuntimeError(f"HTTP {status}: expected a JSON response") result = json.loads(raw)print(json.dumps(result, indent=2), file=sys.stderr if status >= 300 else sys.stdout)if not 200 <= status < 300: sys.exit(1) # Inspect code, action and billing before retrying.# For batches, inspect every item even when HTTP status is 200.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Text.Json;string RequiredEnv(string name) => !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable(name)) ? Environment.GetEnvironmentVariable(name)! : throw new InvalidOperationException($"Set {name}");var apiKey = RequiredEnv("GENDERAPI_API_KEY");using var handler = new HttpClientHandler { AllowAutoRedirect = false };using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };using var request = new HttpRequestMessage(HttpMethod.Get, "https://api.genderapi.io/api/v2/usage");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);using var response = await client.SendAsync(request);var raw = await response.Content.ReadAsStringAsync();if (!(response.Content.Headers.ContentType?.MediaType?.Contains("json") ?? false)) throw new InvalidOperationException($"HTTP {(int)response.StatusCode}: expected JSON");using var result = JsonDocument.Parse(raw);if (!response.IsSuccessStatusCode){ Console.Error.WriteLine(result.RootElement); // Preserve Problem Details. Environment.ExitCode = 1;}else{ Console.WriteLine(result.RootElement); // For batches, inspect every item even on HTTP 200.}