Prima di inviare la richiesta
Invia le richieste di previsione a GenderAPI.io V2 con POST https://api.genderapi.io/api/v2/gender, indicando type e value nel corpo JSON. Usa la tua chiave GenderAPI.io esistente in Authorization: Bearer YOUR_API_KEY e Content-Type: application/json. Leggi il risultato in data e le informazioni su accesso e addebito in meta. Ogni richiesta viene elaborata in modo indipendente.
Scegli il linguaggio di programmazione nell'esempio di codice. Imposta GENDERAPI_API_KEY nell'ambiente del processo prima di eseguirlo. Le chiavi mancanti o non riconosciute possono usare la prova IP condivisa: quando integri un account, verifica quindi che meta.access.mode sia api_key.
Genere da un nome utente o da un nickname
| Parametro | Tipo | Obbligatorio | Valore predefinito | Descrizione |
|---|---|---|---|---|
type | string | Sì | — | Categoria di input: name, email o username. |
value | string | Sì | — | Obbligatorio. 1–254 caratteri; non vuoto e senza caratteri di controllo. I valori email devono avere una sintassi email valida. |
country | string | No | — | Codice ISO 3166-1 alpha-2 facoltativo, in maiuscolo, ad esempio TR o US. Una ricerca specifica per paese può ricorrere al set di dati globale. |
forceToGenderize | boolean | No | false | Consulta prima il set di dati, poi l'IA con interpretazione dei nickname se non c'è un risultato. Supportato per name, email e username. |
options | object | No | — | Oggetto con le opzioni IA per ciascun input. |
options.ai_mode | string | No | fallback | Valori ammessi: off, fallback, always. Con forceToGenderize: true, ometti questo campo o usa fallback. |
id | string | No | — | Identificatore facoltativo di 1–64 caratteri nel JSON POST. Viene restituito accanto al rispettivo risultato del batch e deve essere univoco all'interno del batch. Accettato ma non restituito per le previsioni singole. Non supportato nelle query GET. |
Invia type: username e il nome utente o nickname in value a POST https://api.genderapi.io/api/v2/gender. Imposta forceToGenderize su true se vuoi tentare una previsione in base al significato di un nickname come prenses, anche quando non è possibile estrarre un vero nome proprio. GenderAPI.io V2 consulta comunque prima il set di dati. Una previsione basata su un nickname può restituire un data.gender diverso da null con data.name: null.
Scegli un linguaggio di programmazione. Configura la tua chiave API, poi esegui l'esempio sul tuo server.
Ogni richiesta di previsione è una nuova operazione a pagamento, anche quando è un nuovo tentativo. Questi esempi non riprovano automaticamente. Controlla lo stato dell'addebito prima di inviare un'altra richiesta.
Prima dell'esecuzione: accesso e gestione degli errori
Esegui questi esempi sul tuo server. Imposta GENDERAPI_API_KEY nell'ambiente del processo con la tua chiave API esistente. Verifica che meta.access.mode sia api_key: una chiave non riconosciuta può portare alla prova IP.
Per le risposte JSON con HTTP 4xx e 5xx, il corpo dell'errore viene conservato e l'esempio termina con un codice di uscita diverso da zero. Controlla code, action e meta.usage.billing_status prima di riprovare.
Guida a errori e nuovi tentativi →cURL 7.76+ in una shell POSIX. Esegui nel terminale. Documentazione del runtime
Node.js 22+; fetch integrato. Salva come example.mjs ed esegui node example.mjs. Documentazione del runtime
Python 3.10+; libreria standard. Salva come example.py ed esegui python3 example.py. Documentazione del runtime
PHP 8+ con l'estensione cURL. Salva come example.php ed esegui php example.php. Documentazione del runtime
Java 17+; client HTTP standard. Salva come GenderApiExample.java ed esegui java GenderApiExample.java. Documentazione del runtime
Applicazione console .NET 8+. Usalo come Program.cs in un progetto console, poi esegui dotnet run. Documentazione del runtime
Go 1.22+; libreria standard. Salva come main.go ed esegui go run main.go. Documentazione del runtime
Esempio di risposta
Questa è una risposta reale acquisita il 1° ottobre 2026 con una chiave API; è stato sostituito solo il saldo dell'account. Non è una misura dell'accuratezza e una richiesta in tempo reale può restituire un risultato diverso. Le richieste con chiave API riportano meta.access.mode: api_key e null nei campi di quota validi solo per la prova; le richieste tramite prova IP riportano ip_trial. Leggi data per la previsione e meta.usage per l'esito dell'addebito dell'operazione.
{
"data": {
"input": {
"type": "username",
"value": "prenses",
"country": "TR",
"forceToGenderize": true
},
"name": "prenses",
"gender": "female",
"country": "TR",
"confidence": 0.9456521739130435,
"confidence_kind": "observed_frequency",
"sample_count": 184,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "prenses",
"method": "normalized",
"scope": "country",
"country": "TR"
}
},
"meta": {
"request_id": "a799faa4-bc1a-4537-90b3-2c1b60205499",
"duration_ms": 15,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Campi della risposta di previsione
| Campo | Tipo | Può essere null | Esempio | Descrizione |
|---|---|---|---|---|
data.input | object | No | {"type":"name","value":"Lorenzo","country":"IT"} | Tipo di input, valore e paese. forceToGenderize è incluso quando è true. |
data.name | string | Sì | "lorenzo" | Nome proprio trovato o estratto; null se non disponibile. |
data.gender | string | Sì | "male" | male, female o JSON null. Una previsione, non un'identità personale verificata. |
data.result_status | string | No | "identified" | identified se viene restituito un genere; altrimenti unknown. |
data.reason | string | Sì | null | null per i risultati identified. Motivi per unknown: not_found, no_name_candidate, ambiguous o insufficient_evidence. |
data.confidence | number | Sì | 0.95 | Valore da 0 a 1 oppure null. Se gender è null, anche la confidenza è null. |
data.confidence_kind | string | Sì | "observed_frequency" | observed_frequency: conteggio dominante nel set di dati diviso per il totale. model_reported: valore fornito dall'IA, non una probabilità calibrata. null se non disponibile. |
data.sample_count | integer | Sì | 1200 | Dimensione del campione nel set di dati oppure null. L'IA non inventa un conteggio dei campioni. |
data.source | string | No | "dataset" | dataset, ai o none. |
data.country | string | Sì | "IT" | Associazione al paese da dataset o ai_association, oppure null. Non stabilisce nazionalità, residenza né origine etnica. |
data.country_source | string | Sì | "dataset" | Origine dell'associazione al paese: dataset, ai_association o null. |
data.match | object | No | {"name":"lorenzo","method":"normalized","scope":"country","country":"IT"} | Nome trovato nel set di dati, metodo (normalized, token, substring o model_inference), ambito country o global e paese associato. Le evidenze non disponibili sono null. |
Metadati di accesso, addebito e richiesta
| Campo | Tipo | Può essere null | Esempio | Descrizione |
|---|---|---|---|---|
meta.request_id | string | No | "550e8400-e29b-41d4-a716-446655440000" | Identificatore univoco di questo tentativo HTTP; inviato anche in X-Request-ID. |
meta.duration_ms | integer | No | 42 | Tempo di elaborazione della richiesta in millisecondi. |
meta.access.mode | string | No | "api_key" | api_key, ip_trial o unauthenticated. Con un account a pagamento verifica che venga riportato api_key. |
meta.access.reason | string | Sì | null | Motivo del passaggio alla prova IP: api_key_missing, api_key_invalid o api_key_not_found; altrimenti null. |
meta.usage.charged_credits | integer | Sì | 1 | Crediti netti addebitati. Zero prima dell'addebito o dopo un rimborso completo confermato; null se l'addebito non è confermato. |
meta.usage.remaining_credits | integer | Sì | 99 | Saldo al termine dell'operazione. Può essere negativo; null se non disponibile o se l'addebito non è confermato. |
meta.usage.billing_status | string | No | "confirmed" | not_charged, confirmed o unconfirmed. Controllalo prima di ripetere una previsione non riuscita. |
meta.usage.resets_at | string | Sì | "2026-09-27T12:00:00.000Z" | Momento del ripristino della prova IP in UTC (ISO 8601); null per gli account con chiave API o se sconosciuto. |
meta.usage.limit | integer | Sì | 10 | Quota della prova IP; null per gli account con chiave API. |
meta.usage.period_seconds | integer | Sì | 86400 | Durata del periodo della prova IP in secondi; null per gli account con chiave API. |
Leggere una previsione basata su un nickname
L'esempio usa forceToGenderize: true. Una ricerca risolta nel set di dati costa 1 credito. Altrimenti l'API chiede all'IA di interpretare l'alias e addebita 2 crediti in totale per un'operazione riuscita, anche con un risultato sconosciuto. Ometti ai_mode o impostalo su fallback; off e always sono incompatibili con forceToGenderize e restituiscono 422.
In modalità nickname è ammesso un genere previsto con name: null. Significa che non è stato estratto un vero nome proprio; non è un errore di analisi. Quando viene restituito un genere, i risultati dell'IA hanno sample_count: null e confidence_kind: model_reported. Il valore non è una probabilità calibrata né un'identità verificata.
Senza forceToGenderize, anche una ricerca singola per nome utente usa per impostazione predefinita il normale fallback IA per 1 credito in totale, ma richiede un vero nome proprio utilizzabile. Usa options.ai_mode: off per un'elaborazione basata solo sul set di dati.