Wysyłaj type i value do GenderAPI.io V2. Porównaj parametry zapytania GET z treścią JSON w POST, w tym country, tryby AI (ai_mode) i forceToGenderize.
Parametry JSON dla POST
Parametr
Typ
Wymagany
Wartość domyślna
Opis
Parametrtype
Typstring
WymaganyTak
Wartość domyślna—
OpisKategoria danych wejściowych: name, email lub username.
Parametrvalue
Typstring
WymaganyTak
Wartość domyślna—
OpisWymagane. 1–254 znaki; wartość niepusta, bez znaków sterujących. Wartość typu email musi mieć poprawną składnię adresu e-mail.
Parametrcountry
Typstring
WymaganyNie
Wartość domyślna—
OpisOpcjonalny kod ISO 3166-1 alpha-2 zapisany wielkimi literami, na przykład TR lub US. Wyszukiwanie dla konkretnego kraju może przejść na globalny zbiór danych.
ParametrforceToGenderize
Typboolean
WymaganyNie
Wartość domyślnafalse
OpisNajpierw sprawdza zbiór danych, a przy braku wyniku używa AI uwzględniającej pseudonimy. Obsługiwane dla name, email i username.
Parametroptions
Typobject
WymaganyNie
Wartość domyślna—
OpisObiekt z opcjami AI dla danego wejścia.
Parametroptions.ai_mode
Typstring
WymaganyNie
Wartość domyślnafallback
OpisDozwolone wartości: off, fallback, always. Przy forceToGenderize: true pomiń pole lub użyj fallback.
Parametrid
Typstring
WymaganyNie
Wartość domyślna—
OpisOpcjonalny identyfikator o długości 1–64 znaków w treści JSON zapytania POST. Zwracany obok każdego wyniku partii; musi być unikalny w obrębie partii. Akceptowany, ale niezwracany w pojedynczych prognozach. Nieobsługiwany w zapytaniach GET.
Myślnik (—) oznacza brak wartości domyślnej. Pomijaj nieużywane opcjonalne dane wejściowe; nie wysyłaj null. Przykłady odpowiedzi mają charakter poglądowy i nie są wartościami domyślnymi. „Dopuszcza null” oznacza, że pole może zawierać JSON null; pominięcie pola opisano osobno.
Pomiń nieużywane pola opcjonalne; nie wysyłaj null ani pustych ciągów znaków zamiast country lub options. Wartości logiczne JSON muszą mieć postać true lub false, a nie ciągów znaków. Tekst UTF-8 jest obsługiwany; imion nie trzeba transliterować do ASCII.
Parametry zapytania GET
Parametr
Typ
Wymagany
Wartość domyślna
Opis
Parametrtype
Typstring
WymaganyNie
Wartość domyślnaname
OpisKategoria danych wejściowych: name, email lub username.
Parametrvalue
Typstring
WymaganyTak
Wartość domyślna—
OpisWymagane. 1–254 znaki; wartość niepusta, bez znaków sterujących. Wartość typu email musi mieć poprawną składnię adresu e-mail.
Parametrcountry
Typstring
WymaganyNie
Wartość domyślna—
OpisOpcjonalny kod ISO 3166-1 alpha-2 zapisany wielkimi literami, na przykład TR lub US. Wyszukiwanie dla konkretnego kraju może przejść na globalny zbiór danych.
ParametrforceToGenderize
Typboolean
WymaganyNie
Wartość domyślnafalse
OpisNajpierw sprawdza zbiór danych, a przy braku wyniku używa AI uwzględniającej pseudonimy. Obsługiwane dla name, email i username.
Parametrai_mode
Typstring
WymaganyNie
Wartość domyślnafallback
OpisDozwolone wartości: off, fallback, always. Przy forceToGenderize: true pomiń pole lub użyj fallback.
Parametrkey
Typstring
WymaganyNie
Wartość domyślna—
OpisIstniejący klucz API dla zapytań GET. Preferuj nagłówek Authorization; brakujący lub nieznany klucz powoduje użycie próby dla adresu IP.
GET przyjmuje type, value, country, forceToGenderize i ai_mode bezpośrednio w ciągu zapytania (query string), a także opcjonalny key. Koduj wartości za pomocą kodera parametrów URL swojego klienta HTTP; na przykład @ zamienia się w %40. W GET przekazuj wartości logiczne jako true lub false. Nieznane pola i nieprawidłowe wartości są odrzucane.
Przed wysłaniem zapytania
Wysyłaj zapytania o prognozy GenderAPI.io V2 do POST https://api.genderapi.io/api/v2/gender, z type i value w treści JSON. Użyj istniejącego klucza GenderAPI.io w Authorization: Bearer YOUR_API_KEY oraz Content-Type: application/json. Wynik odczytasz w data, a informacje o dostępie i rozliczeniach w meta. Każde zapytanie jest przetwarzane niezależnie.
Wybierz język programowania w przykładzie kodu. Przed uruchomieniem ustaw GENDERAPI_API_KEY w środowisku procesu. Brakujący lub nierozpoznany klucz może spowodować użycie współdzielonej próby dla adresu IP, dlatego przy integracji konta upewnij się, że meta.access.mode ma wartość api_key.
Przykłady zapytań w różnych językach programowania
W tym przykładzie użyto wspólnych pól zapytania do wyszukania imienia. Zmień type i value, aby wysłać adres e-mail lub nazwę użytkownika, albo ustaw options.ai_mode i forceToGenderize zgodnie z opisem powyżej.
Wybierz język programowania.Skonfiguruj klucz API, następnie uruchom przykład na swoim serwerze.
Każde zapytanie o prognozę, łącznie z ponownymi próbami, jest nową płatną operacją. Te przykłady nie ponawiają zapytań automatycznie. Przed wysłaniem kolejnego zapytania sprawdź status rozliczenia.
Zanim uruchomisz: dostęp i obsługa błędów
Uruchamiaj te przykłady na swoim serwerze. Ustaw w środowisku procesu zmienną GENDERAPI_API_KEY na swój istniejący klucz API. Upewnij się, że meta.access.mode ma wartość api_key: nierozpoznany klucz może spowodować przejście na próbę dla adresu IP.
W przypadku odpowiedzi JSON z kodem HTTP 4xx i 5xx przykłady zachowują treść błędu i zwracają niezerowy kod wyjścia. Przed ponowną próbą sprawdź code, action i meta.usage.billing_status.
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\":\"Krzysztof\",\"country\":\"PL\"}")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\":\"Krzysztof\",\"country\":\"PL\"}", 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.}