REST API -viite
Muutama päätepiste, yksi vastauksen muoto. Kaikki alla on live tilillä.
https://namegender.com/api/v1/gender
Rekisteröidy ilmaiseksi
Markdown-muoto koodiavustajille, kuten Claude Code, Cursor ja Copilot. Liitä se keskusteluun tai anna avustajalle linkki.
Pika-aloitus
Luo avain kojelaudassasi, sitten lähetä ensimmäinen pyyntösi. SDK:ta ei tarvita.
curl "https://namegender.com/api/v1/gender?name=Ay%C5%9Fe&country=TR" \
-H "Authorization: Bearer YOUR_API_KEY"
<?php
$query = http_build_query(['name' => 'Ayşe', 'country' => 'TR']);
$ch = curl_init('https://namegender.com/api/v1/gender?' . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$result = json_decode(curl_exec($ch), true);
echo $result['gender']; // female
echo $result['probability']; // 100
const params = new URLSearchParams({ name: 'Ayşe', country: 'TR' });
const response = await fetch(`https://namegender.com/api/v1/gender?${params}`, {
headers: { Authorization: 'Bearer YOUR_API_KEY' },
});
const result = await response.json();
console.log(result.gender); // "female"
console.log(result.probability); // 100
import requests
response = requests.get(
"https://namegender.com/api/v1/gender",
params={"name": "Ayşe", "country": "TR"},
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
result = response.json()
print(result["gender"]) # female
print(result["probability"]) # 100
require "net/http"
require "json"
uri = URI("https://namegender.com/api/v1/gender")
uri.query = URI.encode_www_form(name: "Ayşe", country: "TR")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)["gender"] # female
req, _ := http.NewRequest("GET", "https://namegender.com/api/v1/gender?name=Ay%C5%9Fe&country=TR", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var result struct {
Gender string `json:"gender"`
Probability int `json:"probability"`
}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result.Gender) // female
Jokainen pääteiste palauttaa saman muodon, joten voit vaihtaa syötteitä ilman jäsentämiskoodia.
Todentaminen
Jokainen pyyntö kuljettaa API-avaimesi otsikossa. Käytä oletuksena Authorization: Bearer -otsikkoa tai X-Api-Key-otsikkoa, jos HTTP-asiakkaasi varaa Authorization-otsikon muuhun käyttöön. URL-osoitteeseen sijoitettu avain hylätään: URL-osoitteet kopioituvat välityspalvelimien lokeihin, analytiikkatyökaluihin ja selaimen historiaan.
Authorization: Bearer ng_live_xxxxxxxxxxxx
Kopiointi epäonnistui. Valitse ja kopioi teksti.
X-Api-Key: ng_live_xxxxxxxxxxxx
Kopiointi epäonnistui. Valitse ja kopioi teksti.
Voit rajoittaa avainta tiettyihin IP-osoitteisiin kojelaudasta.
Asiakaskirjastot
Ohuet kääreet REST API:n ympärille. Ne lähettävät avaimesi, muodostavat jokaisen pyynnön ja muuttavat virhevastaukset poikkeuksiksi.
npm install namegender
Kopiointi epäonnistui. Valitse ja kopioi teksti.
npm install -g namegender
Kopiointi epäonnistui. Valitse ja kopioi teksti.
composer require namegender/namegender
Kopiointi epäonnistui. Valitse ja kopioi teksti.
pip install namegender-client
Kopiointi epäonnistui. Valitse ja kopioi teksti.
gem install namegender
Kopiointi epäonnistui. Valitse ja kopioi teksti.
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.anpekesen</groupId>
<artifactId>namegender-java</artifactId>
<version>v0.9.0</version>
</dependency>
Kopiointi epäonnistui. Valitse ja kopioi teksti.
dotnet add package NameGender --version 0.6.0
Kopiointi epäonnistui. Valitse ja kopioi teksti.
go get github.com/anpekesen/namegender-go@v0.7.0
Kopiointi epäonnistui. Valitse ja kopioi teksti.
remotes::install_github('anpekesen/namegender-r', ref = 'v0.7.0')
Kopiointi epäonnistui. Valitse ja kopioi teksti.
Install-Module NameGender
Kopiointi epäonnistui. Valitse ja kopioi teksti.
cargo add namegender
Kopiointi epäonnistui. Valitse ja kopioi teksti.
Et tarvitse sellaista. API on vain kourallinen tavallisia JSON-päätepisteitä; kirjasto säästää sinulta iltapäivän, ei projektia. Jos kieltäsi ei ole luettelossa, REST-viitteessä on kopioitavaksi valmiita esimerkkejä.
Näytä kaikkiTekoälyavustajat (MCP)
Käytä NameGenderiä Claude- ja Cursor-sovelluksista sekä mistä tahansa muusta asiakasohjelmasta, joka tukee Model Context Protocol -protokollaa. Kysy avustajalta nimilistasta, niin se kutsuu API:a puolestasi ja näyttää perusteet jokaisen vastauksen vieressä.
claude mcp add namegender -e NAMEGENDER_API_KEY=ng_live_... -- npx -y namegender-mcp
Kopiointi epäonnistui. Valitse ja kopioi teksti.
{
"mcpServers": {
"namegender": {
"command": "npx",
"args": [
"-y",
"namegender-mcp"
],
"env": {
"NAMEGENDER_API_KEY": "ng_live_..."
}
}
}
}
Kopiointi epäonnistui. Valitse ja kopioi teksti.
Lisää tämä asiakasohjelman MCP-määritystiedostoon ja käynnistä ohjelma uudelleen.
Työkalut
gender_from_name- Sukupuoli etunimestä tai koko nimestä.
gender_from_email- Lukee nimen sähköpostiosoitteesta; rooliosoitteet, kuten info@, palauttavat tuloksen tuntematon.
gender_from_username- Lukee nimen käyttäjänimestä tai tunnuksesta.
gender_bulk- Enintään 100 arvoa yhdessä pyynnössä, mukana yhteenveto osumaprosentista.
name_countries- Maat, joissa nimi on kirjattu. Ei väite nimen alkuperästä.
salutation- Kirjeen aloitusrivi kirjeen kielellä; neutraali muoto, kun sukupuoli ei ole varma.
name_check- Näyttääkö lomakkeeseen kirjoitettu nimi oikealta, perusteluineen. Ei koskaan sano nimeä vääräksi.
age_from_name- Tietyn etunimen kantajien mediaani-ikä ja ikävälit Yhdysvalloissa, Ranskassa ja Norjassa.
account_status- Jäljellä olevat krediitit ja tämän päivän ilmainen kiintiö.
Jokainen haku kuluttaa krediittejä avaimen omistavalta tililtä, täsmälleen kuten suora API-kutsu. Listattu viralliseen MCP-rekisteriin nimellä io.github.anpekesen/namegender. npm-paketti · Lähdekoodi
Sukupuoli nimestä
Hyväksyy etunimen tai koko nimen. Arvonimet, keskinimet ja sukunimet poistetaan ennen hakua, joten "Dr. Ayşe Yılmaz" ja "Ayşe" antavat saman tuloksen.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
name
pakollinen
|
string
|
Luokiteltava nimi. Etunimi tai koko nimi. |
country
valinnainen
|
string
|
ISO 3166-1 alpha-2 maatunnus. Parantaa tarkkuutta nimillä, joiden sukupuoli vaihtelee alueittain, kuten Andrea (mies Italiassa, nainen Saksassa). |
locale
valinnainen
|
string
|
Kielitunniste kuten de-DE tai en_US, esimerkiksi selaimen kieli. Sen alue tulee maaksi, kun countrya ei lähetetä. Tunniste ilman aluetta (en, de) ei aseta maata. |
ip
valinnainen
|
string
|
Loppukäyttäjän IP-osoite. Sen maata käytetään, kun countrya tai alueellista localea ei lähetetä. Ei tallenneta. IP geolocation by DB-IP (db-ip.com). |
ai_fallback
valinnainen
|
boolean
|
Jos nimelle ei löydy merkintää aineistostamme, kielimallilta pyydetään arvio sen sijaan, että palautettaisiin null. Toimii vasta, kun tekoälyhaut on otettu käyttöön asetuksissasi, ja maksaa yhden lisäkrediitin. |
best_guess
valinnainen
|
boolean
|
Palauta johtava sukupuoli, vaikka näyttö jäisi luottamuskynnyksen alle. Oletuksena pois päältä: lähes 50/50-vastaus, joka näyttää varmalta, tekee enemmän vahinkoa kuin null. |
curl "https://namegender.com/api/v1/gender?name=Jordan" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"credits_charged": 1,
"credits_remaining": 49999,
"request_id": "req_4b7e0c2d9a1f6358",
"query": "Jordan",
"name": "Jordan",
"first_name": "Jordan",
"middle_name": null,
"last_name": null,
"name_type": "personal",
"gender": "male",
"country": null,
"sample_size": 62240,
"probability": 84,
"took_ms": 1,
"confidence": "high",
"source": "db",
"matched_as": null
}
Sukupuoli sähköpostista
Poistaa henkilön sähköpostiosoitteen paikallisesta osasta ja luokittelee sen. "ayse.yilmaz84@example.com" vastaa Ayşe:ta.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
email
pakollinen
|
string
|
Sähköpostiosoite. Vain @ edellä oleva osa käytetään. |
country
valinnainen
|
string
|
ISO 3166-1 alpha-2 maatunnus. Parantaa tarkkuutta nimillä, joiden sukupuoli vaihtelee alueittain, kuten Andrea (mies Italiassa, nainen Saksassa). |
locale
valinnainen
|
string
|
Kielitunniste kuten de-DE tai en_US, esimerkiksi selaimen kieli. Sen alue tulee maaksi, kun countrya ei lähetetä. Tunniste ilman aluetta (en, de) ei aseta maata. |
ip
valinnainen
|
string
|
Loppukäyttäjän IP-osoite. Sen maata käytetään, kun countrya tai alueellista localea ei lähetetä. Ei tallenneta. IP geolocation by DB-IP (db-ip.com). |
ai_fallback
valinnainen
|
boolean
|
Jos nimelle ei löydy merkintää aineistostamme, kielimallilta pyydetään arvio sen sijaan, että palautettaisiin null. Toimii vasta, kun tekoälyhaut on otettu käyttöön asetuksissasi, ja maksaa yhden lisäkrediitin. |
best_guess
valinnainen
|
boolean
|
Palauta johtava sukupuoli, vaikka näyttö jäisi luottamuskynnyksen alle. Oletuksena pois päältä: lähes 50/50-vastaus, joka näyttää varmalta, tekee enemmän vahinkoa kuin null. |
best_guess vaikuttaa osoitteesta luettuun etunimeen, ei itse osoitteeseen. Jos etunimeä ei voida lukea, pakotettavaa ei ole ja gender pysyy arvossa null. Muista, että pakotettu vastaus perustuu tässä poimintaan, joka voi itsessään olla väärä.
curl "https://namegender.com/api/v1/gender/email?email=ayse.yilmaz84%40example.com" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"credits_charged": 1,
"credits_remaining": 49998,
"query": "ayse.yilmaz84@example.com",
"name": "Ayse",
"gender": "female",
"sample_size": 655,
"probability": 100,
"took_ms": 1,
"confidence": "high",
"source": "db"
}
Sukupuoli käyttäjänimestä
Käsittelee camelCase:n, snake_case:n, jälkimmäiset numerot ja johtavat @ -merkit. "AyseYilmaz84" vastaa Ayşe:ta.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
username
pakollinen
|
string
|
Käyttäjänimi tai tunnus. Johtava @ jätetään huomioimatta. |
country
valinnainen
|
string
|
ISO 3166-1 alpha-2 maatunnus. Parantaa tarkkuutta nimillä, joiden sukupuoli vaihtelee alueittain, kuten Andrea (mies Italiassa, nainen Saksassa). |
locale
valinnainen
|
string
|
Kielitunniste kuten de-DE tai en_US, esimerkiksi selaimen kieli. Sen alue tulee maaksi, kun countrya ei lähetetä. Tunniste ilman aluetta (en, de) ei aseta maata. |
ip
valinnainen
|
string
|
Loppukäyttäjän IP-osoite. Sen maata käytetään, kun countrya tai alueellista localea ei lähetetä. Ei tallenneta. IP geolocation by DB-IP (db-ip.com). |
ai_fallback
valinnainen
|
boolean
|
Jos nimelle ei löydy merkintää aineistostamme, kielimallilta pyydetään arvio sen sijaan, että palautettaisiin null. Toimii vasta, kun tekoälyhaut on otettu käyttöön asetuksissasi, ja maksaa yhden lisäkrediitin. |
best_guess
valinnainen
|
boolean
|
Palauta johtava sukupuoli, vaikka näyttö jäisi luottamuskynnyksen alle. Oletuksena pois päältä: lähes 50/50-vastaus, joka näyttää varmalta, tekee enemmän vahinkoa kuin null. |
curl "https://namegender.com/api/v1/gender/username?username=AyseYilmaz84" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"credits_charged": 1,
"credits_remaining": 49997,
"query": "AyseYilmaz84",
"name": "Ayse",
"gender": "female",
"sample_size": 655,
"probability": 100,
"took_ms": 1,
"confidence": "high",
"source": "db"
}
Joukkokysely
Lähetä jopa 100 nimeä yhdessä pyynnössä. Käytä tätä silmukan sijaan: yksi joukkokyse 100 nimelle on yhden matkan ja yhden deduploidun haun verran.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
names
pakollinen
|
string[]
|
Nimien taulukko. Enintään 100 kohde. |
type
valinnainen
|
string
|
Mitä kohteet ovat: nimi, sähköposti tai käyttäjänimi. Oletuksena nimi. |
country
valinnainen
|
string
|
Sovellettu kaikkiin pyynnön kohteisiin. |
locale
valinnainen
|
string
|
Kielitunniste, jonka alue tulee jokaisen kohteen maaksi, kun countrya ei lähetetä. |
ip
valinnainen
|
string
|
Loppukäyttäjän IP-osoite, jonka maata käytetään jokaiselle kohteelle, kun countrya tai alueellista localea ei lähetetä. Ei tallenneta. IP geolocation by DB-IP (db-ip.com). |
curl -X POST "https://namegender.com/api/v1/gender/bulk" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"names": ["Ayşe", "Mehmet", "Priya", "Wei"]}'
<?php
$ch = curl_init('https://namegender.com/api/v1/gender/bulk');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'names' => ['Ayşe', 'Mehmet', 'Priya', 'Wei'],
]),
]);
$data = json_decode(curl_exec($ch), true);
foreach ($data['results'] as $row) {
printf("%-8s %-7s %d%%\n", $row['query'], $row['gender'] ?? '?', $row['probability']);
}
const response = await fetch('https://namegender.com/api/v1/gender/bulk', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ names: ['Ayşe', 'Mehmet', 'Priya', 'Wei'] }),
});
const { results, summary } = await response.json();
console.log(summary.match_rate); // 100
results.forEach(r => console.log(r.query, r.gender, r.probability));
import requests
response = requests.post(
"https://namegender.com/api/v1/gender/bulk",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"names": ["Ayşe", "Mehmet", "Priya", "Wei"]},
)
data = response.json()
print(data["summary"]["match_rate"]) # 100
for row in data["results"]:
print(row["query"], row["gender"], row["probability"])
{
"credits_charged": 4,
"credits_remaining": 49995,
"request_id": "req_71d0a9e3c5b24f86",
"took_ms": 2,
"summary": {
"total": 4,
"identified": 4,
"unknown": 0,
"match_rate": 100
},
"results": [
{ "query": "Ayşe", "gender": "female", "probability": 100, "sample_size": 655, "confidence": "high", "source": "db" },
{ "query": "Mehmet", "gender": "male", "probability": 100, "sample_size": 1130, "confidence": "high", "source": "db" },
{ "query": "Priya", "gender": "female", "probability": 100, "sample_size": 2993, "confidence": "high", "source": "db" },
{ "query": "Wei", "gender": "male", "probability": 86, "sample_size": 136, "confidence": "high", "source": "db" }
]
}
Tulokset palautetaan samassa järjestyksessä kuin lähetsit ne. Hyvitykset veloitetaan nimen mukaan, ja koko pyyntö hylätään ennen mitään työtä, jos saldosi ei ole riittävä, joten et koskaan saa puoliksi käsiteltyä erää.
Yhteenvetolohko näyttää osumaprosentin yhdellä silmäyksellä, joten voit päättää, tarvitseeko syöte puhdistusta ennen loput käsittelyä.
Tiedostotyöt
Lataa enintään 100 Mt:n ja 1 000 000 rivin CSV- tai XLSX-tiedosto ja saat sen takaisin sukupuolisarakkeet jokaiselle riville lisättyinä. Yksi krediitti riviltä, veloitetaan vain, jos työ valmistuu.
-
1.
POST /batchesLähetä tiedosto ja name_column. Työ lisätään jonoon heti. -
2.
GET /batches/{id}Lue työtä, kunnes status on completed tai failed. poll_after_seconds kertoo, kuinka kauan lukujen välillä odotetaan. -
3.
GET /batches/{id}/resultLataa tulos. Se palautetaan ladatussa muodossa.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
file
pakollinen
|
file
|
CSV, TSV tai XLSX, jossa on otsikkorivi. |
name_column
pakollinen
|
string
|
Nimet sisältävän sarakkeen otsikko täsmälleen kuten tiedostossa. Pakollinen, ellei start=false. |
country_column
valinnainen
|
string
|
Sarakkeen otsikko, jossa on maakoodi jokaisella rivillä. |
country
valinnainen
|
string
|
Oletusmaa riveille, joilla maata ei ole. |
ai_fallback
valinnainen
|
boolean
|
Kysy tekoälymallilta nimiä, joita ei ole aineistossa. Edellyttää tekoälysuostumusta asetuksissa. |
best_guess
valinnainen
|
boolean
|
Palauta todennäköisempi sukupuoli, vaikka näyttö olisi heikkoa. |
delete_after_download
valinnainen
|
boolean
|
Tuloksen voi ladata kerran, minkä jälkeen se poistetaan. |
start
valinnainen
|
boolean
|
false: vain lataa ja tarkastele. Oletus on true. |
# 1. Upload and start
curl -X POST "https://namegender.com/api/v1/batches" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: 6f1c2e0a-customers-2026-09" \
-F "file=@customers.csv" \
-F "name_column=first_name" \
-F "country_column=country"
# 2. Poll until status is completed or failed
curl "https://namegender.com/api/v1/batches/B-7K2M9QX4TA" \
-H "Authorization: Bearer YOUR_API_KEY"
# 3. Download the result
curl "https://namegender.com/api/v1/batches/B-7K2M9QX4TA/result" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o customers-gender.csv
import { NameGender } from 'namegender';
import { openAsBlob } from 'node:fs';
import { writeFile } from 'node:fs/promises';
const client = new NameGender(process.env.NAMEGENDER_API_KEY);
const job = await client.batches.create(await openAsBlob('customers.csv'), {
filename: 'customers.csv',
name_column: 'first_name',
country_column: 'country',
});
const done = await client.batches.wait(job.id);
if (done.status === 'failed') throw new Error(done.error.code);
const file = await client.batches.download(done.id);
await writeFile('customers-gender.csv', Buffer.from(await file.arrayBuffer()));
from namegender import NameGender
client = NameGender("YOUR_API_KEY")
job = client.batches.create("customers.csv", name_column="first_name", country_column="country")
done = client.batches.wait(job["id"])
if done["status"] == "failed":
raise RuntimeError(done["error"]["code"])
client.batches.download(done["id"], "customers-gender.csv")
{
"id": "B-7K2M9QX4TA",
"status": "completed",
"source": "api",
"file": { "name": "customers.csv", "format": "csv" },
"columns": { "name": "first_name", "country": "country" },
"rows": { "total": 200000, "processed": 200000, "identified": 187412 },
"progress": 100,
"credits": { "reserved": 200000, "charged": 200000 },
"summary": { "male": 96120, "female": 91292, "unknown": 12588, "from_llm": 0 },
"error": null,
"result": {
"url": "https://namegender.com/api/v1/batches/B-7K2M9QX4TA/result",
"format": "csv",
"expires_at": "2026-10-01T10:04:12Z"
},
"poll_after_seconds": null
}
name_column vaaditaan käynnistykseen: väärä arvattu sarake kuluttaisi krediittejä väärään dataan. Lähetä start=false nähdäksesi ensin sarakkeet, esikatselun ja hinnan, ja käynnistä sitten työ.
Lähetä Idempotency-Key-otsake. Uusi yritys samalla avaimella palauttaa ensimmäisen työn eikä avaa toista.
Enintään 3 työtä voi olla jonossa tai käynnissä yhtä aikaa. Aloittamattoman työn voi peruuttaa ja sen krediitti palautetaan; käsittelyssä olevaa työtä ei voi pysäyttää.
Webhookit
Lisää päätepiste hallintapaneelin Webhookit-kohdassa, niin lähetämme sille allekirjoitetun POST-pyynnön, kun tiedostotyö valmistuu tai epäonnistuu. Tilaa ei tarvitse kysellä.
| Tapahtuma | Tyyppi | Kuvaus |
|---|---|---|
batch.completed
|
BatchJob
|
Työ valmistui. Runko sisältää työn täsmälleen samassa muodossa kuin GET /batches/{id} sen palauttaa. |
batch.failed
|
BatchJob
|
Työ epäonnistui eikä siitä veloitettu. Haarauta error.code-arvon mukaan. |
credits.low
|
CreditsAlert
|
Nykyisellä tahdilla krediitit riittävät enintään 7 päivää. Tarkistetaan tunneittain; tilausten uusiminen otetaan huomioon. |
credits.depleted
|
CreditsAlert
|
Saldo on tyhjä ja pyynnöt hylätään koodilla 402. Tarkistetaan tunneittain. |
webhook.test
|
object
|
Lähetetään vain hallintapaneelin "Lähetä testitapahtuma" -painikkeella ja vain kyseiseen päätepisteeseen. |
| Otsake | Tyyppi | Kuvaus |
|---|---|---|
NameGender-Signature
pakollinen
|
string
|
t=<unix-sekunnit>,v1=<heksa>. Salaisuuden uusimisen jälkeen mukana on 24 tunnin ajan toinen v1. |
NameGender-Event-Id
pakollinen
|
string
|
Tapahtuman tunnus. Sama saman tapahtuman jokaisella uusintayrityksellä. |
NameGender-Delivery-Attempt
pakollinen
|
integer
|
Ensimmäisellä yrityksellä 1, enintään 8. |
Tarkista jokainen pyyntö
v1 on HMAC-SHA256 aikaleimasta, pisteestä ja raa'asta rungosta päätepisteesi salaisuudella. Vertaa vakioajassa, hyväksy pyyntö, jos jokin v1 täsmää, ja hylkää aikaleima, joka poikkeaa kellostasi yli viisi minuuttia. Asiakaskirjastot tekevät kaiken tämän yhdellä kutsulla.
import express from 'express';
import { webhooks, NameGenderWebhookError } from 'namegender';
const app = express();
// express.raw, not express.json: the signature covers the exact bytes.
app.post('/namegender', express.raw({ type: 'application/json' }), async (req, res) => {
let event;
try {
event = await webhooks.verify(
req.body,
req.get('NameGender-Signature'),
process.env.NAMEGENDER_WEBHOOK_SECRET,
);
} catch (error) {
if (error instanceof NameGenderWebhookError) return res.sendStatus(400);
throw error;
}
res.sendStatus(204); // answer first, then do the work
if (event.type === 'batch.completed') {
const job = event.data.object; // same object as GET /batches/{id}
}
});
import os
from flask import Flask, request
from namegender import webhooks, WebhookVerificationError
app = Flask(__name__)
@app.post("/namegender")
def namegender_webhook():
try:
event = webhooks.verify(
request.get_data(), # raw bytes, not request.json
request.headers.get("NameGender-Signature"),
os.environ["NAMEGENDER_WEBHOOK_SECRET"],
)
except WebhookVerificationError:
return "", 400
if event["type"] == "batch.completed":
job = event["data"]["object"] # same object as GET /batches/{id}
return "", 204
<?php
$body = file_get_contents('php://input'); // raw body, before json_decode
$header = $_SERVER['HTTP_NAMEGENDER_SIGNATURE'] ?? '';
$secret = getenv('NAMEGENDER_WEBHOOK_SECRET');
parse_str(str_replace(',', '&', $header), $parts); // t=…&v1=…
preg_match_all('/v1=([0-9a-f]{64})/', $header, $m);
$t = (int) ($parts['t'] ?? 0);
$expected = hash_hmac('sha256', $t . '.' . $body, $secret);
$valid = abs(time() - $t) <= 300
&& array_filter($m[1], fn ($sig) => hash_equals($expected, $sig));
if (! $valid) {
http_response_code(400);
exit;
}
http_response_code(204);
$event = json_decode($body, true);
{
"id": "evt_16f7c01502fda5436e8b7c4e",
"type": "batch.completed",
"created_at": "2026-09-24T10:04:12Z",
"api_version": "v1",
"data": {
"object": {
"id": "B-7K2M9QX4TA",
"status": "completed",
"rows": { "total": 200000, "processed": 200000, "identified": 187412 },
"credits": { "reserved": 200000, "charged": 200000 },
"result": { "url": "…/api/v1/batches/B-7K2M9QX4TA/result", "format": "csv" }
}
}
}
- Vastaa millä tahansa 2xx-tilalla 10 sekunnin kuluessa ja tee työ vasta sen jälkeen.
- Kaikki muut vastaukset, myös uudelleenohjaukset, yritetään uudelleen enintään 7 kertaa noin 45 tunnin aikana. Jos päätepiste epäonnistuu kolmen päivän ajan, se poistetaan käytöstä ja saat sähköpostin.
- Uusintayrityksellä on sama tunnus, eikä järjestystä taata. Poista kaksoiskappaleet NameGender-Event-Id:n avulla ja lue työ GET-pyynnöllä, kun tarvitset sen nykyisen tilan.
- Kun uusit salaisuuden hallintapaneelissa, vanha allekirjoittaa vielä 24 tuntia, joten voit päivittää palvelimesi menettämättä tapahtumia.
- Uusia tapahtumatyyppejä voidaan lisätä. Vastaa 2xx tyyppiin, jota et käsittele, ja jätä se huomiotta.
Maantieteellinen jakautuminen
Palauttaa maat, joissa nimi on rekisteröity. Palautuu kaksi listaa, joita ei ole tarkoituksella yhdistetty: `registrations` on mitattu volyymi, vertailukelpoinen vain niiden yhdentoista maan välillä, jotka julkaisevat laskettuja nimitilastoja, ja `attested_in` on esiintyminen ilman painotusta.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
name
pakollinen
|
string
|
Haettava nimi. |
limit
valinnainen
|
integer
|
Kuinka monta laskettua maata listataan kohdassa `registrations`. 1–100, oletus 25. Osuuksia ei lasketa uudelleen lyhyemmälle listalle. |
curl "https://namegender.com/api/v1/gender/countries?name=Mehmet" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"credits_charged": 1,
"credits_remaining": 49994,
"took_ms": 3,
"name": "Mehmet",
"basis": {
"counted_sources": ["ssa", "ons", "nrs", "nisra", "insee", "statcan", "ine", "cso", "ssb", "statat", "pesel", "bfs"],
"counted_countries": 8,
"attested_countries": 16,
"note": "Shares are calculated only across countries that publish counted name statistics…"
},
"registrations": [
{ "country": "CH", "count": 3890, "share": 29.45, "gender": "male", "source": "bfs" },
{ "country": "FR", "count": 3775, "share": 28.58, "gender": "male", "source": "insee" },
{ "country": "PL", "count": 1808, "share": 13.69, "gender": "male", "source": "pesel" }
],
"attested_in": ["AL","AT","AU","BE","CA","CH","ES","FR","GB","KS","MK","NO","PL","SE","TR","US"]
}
Yksi hyvitys per pyyntö. `share` lasketaan kaikkien lukumääriä julkaisevien maiden kesken, joten se summautuu 100:ksi vain, kun `limit` ei lyhennä listaa; myös `counted_countries` lasketaan ennen lyhentämistä. `attested_in` ei sisällä prosenttiosuuksia, koska näille tietueille ei ole lukumäärää, josta laskea niitä.
Tervehdys
Muuttaa nimen kirjeeseen tai sähköpostiin valmiiksi tervehdykseksi kymmenellä kielellä: “Sehr geehrte Frau Dr. Müller,”, “Sayın Ahmet Bey,”, “Madame,”, “山田様”. Sukupuolihaku sisältyy hintaan ja maksaa saman yhden hyvityksen. Jokaisessa vastauksessa on muodollinen, epämuodollinen ja neutraali rivi sekä muodollisen rivin osat.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
name
pakollinen
|
string
|
Koko nimi tittelit mukaan lukien (“Dr. Anna Müller”). Lähetä tämä tai `first_name` ja `last_name`. |
first_name, last_name
valinnainen
|
string
|
Käytä näitä `name`-kentän sijaan, kun CRM:si tallentaa nimet erillisiin kenttiin. Mitään ei jäsennetä. |
email
valinnainen
|
string
|
Sähköpostiosoite, jota käytetään, kun nimeä ei lähetetä. Nimi luetaan @-merkkiä edeltävästä osasta ilman tarkkeita (Mueller, ei Müller); info@ ja muut rooliosoitteet saavat organisaatioille tarkoitetun tervehdyksen. |
language
valinnainen
|
string
|
Tervehdyksen kieli: en, en-US, en-GB, de, de-AT, de-CH, fr, es, it, pt, pt-PT, pt-BR, nl, tr, pl, ja. Ilman sitä: `locale`-tunnisteen kieli, sitten maan pääkieli, sitten englanti. Tukematon kieli on virhe, ei koskaan hiljainen vaihto englantiin. |
country, locale, ip
valinnainen
|
string
|
Maavihje sukupuolihakua varten, kuten sukupuolipäätepisteissä. Se valitsee kielen vain, kun `language` ei ole lähetetty. |
gender
valinnainen
|
string
|
`male`, `female` tai `neutral`, kun tiedät sen jo. Ohittaa haun; `neutral` antaa aina neutraalin muodon. |
min_probability
valinnainen
|
integer
|
Pienin todennäköisyys sukupuolen mukaiselle tervehdykselle, 50–100. Oletus 90. |
title
valinnainen
|
string
|
Erillisessä kentässä säilytettävä akateeminen titteli, kuten `Dr.` Käytetään saksan- ja englanninkielisissä tervehdyksissä. |
curl -X POST "https://namegender.com/api/v1/salutation" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Dr. Anna Müller", "language": "de"}'
{
"credits_charged": 1,
"credits_remaining": 49993,
"language": "de",
"form": "gendered",
"reason": null,
"salutation": {
"formal": "Sehr geehrte Frau Dr. Müller,",
"informal": "Liebe Anna,",
"neutral": "Guten Tag Dr. Anna Müller,"
},
"parts": { "opening": "Sehr geehrte", "courtesy": "Frau", "academic": "Dr.", "name": "Müller" },
"gender": "female",
"gender_source": "lookup",
"probability": 99,
"first_name": "Anna",
"last_name": "Müller",
"name_type": "personal"
}
Väärä sukupuoli on pahempi kuin ei mitään, joten sukupuolen mukaista muotoa käytetään vain, kun sukupuoli tiedetään vähintään `min_probability`-todennäköisyydellä ja kielellä on tarvitsemansa nimen osa. Muuten `form` on `neutral` ja `reason` kertoo syyn. Yritykset ja roolipohjaiset osoitteet saavat `form: organization`. `best_guess` ja `ai_fallback` eivät koske tätä.
POST /api/v1/salutation/bulk ottaa enintään 100 nimeä kentässä `names`, yksi hyvitys kustakin, samoilla asetuksilla jokaiselle nimelle.
Nimen tarkistus
Kertoo, näyttääkö rekisteröitymis- tai liidilomakkeeseen kirjoitettu nimi oikean ihmisen nimeltä, ja miksi. Se tunnistaa näppäimistön satunnaisen hakkaamisen (“asdf qwerty”), paikkamerkit (“Test Test”, “John Doe”, “n/a”), kuvitteelliset hahmot (“Mickey Mouse”), kirosanat sekä numerot, symbolit tai sähköpostiosoitteet nimikentässä. Yksi hyvitys nimeä kohden.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
name
pakollinen
|
string
|
Nimi sellaisena kuin se kirjoitettiin lomakkeeseen. Lähetä tämä tai `first_name` ja `last_name`. |
first_name, last_name
valinnainen
|
string
|
Käytä näitä `name`-kentän sijaan, kun lomakkeessasi on erilliset kentät. |
country, locale, ip
valinnainen
|
string
|
Maavihje, kuten sukupuolipäätepisteissä. Auttaa nimen jäsentämisessä ja rekisterihaussa. |
curl -X POST "https://namegender.com/api/v1/name-check" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "asdf qwerty"}'
{
"credits_charged": 1,
"credits_remaining": 49992,
"query": "asdf qwerty",
"assessment": "implausible",
"score": 0,
"signals": [
{ "code": "placeholder", "severity": "high", "part": "first_name", "value": "asdf" },
{ "code": "keyboard_pattern", "severity": "high", "part": "first_name", "value": "asdf" },
{ "code": "keyboard_pattern", "severity": "high", "part": "last_name", "value": "qwerty" }
],
"first_name": "Asdf",
"last_name": "Qwerty",
"name_type": "personal",
"evidence": { "first_name_status": "not_found", "first_name_counted_records": 0 }
}
`assessment` on `implausible`, kun mukana on vakava signaali (näppäimistökuvio, toistuvat kirjaimet, paikkamerkki, kirosana, sähköposti tai URL), `suspicious` keskitason signaalilla (kuvitteellinen hahmo, numerot, symbolit, yrityksen nimi, ei vokaaleja, hyvin pitkä) tai kahdella lievällä, ja muuten `plausible`. `score` kulkee 0:sta 100:aan omaa kynnysarvoasi varten. Virallisista syntymärekistereistä löytyvä etunimi nostaa sitä; nimi, jota emme ole koskaan nähneet, ei yksinään laske sitä. Sukunimiä arvioidaan vain niiden muodon perusteella: tämän päätepisteen takana ei ole sukunimiaineistoa.
Testattu 4 610 oikealla etunimellä yhdeksällä kirjoitusjärjestelmällä, yksinään ja sukunimen kanssa: yhtäkään ei merkitty epäilyttäväksi tai epäuskottavaksi. Sukunimet kuten Null, Test tai Cockburn, kaksikirjaimiset nimet kuten Ng ja yksiosaiset nimet jätetään tarkoituksella rauhaan.
POST /api/v1/name-check/bulk ottaa enintään 100 nimeä kentässä `names`, yksi hyvitys kustakin, ja palauttaa yhteenvedon kolmesta arviosta.
Ikä nimestä
Kuinka vanhoja tietyn etunimen elossa olevat kantajat ovat: mediaani-ikä, keskimmäinen puolikas (`age_range`) ja keskimmäiset 80 % (`age_range_80`). Brittany Yhdysvalloissa: mediaani 36, puolet 32 ja 38 vuoden välillä. Yksi hyvitys nimeä kohden.
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
name
pakollinen
|
string
|
Etunimi tai koko nimi; käytetään etunimeä. |
gender
valinnainen
|
string
|
`male` tai `female`, jos haluat käyttää vain sen sukupuolen tietoja. Leslie-nimiset miehet ovat 16 vuotta vanhempia kuin Leslie-nimiset naiset. |
country, locale, ip
valinnainen
|
string
|
Maavihje, kuten sukupuolipäätepisteissä. Katetut maat: US, FR ja NO. Ilman vihjettä käytetään Yhdysvaltain sarjaa, ja `country_source` on `default`. Muu maa palauttaa `reason: country_not_covered` eikä maksa mitään. |
curl "https://namegender.com/api/v1/age?name=Brittany" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"credits_charged": 1,
"credits_remaining": 49991,
"request_id": "req_8f2c1a",
"name": "Brittany",
"first_name": "Brittany",
"gender": null,
"age": 36,
"age_range": { "low": 32, "high": 38 },
"age_range_80": { "low": 28, "high": 41 },
"birth_year": 1990,
"sample_size": 353775,
"births": 361434,
"country": "US",
"country_source": "default",
"source": "ssa",
"series": "1880-2024",
"reference_year": 2026,
"reason": null
}
Menetelmä: rekisteröidyt syntymät nimen, sukupuolen ja vuoden mukaan, ja kukin vuosi painotetaan sillä osuudella syntymäkohortista, joka on yhä elossa (SSA:n kohorttikuolleisuustaulut). Lähteet: SSA:n syntymät 1880–2024 (US), INSEE 1900–2025 (Ranska), SSB 1945–2025 (Norja). `reason` on `not_found`, jos nimeä ei ole sarjassa, ja `insufficient_data`, jos eläviä ihmisiä on alle 100.
Ulkomailla syntyneet eivät ole missään sarjassa, joten maahanmuuttajien keskuudessa yleiset nimet näyttävät todellista nuoremmilta. Norjan sarja alkaa vuodesta 1945, joten aiemmin syntyneet puuttuvat. Yhdysvaltain kuolleisuustaulua käytetään myös Ranskalle ja Norjalle.
POST /api/v1/age/bulk ottaa enintään 100 nimeä kentässä `names`, yksi hyvitys kustakin, lähetysjärjestyksessä.
Saldo
Lue krediittisaldosi ja se, mitä tämän päivän ilmaisesta kiintiöstä on jäljellä. Tästä kutsusta ei veloiteta.
curl "https://namegender.com/api/v1/me" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"email": "you@example.com",
"credits_remaining": 50099,
"purchased_credits": 50000,
"free_today": 99,
"free_daily_limit": 100,
"lifetime_requests": 12480
}
Ei-latinalaiset kirjoitusjärjestelmät
Lähetä nimi sen omassa kirjoitusjärjestelmässä, ja muunnamme sen vertailuaineistoon. Ei ylimääräisiä parametreja: tunnistamme kirjoitusjärjestelmän ja valitsemme sille sopivan strategian.
Araabian kirjoitus jättää lyhyet vokaalit pois, joten محمد translitteroidaan muotoon "mhmd" kun taas aineistomme sisältää "muhammed". Käytämme konsonanttikuvioita vastaavuuden määrittämiseen ja säilytämme feminiinin ة -merkin, joten خالد (Khalid) ja خالدة (Khalida) pysyvät erillään. Kattaa myös persia- ja urdunkielisiä nimiä arabian kirjoituksella.
Muunnettu pinyin-muotoon. Sukunimi tulee ensin kiinaksi, joten 李明 on sukunimeltään 李 (Li) ja etunimeltään 明 (Ming) — poistamme sukunimen ennen hakua. Yksittäinen merkki on täydellinen etunimi ja käsitellään yhtenä.
Sama sukunimi-ensin -käsittely kuin kiinassa, käyttäen yleisiä korealaisia sukunimiä.
Hiragana ja katakana luetaan oikein (ひろし → Hiroshi).
Venäläiset, ukrainalaiset, bulgarialaset ja serbialaset nimet translitteroidaan suoraan.
Hindi-, marathi- ja nepalilaisia nimiä. Käsittelemme sisäisen loppuvokaalin (राहुल → Rahul, ei "Rahula").
Japanilaisten kanjien ja kiinalaisten merkkien Unicode-alue on sama, joten emme voi erottaa niitä pelkästään merkkien perusteella. Han-syöte tulkitaan kiinaksi: kanji-nimelle, jota meillä ei ole tallennettu sellaisenaan, käytetään mandariinin lukemista, mikä japanilaisilla nimillä on yleensä väärä (健太 lukemisena on "jian tai" kun nimi on Kenta). Meillä olevat nimet täsmäävät täsmälleen ja ovat oikein. Lähetä japanilaiset nimet kananalla tai latinaksi varmuuden vuoksi.
Thain kieli jättää vokaalit pois kuten arabia ja tarvitsee oman vastaavuuskerroksen. Ei vielä rakennettu, joten nämä palauttavat null.
# Arap yazısı — ünsüz iskeleti üzerinden eşleşir
curl "https://namegender.com/api/v1/gender?name=%D9%85%D8%AD%D9%85%D8%AF" -H "Authorization: Bearer KEY"
# -> { "gender": "male", "probability": 100, "source": "script", "matched_as": "mahamad" }
# Çince — soyadı ayıklanır, verilen ad sorgulanır
curl "https://namegender.com/api/v1/gender?name=%E6%9D%8E%E6%98%8E" -H "Authorization: Bearer KEY"
# -> { "gender": "male", "probability": 92, "source": "db" }
Kopiointi epäonnistui. Valitse ja kopioi teksti.
Kun emme voi muuntaa scriptiä lainkaan, vastaus on gender: null ja source: none. Tarkista source-kenttä: script tarkoittaa, että teimme transliteraation, db tarkoittaa, että täsmäsimme lähettämäsi merkit suoraan. Näillä on eri luottamustaso, ja näytämme sinulle, kumman sait.
Vastauskentät
Identtiset kaikissa päätepisteissä.
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
credits_charged
|
integer
|
Kuinka monta krediittiä tästä kutsusta veloitettiin. |
credits_remaining
|
integer
|
Käytettävissä oleva saldosi, kun tämä kutsu on maksettu: ostetut krediitit sekä se, mitä tämän päivän ilmaisesta kiintiöstä on jäljellä. |
query
|
string
|
Syöte täsmälleen sellaisena kuin lähetit sen, ennen minkäänlaista siistimistä. |
name
|
string
|
Nimi, jonka etsimme otsikkoiden ja sukunimien poistamisen jälkeen. |
first_name
|
string
|
Syötteestä erotettu etunimi. Palautetaan myös, kun gender on null, ilman lisäkustannusta. |
middle_name
|
string
|
Muut etunimet etunimen ja sukunimen välissä. Nimikirjaimet jätetään pois. |
last_name
|
string
|
Sukunimi, mukaan lukien etuliitteet kuten van tai de la. Käyttäjänimissä aina null. |
name_type
|
string
|
personal, organization (Acme Oy) tai role (info@, asiakaspalvelu). Organisaatiot ja roolit eivät saa sukupuolta. |
gender
|
string
|
male, female tai null, kun emme ole tarpeeksi varmoja. |
country
|
string
|
Maa, josta tilastot tulevat, tai null globaalille aggregaatille. |
country_source
|
string
|
Mistä maa tuli: country, locale, ip tai null, kun vastaus koskee koko maailmaa. |
sample_size
|
integer
|
Tämän vastauksen taustalla olevien rekisteröityjen henkilöiden määrä. 0 tarkoittaa, että lähde julkaisee osuuksia tai mainintoja, ei lukumäärää, jonka voisimme tarkistaa. |
probability
|
integer
|
Luottamus ilmoitettuun sukupuoleen, 50–100. 0, kun sukupuoli on null. |
took_ms
|
integer
|
Haun ratkaisemiseen käyttämämme aika kokonaisina millisekunteina. Oman puolesi verkkoaika ei sisälly siihen. |
Kaksi kenttää, joita muut palvelut eivät tarjoa
source kertoo, mistä vastaus tuli: vertailutietokannasta, epätarkkaan vastaavuudesta tai tekoälyfallback-ratkaisusta. matched_as nimeää tietueen, johon epätarkka vastaavuus osui. Yhdessä ne antavat sinulle mahdollisuuden päättää, kuinka paljon yksittäiseen tulokseen voi luottaa ilman että hyväksyt sen sellaisenaan.
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
source
|
string
|
db, script, fuzzy, llm tai none. |
confidence
|
string
|
korkea, keskitaso, matala, vahvistamaton tai tuntematon näyttötodisteiden perusteella. |
matched_as
|
string
|
Epätarkan vastaavuuden tapauksessa tietokannan merkintä, joka osui. Muutoin null. |
Virheellä
HTTP-tilakoodi kertoo, että kutsu epäonnistui. JSON-runko nimeää syyn kentässä error, selittää sen kentässä message ja antaa request_id-tunnisteen, jonka voit mainita tuelle, sekä dokumentaatiolinkin alla olevaan vastaavaan riviin. Haaraudu error-kentän mukaan, älä koskaan message-kentän: viestit on käännetty ja niitä voidaan muotoilla uudelleen.
| Koodi | HTTP | Merkitys |
|---|---|---|
missing_key |
401 | API-avainta ei lähetetty. Lisää pyyntöön Authorization: Bearer -otsikko tai X-Api-Key-otsikko. |
invalid_key |
401 | Tämä API key ei ole kelvollinen. |
revoked_key |
401 | Tämä API key on peruutettu. |
blocked |
403 | Tämä tili on jäädytetty. Ota yhteyttä tukeen. |
email_not_verified |
403 | Tämän tilin sähköpostiosoitetta ei ole vielä vahvistettu. Avaa lähettämämme vahvistuslinkki tai pyydä uusi hallintapaneelista. |
ip_not_allowed |
403 | Pyyntöjä tästä IP-osoitteesta ei sallita tälle avaimelle. |
proxy_secret_required |
403 | Tämä avain toimii vain sen API-markkinapaikan kautta, joka allekirjoittaa jokaisen pyynnön. Käytä siellä sinulle myönnettyä avainta. |
forbidden |
403 | Sinulla ei ole oikeutta suorittaa tätä toimintoa. |
no_credits |
402 | Krediitit ovat lopussa. Osta lisää tai odota päivittäisen ilmaisen kiintiösi nollautumista. |
missing_input |
400 | Parametri "name" on pakollinen. |
invalid_input |
422 | Parametri "name" ei ole kelvollinen. |
too_many_items |
422 | Yhteen pyyntöön voi sisältyä enintään 100 kohdetta. |
ai_consent_required |
422 | ai_fallback lähettää nimen kolmannen osapuolen tekoäly-palveluntarjoajalle, johon tämä tili ei ole antanut suostumusta. Katso "ai"-kenttää, jotta näet, kuka palveluntarjoaja on, ja ota sitten tekoäly-haut käyttöön kojelautasi asetuksista. |
unknown_endpoint |
404 | Tässä polkussa ei ole endpointiä. Tarkista URL API-dokumentaatiosta. |
method_not_allowed |
405 | Tämä endpoint ei hyväksy DELETE-pyyntöjä. |
payload_too_large |
413 | Pyyntörunko on liian suuri. |
rate_limited |
429 | Liian monta pyyntöä. Hidasta vauhtia ja yritä uudelleen hetken kuluttua. |
batch_not_found |
404 | Tällä tilillä ei ole tiedostotyötä tällä tunnuksella. |
batch_not_startable |
409 | Tämä työ on jo käynnistetty tai suljettu. |
batch_not_finished |
409 | Tämä työ ei ole vielä valmis. Tarkista sen tila ja lataa tulos, kun työ on valmis. |
batch_in_progress |
409 | Tätä työtä käsitellään parhaillaan, eikä sitä voi nyt peruuttaa. Poista se, kun se on valmis. |
result_gone |
410 | Tällä työllä ei ole ladattavaa tulosta. Se epäonnistui, peruutettiin, vanhentui tai sen kertaladattava tulos on jo haettu. |
too_many_batches |
429 | Sinulla on jo 100 tiedostotyötä käynnissä. Odota, että yksi valmistuu, ennen kuin aloitat uuden. |
not_ready |
503 | Nimen tietokantaa päivitetään. Yritä hetken kuluttua uudelleen. |
server_error |
500 | Jotain meni pieleen palvelimella. Olemme saaneet ilmoituksen. |
{
"error": "no_credits",
"message": "You are out of credits. Buy more or wait for your daily free quota to reset.",
"request_id": "req_9c1f5b2a7e0d4a13",
"docs": "https://namegender.com/docs#error-no_credits"
}
Kopiointi epäonnistui. Valitse ja kopioi teksti.
Nopeustrajoitukset
Normaali käyttö ei osu rajoitukseen. Raja on olemassa paljastuneen avaimen väärinkäytön pysäyttämiseksi, ja se lasketaan API-avainta kohden eikä IP-osoitetta kohden, jotta useat asiakkaat samalla palvelimella eivät kuluta toistensa kvantiteettia.
Nykyinen raja: 1 200 pyyntöä minuutissa avaimella. Tarvitset lisää? Kysy niin nostamme rajan tilillesi.
Jokainen vastaus sisältää tavanomaiset X-RateLimit-Limit ja X-RateLimit-Remaining headerit.
Välilyönnit ja muut kuin latinalaiset kirjaimet GET-pyynnöissä
Nimi kuten Ayşe Yılmaz tai 中村 ei kulje URL-osoitteessa sellaisenaan. Prosenttikoodaa arvo, kun kutsut GET-menetelmällä, tai lähetä se JSON-rungossa POST-menetelmällä, jolloin koodausta ei tarvita lainkaan.
Ayşe Yılmaz -> Ay%C5%9Fe%20Y%C4%B1lmaz
محمد -> %D9%85%D8%AD%D9%85%D8%AF
中村 -> %E4%B8%AD%E6%9D%91
Kopiointi epäonnistui. Valitse ja kopioi teksti.