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
| 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. |
Per un nome o un nome completo, invia type: name e l'input completo in value a POST https://api.genderapi.io/api/v2/gender. GenderAPI.io V2 usa gli stessi campi di richiesta per entrambi i formati. Anche una risposta riuscita può contenere data.gender: null. Le richieste singole consultano prima il set di dati e, per impostazione predefinita, usano l'IA quando da lì non è possibile determinare un genere.
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": "name",
"value": "Lorenzo",
"country": "IT"
},
"name": "lorenzo",
"gender": "male",
"country": "IT",
"confidence": 0.996386630532972,
"confidence_kind": "observed_frequency",
"sample_count": 3321,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "lorenzo",
"method": "normalized",
"scope": "country",
"country": "IT"
}
},
"meta": {
"request_id": "a1bda295-3045-4caa-8aa8-a461859ea5b3",
"duration_ms": 12,
"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. |
Contesto del paese e nomi sconosciuti
Indica country solo se disponi di un contesto pertinente. L'API può selezionare una riga del set di dati specifica per il paese o ricorrere a una riga globale. data.match.scope indica quale è stata selezionata; il paese restituito non stabilisce dove vive la persona.
Per impostazione predefinita le richieste singole usano il fallback IA, per 1 credito in totale. Per usare solo il set di dati, invia options: {"ai_mode": "off"}. Gli input non risolti possono restituire gender: null e vengono comunque addebitati se l'operazione riesce. Un nome completo può trovare corrispondenza tramite una delle sue parti; data.match riporta il candidato selezionato e il metodo di corrispondenza.
Per valori di tipo name simili a un nickname, forceToGenderize: true consente una previsione senza un vero nome proprio: un risultato trovato nel set di dati costa 1 credito, altrimenti l'IA con interpretazione dei nickname costa 2 crediti in totale. Basta un saldo iniziale positivo e il saldo risultante può diventare negativo.
Cercare un nome completo senza dare per scontato che conti la prima parola
Invia il nome originale in Unicode. La corrispondenza con il set di dati usa la normalizzazione NFKC, le lettere minuscole e l'estrazione delle parti del nome; non devi convertire il nome in ASCII. Tra i candidati disponibili, l'API sceglie la voce del set di dati con il conteggio totale memorizzato più alto. Il candidato può essere una parte successiva del nome, quindi non dare per scontato che sia stata scelta la prima parola o il nome proprio.
Questa richiesta usa solo il set di dati, così è più facile verificare le evidenze selezionate. Leggi data.input.value per il nome completo inviato, data.match.name per il candidato cercato e data.match.method per il metodo di corrispondenza. L'esempio non promette un genere specifico né una determinata parte del nome selezionata. I candidati del set di dati devono avere più di due caratteri e gli input brevi possono restare senza risultato. Usa il normale fallback IA quando la previsione aggiuntiva è adatta alla tua applicazione.
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
Verificare quale contesto del paese ha contribuito davvero
Usa un codice paese ISO solo se disponi di un contesto pertinente; non ricavarlo dal risultato previsto. Per ogni candidato, una riga del paese esistente ha la precedenza sulla riga globale dello stesso candidato. Se non esiste una riga del paese, il candidato può usare una riga globale. Una riga del paese in parità non viene sostituita dalla sua riga globale: se la riga selezionata è in parità, il risultato del set di dati è unknown e può intervenire un fallback IA attivato.
| Evidenza nella risposta | Interpretazione | Azione nell'applicazione |
|---|---|---|
| match.scope: country; match.country: TR | Il candidato selezionato nel set di dati proviene dalla riga del paese indicato nella richiesta. | Salva il candidato selezionato e l'ambito del paese insieme alla previsione. |
| match.scope: global; match.country: null | Il candidato selezionato proviene da una riga globale, anche se la richiesta indicava un paese. | Non contrassegnare il risultato come corrispondenza specifica per il paese. |
| country_source: dataset o ai_association | Spiega l'origine di data.country, non l'ambito della ricerca nel set di dati né la nazionalità della persona. | Leggi questo campo separatamente da match.country; nessuno dei due conferma residenza o nazionalità. |
| source: ai; match.scope: null | La risposta finale proviene dall'IA, quindi non contiene una riga selezionata del set di dati. | Segui le indicazioni sulla confidenza per i risultati dell'IA e conserva i risultati sconosciuti. |