Referanse for feltene type, value, country, forceToGenderize og ai_mode i GenderAPI.io V2, med forskjellene mellom GET-spørringer og JSON i POST.
JSON-parametere for POST
Parameter
Type
Påkrevd
Standardverdi
Beskrivelse
Parametertype
Typestring
PåkrevdJa
Standardverdi—
BeskrivelseInndatakategori: name, email eller username.
Parametervalue
Typestring
PåkrevdJa
Standardverdi—
BeskrivelsePåkrevd. 1–254 tegn; ikke tom og uten kontrolltegn. E-postverdier må ha gyldig e-postsyntaks.
Parametercountry
Typestring
PåkrevdNei
Standardverdi—
BeskrivelseValgfri ISO 3166-1 alpha-2-kode med store bokstaver, for eksempel TR eller US. Et landspesifikt oppslag kan falle tilbake til det globale datasettet.
ParameterforceToGenderize
Typeboolean
PåkrevdNei
Standardverdifalse
BeskrivelseSøk først i datasettet, deretter med KI som tolker kallenavn hvis det ikke finnes et resultat. Støttes for name, email og username.
Parameteroptions
Typeobject
PåkrevdNei
Standardverdi—
BeskrivelseObjekt for KI-alternativer per inndata.
Parameteroptions.ai_mode
Typestring
PåkrevdNei
Standardverdifallback
BeskrivelseTillatte verdier: off, fallback, always. Med forceToGenderize: true utelater du feltet eller bruker fallback.
Parameterid
Typestring
PåkrevdNei
Standardverdi—
BeskrivelseValgfri identifikator på 1–64 tegn i POST-JSON. Returneres sammen med hvert resultat i en samleforespørsel og må være unik innenfor samleforespørselen. Godtas, men returneres ikke for enkeltprediksjoner. Støttes ikke i GET-spørringer.
En tankestrek (—) betyr at ingen standardverdi er satt. Utelat valgfrie inndata som ikke brukes; ikke send null. Svareksemplene er illustrasjoner, ikke standardverdier. «Kan være null» betyr at feltet kan inneholde JSON null; et felt som utelates, beskrives separat.
Utelat valgfrie felt som ikke brukes; ikke send null eller tomme strenger i stedet for country eller options. Boolske JSON-verdier må være true eller false, ikke strenger. UTF-8-tekst støttes; navn trenger ikke translittereres til ASCII.
Spørringsparametere for GET
Parameter
Type
Påkrevd
Standardverdi
Beskrivelse
Parametertype
Typestring
PåkrevdNei
Standardverdiname
BeskrivelseInndatakategori: name, email eller username.
Parametervalue
Typestring
PåkrevdJa
Standardverdi—
BeskrivelsePåkrevd. 1–254 tegn; ikke tom og uten kontrolltegn. E-postverdier må ha gyldig e-postsyntaks.
Parametercountry
Typestring
PåkrevdNei
Standardverdi—
BeskrivelseValgfri ISO 3166-1 alpha-2-kode med store bokstaver, for eksempel TR eller US. Et landspesifikt oppslag kan falle tilbake til det globale datasettet.
ParameterforceToGenderize
Typeboolean
PåkrevdNei
Standardverdifalse
BeskrivelseSøk først i datasettet, deretter med KI som tolker kallenavn hvis det ikke finnes et resultat. Støttes for name, email og username.
Parameterai_mode
Typestring
PåkrevdNei
Standardverdifallback
BeskrivelseTillatte verdier: off, fallback, always. Med forceToGenderize: true utelater du feltet eller bruker fallback.
Parameterkey
Typestring
PåkrevdNei
Standardverdi—
BeskrivelseEksisterende API-nøkkel for GET-forespørsler. Bruk helst Authorization-headeren; nøkler som mangler eller ikke gjenkjennes, bruker IP-prøveperioden.
GET bruker type, value, country, forceToGenderize og ai_mode direkte i spørringsstrengen, i tillegg til den valgfrie key. Kod verdiene med URL-parameterkoderen i HTTP-klienten din; @ blir for eksempel %40. Send true eller false for boolske verdier i GET. Ukjente felt og ugyldige verdier avvises.
Før du sender forespørselen
Send JSON til POST https://api.genderapi.io/api/v2/gender. Bruk din eksisterende API-nøkkel i Authorization: Bearer YOUR_API_KEY og Content-Type: application/json. Hver forespørsel behandles uavhengig.
Velg språk i kodeeksemplet. Sett GENDERAPI_API_KEY i prosessmiljøet før du kjører det. Nøkler som mangler eller ikke gjenkjennes, kan bruke den delte IP-prøveperioden, så bekreft at meta.access.mode er api_key når du integrerer en konto.
Dette eksemplet bruker de felles forespørselsfeltene for et navneoppslag. Endre type og value for en e-postadresse eller et brukernavn, eller angi options.ai_mode og forceToGenderize som beskrevet ovenfor.
Velg et programmeringsspråk.Konfigurer API-nøkkelen, og kjør deretter eksemplet på serveren din.
Hver prediksjonsforespørsel er en ny operasjon som belastes, også nye forsøk. Disse eksemplene prøver ikke automatisk på nytt. Sjekk belastningsstatusen før du sender en ny forespørsel.
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")body = json.loads("{\"type\":\"name\",\"value\":\"Henrik\",\"country\":\"NO\"}")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\":\"Henrik\",\"country\":\"NO\"}", 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.}