Uwierzytelnij GenderAPI v2 za pomocą istniejącego klucza API. Naucz się nagłówków Bearer, kluczy zapytań GET, dostępu próbnego IP i żądań JSON.
Uwierzytelnianie i bezpłatny okres próbny
Wyślij Authorization: Bearer YOUR_API_KEY ze swojego serwera. Zamień YOUR_API_KEY na istniejący klucz GenderAPI. Obie wersje dzielą Twoje saldo; nie jest wymagana osobna subskrypcja ani klucz w wersji 2.
Wszystkie żądania POST wymagają Content-Type: application/json. Użyj istniejącego klucza Bearer API. Każde żądanie jest przetwarzane niezależnie; powtarzające się żądania korzystają z normalnego rozliczenia.
Tylko GET /gender akceptuje również parametr zapytania klucza. Preferuj nagłówek Authorization dla integracji, ponieważ adresy URL mogą być przechowywane w historii i logach przeglądarki. Nie umieszczaj kluczy prywatnych w kodzie frontendu.
Jeśli brakuje klucza API, ma on nieprawidłowy format lub nie został rozpoznany, żądanie korzysta z wersji próbnej protokołu IP udostępnionej w wersji 1. Nie dotyczy to rozpoznanych kluczy, które są wyłączone, wygasły lub podlegają ograniczeniom. Sprawdź tryb dostępu w meta.access.mode: api_key, ip_trial lub unauthenticated. Powód próbny to api_key_missing, api_key_invalid lub api_key_not_found. Dlatego nieprawidłowy klucz może nadal otrzymać pomyślną odpowiedź próbną. Sprawdź tryb dostępu w środowisku produkcyjnym.
Kredyty próbne resetują się po 24 godzinach, niekoniecznie o północy. Użyj /usage, aby odczytać resets_at. Osoby stojące za tym samym publicznym IP korzystają z tego dodatku.
Skopiuj klucz API ze swojego konta GenderAPI. Zamień YOUR_API_KEY poniżej na ten klucz, a następnie uruchom wybrany przykład w tej samej sesji terminala. Te polecenia ustawiają zmienną środowiskową tylko dla tej sesji; opublikowany symbol zastępczy nie jest działającym kluczem.
W przypadku aplikacji lub wdrożenia skonfiguruj GENDERAPI_API_KEY jako sekret po stronie serwera. Przykłady nie ładują automatycznie pliku .env. Trzymaj klucz poza pakietami przeglądarek, kontrolą źródła i publicznymi adresami URL.
Terminal macOS/Linux
export GENDERAPI_API_KEY='YOUR_API_KEY'
Windows PowerShell
$env:GENDERAPI_API_KEY = 'YOUR_API_KEY'
Zweryfikuj dostęp bez wydawania kredytów
Wywołaj GET /usage z nagłówkiem Bearer. Prawidłowy klucz konta generuje meta.access.mode: api_key. Jeśli wynik to ip_trial, sprawdź skopiowany klucz przed uruchomieniem prognoz. To żądanie jest bezpłatne, także w przypadku konta bez pozostałych środków.
Wybierz język programowania.Skonfiguruj klucz API, następnie uruchom przykład na swoim serwerze.
Odczyt salda nie kosztuje żadnych kredytów. Nadal wlicza się to do limitów liczby żądań.
Zanim uruchomisz: dostęp i obsługa błędów
Uruchom te przykłady na swoim serwerze. Ustaw GENDERAPI_API_KEY w środowisku procesowym na istniejący klucz API. Potwierdź, że meta.access.mode to api_key: nierozpoznany klucz może wrócić do wersji próbnej IP.
Odpowiedzi HTTP 4xx i 5xx JSON zachowują treść błędu i zwracają niezerowy status 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")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.}