Referência dos campos type, value, country, forceToGenderize e ai_mode da GenderAPI.io V2, com as diferenças entre parâmetros de consulta GET e JSON em POST.
Parâmetros JSON do POST
Parâmetro
Tipo
Obrigatório
Padrão
Descrição
Parâmetrotype
Tipostring
ObrigatórioSim
Padrão—
DescriçãoCategoria de entrada: name, email ou username.
Parâmetrovalue
Tipostring
ObrigatórioSim
Padrão—
DescriçãoObrigatório. 1–254 caracteres; não pode estar em branco nem conter caracteres de controle. Valores de e-mail precisam ter sintaxe de e-mail válida.
Parâmetrocountry
Tipostring
ObrigatórioNão
Padrão—
DescriçãoCódigo ISO 3166-1 alfa-2 opcional em maiúsculas, por exemplo TR ou US. A consulta específica do país pode recorrer ao conjunto de dados global.
ParâmetroforceToGenderize
Tipoboolean
ObrigatórioNão
Padrãofalse
DescriçãoConsulta primeiro o conjunto de dados e, se não houver resultado, usa a IA com interpretação de apelidos. Aceito em name, email e username.
Parâmetrooptions
Tipoobject
ObrigatórioNão
Padrão—
DescriçãoObjeto com as opções de IA de cada entrada.
Parâmetrooptions.ai_mode
Tipostring
ObrigatórioNão
Padrãofallback
DescriçãoValores permitidos: off, fallback, always. Com forceToGenderize: true, omita este campo ou use fallback.
Parâmetroid
Tipostring
ObrigatórioNão
Padrão—
DescriçãoIdentificador opcional de 1 a 64 caracteres no JSON do POST. É retornado junto com cada resultado do lote e deve ser único dentro do lote. Em previsões individuais, é aceito, mas não é devolvido. Não é aceito em consultas GET.
Um travessão (—) indica que não há valor padrão. Omita entradas opcionais não usadas; não envie null. Os exemplos de resposta são ilustrativos, não valores padrão. “Pode ser null” significa que o campo pode conter JSON null; um campo omitido é descrito separadamente.
Omita os campos opcionais quando não forem usados; não envie null nem strings vazias no lugar de country ou options. Booleanos JSON devem ser true ou false, não strings. Texto UTF-8 é aceito; não é necessário transliterar nomes para ASCII.
Parâmetros de consulta GET
Parâmetro
Tipo
Obrigatório
Padrão
Descrição
Parâmetrotype
Tipostring
ObrigatórioNão
Padrãoname
DescriçãoCategoria de entrada: name, email ou username.
Parâmetrovalue
Tipostring
ObrigatórioSim
Padrão—
DescriçãoObrigatório. 1–254 caracteres; não pode estar em branco nem conter caracteres de controle. Valores de e-mail precisam ter sintaxe de e-mail válida.
Parâmetrocountry
Tipostring
ObrigatórioNão
Padrão—
DescriçãoCódigo ISO 3166-1 alfa-2 opcional em maiúsculas, por exemplo TR ou US. A consulta específica do país pode recorrer ao conjunto de dados global.
ParâmetroforceToGenderize
Tipoboolean
ObrigatórioNão
Padrãofalse
DescriçãoConsulta primeiro o conjunto de dados e, se não houver resultado, usa a IA com interpretação de apelidos. Aceito em name, email e username.
Parâmetroai_mode
Tipostring
ObrigatórioNão
Padrãofallback
DescriçãoValores permitidos: off, fallback, always. Com forceToGenderize: true, omita este campo ou use fallback.
Parâmetrokey
Tipostring
ObrigatórioNão
Padrão—
DescriçãoChave de API existente para requisições GET. Prefira o cabeçalho Authorization; chaves ausentes ou desconhecidas usam o teste por IP.
Em GET, type, value, country, forceToGenderize e ai_mode vão diretamente na query string, além de key opcional. Codifique os valores com o codificador de parâmetros de URL do seu cliente HTTP; por exemplo, @ vira %40. Para booleanos em GET, envie true ou false. Campos desconhecidos e valores inválidos são rejeitados.
Antes de enviar a requisição
Envie JSON para POST https://api.genderapi.io/api/v2/gender. Use sua chave de API existente em Authorization: Bearer YOUR_API_KEY e Content-Type: application/json. Cada requisição é processada de forma independente.
Escolha sua linguagem no exemplo de código. Defina GENDERAPI_API_KEY no ambiente do processo antes de executá-lo. Chaves ausentes ou não reconhecidas podem usar o teste por IP compartilhado; por isso, confirme que meta.access.mode é api_key ao integrar uma conta.
Este exemplo usa os campos de requisição compartilhados para uma consulta por nome. Altere type e value para um e-mail ou nome de usuário, ou defina options.ai_mode e forceToGenderize como descrito acima.
Escolha uma linguagem de programação.Configure sua chave de API, depois execute o exemplo no seu servidor.
Cada requisição de previsão é uma nova operação cobrada, inclusive as novas tentativas. Estes exemplos não fazem novas tentativas automaticamente. Verifique o status da cobrança antes de enviar outra requisição.
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")body = json.loads("{\"type\":\"name\",\"value\":\"João\",\"country\":\"BR\"}")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/gender", method="POST", data=json.dumps(body).encode("utf-8"), headers={ "Authorization": "Bearer " + api_key, "Content-Type": "application/json", },)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.Post, "https://api.genderapi.io/api/v2/gender");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);request.Content = new StringContent("{\"type\":\"name\",\"value\":\"João\",\"country\":\"BR\"}", Encoding.UTF8, "application/json");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.}