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.
Płeć na podstawie imienia
| Parametr | Typ | Wymagany | Wartość domyślna | Opis |
|---|---|---|---|---|
type | string | Tak | — | Kategoria danych wejściowych: name, email lub username. |
value | string | Tak | — | Wymagane. 1–254 znaki; wartość niepusta, bez znaków sterujących. Wartość typu email musi mieć poprawną składnię adresu e-mail. |
country | string | Nie | — | Opcjonalny 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. |
forceToGenderize | boolean | Nie | false | Najpierw sprawdza zbiór danych, a przy braku wyniku używa AI uwzględniającej pseudonimy. Obsługiwane dla name, email i username. |
options | object | Nie | — | Obiekt z opcjami AI dla danego wejścia. |
options.ai_mode | string | Nie | fallback | Dozwolone wartości: off, fallback, always. Przy forceToGenderize: true pomiń pole lub użyj fallback. |
id | string | Nie | — | Opcjonalny 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. |
W przypadku imienia lub imienia i nazwiska wyślij type: name i całą wartość w value do POST https://api.genderapi.io/api/v2/gender. GenderAPI.io V2 używa tych samych pól zapytania dla obu formatów. Pomyślna odpowiedź może mimo to zawierać data.gender: null. Pojedyncze zapytania najpierw sprawdzają zbiór danych, a jeśli nie da się ustalić płci, domyślnie przechodzą na AI.
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.
Przewodnik po błędach i ponawianiu zapytań →cURL 7.76+ w powłoce POSIX. Uruchom w terminalu. Dokumentacja środowiska uruchomieniowego
Node.js 22+; wbudowany fetch. Zapisz jako example.mjs i uruchom node example.mjs. Dokumentacja środowiska uruchomieniowego
Python 3.10+; biblioteka standardowa. Zapisz jako example.py i uruchom python3 example.py. Dokumentacja środowiska uruchomieniowego
PHP 8+ z rozszerzeniem cURL. Zapisz jako example.php i uruchom php example.php. Dokumentacja środowiska uruchomieniowego
Java 17+; standardowy klient HTTP. Zapisz jako GenderApiExample.java i uruchom java GenderApiExample.java. Dokumentacja środowiska uruchomieniowego
Aplikacja konsolowa .NET 8+. Użyj jako Program.cs w projekcie konsolowym, a następnie uruchom dotnet run. Dokumentacja środowiska uruchomieniowego
Go 1.22+; biblioteka standardowa. Zapisz jako main.go i uruchom go run main.go. Dokumentacja środowiska uruchomieniowego
Przykładowa odpowiedź
To prawdziwa odpowiedź pobrana 1 października 2026 r. z użyciem klucza API; zastąpiono jedynie saldo konta. Nie jest miarą dokładności, a zapytanie na żywo może zwrócić inny wynik. Zapytania z kluczem API zwracają meta.access.mode: api_key oraz null w polach limitu dotyczących wyłącznie próby; zapytania w ramach próby dla adresu IP zwracają ip_trial. Wynik wnioskowania odczytasz w data, a wynik rozliczenia operacji w meta.usage.
{
"data": {
"input": {
"type": "name",
"value": "Krzysztof",
"country": "PL"
},
"name": "krzysztof",
"gender": "male",
"country": "PL",
"confidence": 0.9928131416837782,
"confidence_kind": "observed_frequency",
"sample_count": 974,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "krzysztof",
"method": "normalized",
"scope": "country",
"country": "PL"
}
},
"meta": {
"request_id": "a03ce9f1-da34-4c69-9dac-363e861f9ade",
"duration_ms": 11,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Pola odpowiedzi z prognozą
| Pole | Typ | Dopuszcza null | Przykład | Opis |
|---|---|---|---|---|
data.input | object | Nie | {"type":"name","value":"Krzysztof","country":"PL"} | Typ danych wejściowych, wartość i kraj. forceToGenderize jest dołączane, gdy ma wartość true. |
data.name | string | Tak | "krzysztof" | Dopasowane lub wyodrębnione imię; null, gdy nie jest dostępne. |
data.gender | string | Tak | "male" | male, female lub JSON null. To wynik wnioskowania, a nie zweryfikowana tożsamość osoby. |
data.result_status | string | Nie | "identified" | identified, gdy zwrócono płeć; w przeciwnym razie unknown. |
data.reason | string | Tak | null | null dla wyników identified. Powody wyniku nieznanego: not_found, no_name_candidate, ambiguous lub insufficient_evidence. |
data.confidence | number | Tak | 0.95 | Wynik w skali 0–1 lub null. Gdy płeć ma wartość null, pewność również jest null. |
data.confidence_kind | string | Tak | "observed_frequency" | observed_frequency: liczba wystąpień dominującej płci podzielona przez sumę w wybranym wierszu zbioru danych. model_reported: wynik AI, a nie skalibrowane prawdopodobieństwo. null, gdy wartość jest niedostępna. |
data.sample_count | integer | Tak | 1200 | Wielkość próby w zbiorze danych lub null. AI nie wymyśla liczby próbek. |
data.source | string | Nie | "dataset" | dataset, ai lub none. |
data.country | string | Tak | "PL" | Powiązanie z krajem pochodzące z dataset lub ai_association albo null. Nie określa obywatelstwa, miejsca zamieszkania ani pochodzenia etnicznego. |
data.country_source | string | Tak | "dataset" | Źródło powiązania z krajem: dataset, ai_association lub null. |
data.match | object | Nie | {"name":"krzysztof","method":"normalized","scope":"country","country":"PL"} | Dopasowane imię ze zbioru danych, metoda (normalized, token, substring lub model_inference), zakres country lub global oraz dopasowany kraj. Niedostępne informacje o dopasowaniu mają wartość null. |
Metadane dostępu, rozliczenia i zapytania
| Pole | Typ | Dopuszcza null | Przykład | Opis |
|---|---|---|---|---|
meta.request_id | string | Nie | "550e8400-e29b-41d4-a716-446655440000" | Unikalny identyfikator tej próby HTTP; wysyłany także w X-Request-ID. |
meta.duration_ms | integer | Nie | 42 | Czas przetwarzania zapytania w milisekundach. |
meta.access.mode | string | Nie | "api_key" | api_key, ip_trial lub unauthenticated. Korzystając z płatnego konta, sprawdź api_key. |
meta.access.reason | string | Tak | null | Powód przejścia na próbę: api_key_missing, api_key_invalid lub api_key_not_found; w pozostałych przypadkach null. |
meta.usage.charged_credits | integer | Tak | 1 | Liczba pobranych kredytów netto. Zero przed pobraniem lub po potwierdzonym pełnym zwrocie; null, gdy rozliczenie jest niepotwierdzone. |
meta.usage.remaining_credits | integer | Tak | 99 | Saldo po zakończeniu operacji. Może być ujemne; null, gdy saldo jest niedostępne lub rozliczenie jest niepotwierdzone. |
meta.usage.billing_status | string | Nie | "confirmed" | not_charged, confirmed lub unconfirmed. Sprawdź to pole przed ponowieniem nieudanej prognozy. |
meta.usage.resets_at | string | Tak | "2026-09-27T12:00:00.000Z" | Czas odnowienia próby dla adresu IP w UTC (ISO 8601); null dla kont z kluczem API lub gdy nie jest znany. |
meta.usage.limit | integer | Tak | 10 | Limit kredytów próby dla adresu IP; null dla kont z kluczem API. |
meta.usage.period_seconds | integer | Tak | 86400 | Okres próby dla adresu IP w sekundach; null dla kont z kluczem API. |
Kontekst kraju i nieznane imiona
Podawaj kraj (country) tylko wtedy, gdy masz istotny kontekst. API może wybrać wiersz zbioru danych dla konkretnego kraju lub przejść na wiersz globalny. data.match.scope pokazuje, który został wybrany; zwrócony kraj nie oznacza, że dana osoba w nim mieszka.
Domyślnie pojedyncze zapytanie przechodzi na AI, co kosztuje łącznie 1 kredyt. Aby korzystać tylko ze zbioru danych, wyślij options: {"ai_mode": "off"}. Nierozstrzygnięte dane wejściowe mogą zwrócić gender: null i nadal podlegają opłacie, jeśli operacja zakończy się powodzeniem. Imię i nazwisko może zostać dopasowane do jednego ze składników; data.match zawiera wybranego kandydata i metodę dopasowania.
W przypadku wartości name przypominających pseudonim forceToGenderize: true pozwala na wnioskowanie bez prawdziwego imienia: wynik rozstrzygnięty w zbiorze danych kosztuje 1 kredyt, a w przeciwnym razie AI uwzględniająca pseudonimy kosztuje łącznie 2 kredyty. Wystarczy dodatnie saldo początkowe, a saldo końcowe może być ujemne.
Wyszukiwanie po imieniu i nazwisku bez zakładania, że liczy się pierwsze słowo
Wyślij imię i nazwisko w oryginalnej postaci Unicode. Dopasowanie w zbiorze danych stosuje normalizację NFKC, zamianę na małe litery i wyodrębnianie składników, więc nie musisz zamieniać imienia na ASCII. Spośród dostępnych kandydatów API wybiera rekord o największej zapisanej łącznej liczbie wystąpień. Może to być dalszy składnik imienia i nazwiska, dlatego nie zakładaj, że wybrane zostało pierwsze słowo ani imię.
To zapytanie korzystające tylko ze zbioru danych ułatwia sprawdzenie, na jakiej podstawie wybrano wynik. Odczytaj data.input.value, aby zobaczyć przesłane imię i nazwisko, data.match.name, aby poznać wyszukiwanego kandydata, oraz data.match.method, aby poznać metodę dopasowania. Przykład nie gwarantuje określonej płci ani wybranego składnika. Kandydaci ze zbioru danych muszą mieć więcej niż dwa znaki, więc krótkie dane wejściowe mogą pozostać nierozstrzygnięte. Włącz standardowe przejście na AI, jeśli taka dodatkowa inferencja jest odpowiednia dla Twojej aplikacji.
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.
Przewodnik po błędach i ponawianiu zapytań →cURL 7.76+ w powłoce POSIX. Uruchom w terminalu. Dokumentacja środowiska uruchomieniowego
Node.js 22+; wbudowany fetch. Zapisz jako example.mjs i uruchom node example.mjs. Dokumentacja środowiska uruchomieniowego
Python 3.10+; biblioteka standardowa. Zapisz jako example.py i uruchom python3 example.py. Dokumentacja środowiska uruchomieniowego
PHP 8+ z rozszerzeniem cURL. Zapisz jako example.php i uruchom php example.php. Dokumentacja środowiska uruchomieniowego
Java 17+; standardowy klient HTTP. Zapisz jako GenderApiExample.java i uruchom java GenderApiExample.java. Dokumentacja środowiska uruchomieniowego
Aplikacja konsolowa .NET 8+. Użyj jako Program.cs w projekcie konsolowym, a następnie uruchom dotnet run. Dokumentacja środowiska uruchomieniowego
Go 1.22+; biblioteka standardowa. Zapisz jako main.go i uruchom go run main.go. Dokumentacja środowiska uruchomieniowego
Sprawdź, który kontekst kraju faktycznie wpłynął na wynik
Podawaj kod kraju ISO tylko wtedy, gdy masz odpowiedni kontekst; nie wyprowadzaj go z prognozowanego wyniku. Dla każdego kandydata dostępny wiersz kraju ma pierwszeństwo przed wierszem globalnym. Jeśli wiersz kraju nie istnieje, kandydat może użyć wiersza globalnego. Wiersz kraju z równą liczbą wystąpień obu płci nie jest zastępowany wierszem globalnym: jeśli wybrany wiersz ma taki remis, wynik ze zbioru danych to unknown i może zostać uruchomione włączone przejście na AI.
| Informacja w odpowiedzi | Interpretacja | Działanie w aplikacji |
|---|---|---|
| match.scope: country; match.country: TR | Wybrany kandydat ze zbioru danych pochodzi z wiersza żądanego kraju. | Zapisz wybranego kandydata i zakres kraju razem z prognozą. |
| match.scope: global; match.country: null | Wybrany kandydat pochodzi z wiersza globalnego, nawet jeśli zapytanie zawierało kraj. | Nie oznaczaj wyniku jako dopasowania dla konkretnego kraju. |
| country_source: dataset lub ai_association | Wyjaśnia pochodzenie data.country, a nie zakres wyszukiwania w zbiorze danych ani narodowość osoby. | Odczytuj je niezależnie od match.country; żadne z tych pól nie potwierdza miejsca zamieszkania ani narodowości. |
| source: ai; match.scope: null | Ostateczną odpowiedź wygenerowała AI, więc w tej odpowiedzi nie ma wybranego wiersza zbioru danych. | Stosuj wskazówki dotyczące pewności wyników AI i zachowuj wyniki unknown. |