GenderAPI.io V2: autentisering og gratis IP-prøveperiode
Autentiser GenderAPI.io V2 med din eksisterende API-nøkkel. Les om Bearer-headeren, nøkkelen i GET-forespørsler, IP-prøveperioden og JSON-forespørsler.
Autentisering og gratis IP-prøveperiode
Parameter
Type
Påkrevd
Standardverdi
Beskrivelse
ParameterAuthorization
Typestring
PåkrevdNei
Standardverdi—
BeskrivelseSend Bearer YOUR_API_KEY for å bruke en konto. Nøkler som mangler eller ikke gjenkjennes, bruker den delte IP-prøveperioden.
ParameterContent-Type
Typestring
PåkrevdBare POST
Standardverdi—
BeskrivelseSend application/json for POST-forespørsler.
Send Authorization: Bearer YOUR_API_KEY fra serveren din. Erstatt YOUR_API_KEY med din eksisterende GenderAPI-nøkkel. Begge versjonene deler saldoen din; du trenger verken et eget abonnement eller en egen nøkkel for V2.
Alle POST-forespørsler krever Content-Type: application/json. Bruk din eksisterende API-nøkkel med Bearer. Hver forespørsel behandles uavhengig; gjentatte forespørsler belastes på vanlig måte.
Bare GET /gender godtar i tillegg spørringsparameteren key. Bruk helst Authorization-headeren i integrasjoner, fordi URL-er kan bli lagret i nettleserhistorikk og logger. Ikke legg private nøkler i frontend-kode.
En nøkkel som mangler, har ugyldig format eller ikke gjenkjennes, fører til IP-prøveperioden, som deles med V1. En gjenkjent nøkkel som er deaktivert, utløpt eller begrenset, gjør ikke det. Sjekk meta.access.mode: api_key, ip_trial eller unauthenticated. Årsaken til at IP-prøveperioden brukes, er api_key_missing, api_key_invalid eller api_key_not_found. En ugyldig nøkkel kan altså gi et vellykket svar via IP-prøveperioden, så kontroller tilgangsmodusen i produksjon.
Kredittene i IP-prøveperioden tilbakestilles etter en periode på 24 timer, ikke nødvendigvis ved midnatt. Bruk /usage for å lese resets_at. Alle bak den samme offentlige IP-adressen deler denne kvoten.
Kopier API-nøkkelen fra GenderAPI-kontoen din. Erstatt YOUR_API_KEY nedenfor med denne nøkkelen, og kjør deretter eksemplet du har valgt, i den samme terminaløkten. Kommandoene setter en miljøvariabel bare for denne økten; plassholderen som vises her, er ikke en gyldig nøkkel.
I en applikasjon eller et produksjonsmiljø konfigurerer du GENDERAPI_API_KEY som en hemmelighet på serversiden. Eksemplene laster ikke inn en .env-fil automatisk. Hold nøkkelen utenfor nettleserpakker, versjonskontroll og offentlige URL-er.
Terminal på macOS / Linux
export GENDERAPI_API_KEY='YOUR_API_KEY'
Windows PowerShell
$env:GENDERAPI_API_KEY = 'YOUR_API_KEY'
Bekreft tilgangen uten å bruke kreditter
Kall GET /usage med Bearer-headeren. En gyldig kontonøkkel gir meta.access.mode: api_key. Hvis resultatet viser ip_trial, kontrollerer du den kopierte nøkkelen før du kjører prediksjoner. Denne forespørselen er gratis, også for en konto uten gjenværende kreditter.
Velg et programmeringsspråk.Konfigurer API-nøkkelen, og kjør deretter eksemplet på serveren din.
Denne saldoavlesningen koster ingen kreditter, men teller likevel mot forespørselsgrensene.
Før du kjører: tilgang og feilhåndtering
Kjør disse eksemplene på serveren din. Sett GENDERAPI_API_KEY i prosessmiljøet til din eksisterende API-nøkkel. Bekreft at meta.access.mode er api_key: en nøkkel som ikke gjenkjennes, kan føre til IP-prøveperioden.
Ved JSON-svar med HTTP 4xx og 5xx beholdes feilinnholdet, og eksemplet avsluttes med en exit-status som ikke er null. Sjekk code, action og meta.usage.billing_status før du prøver på nytt.
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.}