名前から性別を推定するAPI
名前を送ると、性別、確率、サンプルサイズ、信頼区分、データ出典が返ります。リクエストは1回で済み、漢字・かな・ローマ字を受け付け、一括APIは入力の順序を保ちます。
これは統計的な推定であり、本人確認ではありません。集計や傾向分析、「不明」を残せる処理には使えますが、特定の個人についての判断には使えません。
クレジットカード不要。購入した分は毎月リセットされません。
最初のリクエスト
ダッシュボードでキーを作成し、エンドポイントを呼びます。ここではPOSTでJSONを送っています。漢字やかなのURLエンコードを手で扱わずに済むためで、GETでも同じことができます。
curl -X POST "https://namegender.com/api/v1/gender" \
-H "Authorization: Bearer ng_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"name":"さくら","country":"JP"}'
コピーできませんでした。テキストを選択してコピーしてください。
{
"query": "さくら",
"name": "さくら",
"gender": "female",
"probability": 95,
"sample_size": 0,
"confidence": "unverified",
"country": "JP",
"source": "script",
"matched_as": "sakura"
}
コピーできませんでした。テキストを選択してコピーしてください。
`sample_size` が `0`、`confidence` が `unverified` である点に注意してください。日本には名前単位で監査できる公開登録統計がないため、この結果は計数された記録ではなく文字規則に基づいています。正しい可能性は高くても、件数に支えられてはいません。
レスポンスの各項目
`gender` だけを保存すると、強い結果とほぼ半々の結果を区別できなくなります。後から閾値を変えられるように、根拠の項目も一緒に保存してください。
| 項目 | 実装上の意味 |
|---|---|
| gender | 根拠が閾値を満たしたときの主要カテゴリ。満たさなければ null。 |
| probability | データ上の主要カテゴリの比率。その人についての確率ではありません。 |
| sample_size | 結果を支える集計可能な件数。0 は出典が監査可能な件数を公開していないことを示します。 |
| confidence | 証拠量に基づく区分:high、medium、low、unverified、unknown。 |
| source | データベース、文字規則、あいまい一致、LLM、該当なしのいずれか。 |
| matched_as | 実際に照合されたエントリ。入力と異なる場合は転写やあいまい一致が起きています。 |
`probability: 90` は「この人が90%の確率でその性別」という意味ではありません。データ上でその名前が主要カテゴリと結びつく比率です。この二つを混同することが、名前由来の性別データで最も多い誤用です。
漢字・かな・ローマ字の扱い
日本人名で難しいのは検索ではなく入力です。同じ漢字に複数の読みがあり、文字列だけから読みを確定できません。
例えば「薫」はカオル、「郁」はイクにもカオリにもなり得ます。読みが決まらなければ、名前が持つ性別の手がかりも決まりません。
漢字は中国語の名前と文字が重なるため、country を指定しないと中国語の読みで照合されます。country: "JP" を付けると、JMnedict の読み(美咲 → みさき)で照合し、性別は日本の名前データから決まります。右の実例は同じ「美咲」の二つの結果です。
「さくら」や Sakura は読みが一意なので照合は安定します。姓名を分けて持っているなら、名のかな表記を送るのが最も確実です。
日本語の表記は姓が先、ローマ字では名が先になることが多く、データセット内で混在しがちです。APIに送る前にどちらの順序かを決め、可能なら名だけを `name` に送ってください。
# かな:読みが確定するので素直に当たる
{"query": "さくら", "gender": "female", "probability": 95,
"confidence": "unverified", "source": "script", "matched_as": "sakura"}
# 漢字・country なし:中国語の読み(mei xiao)で照合される
{"query": "美咲", "gender": "female", "probability": 100,
"sample_size": 3725, "source": "script", "matched_as": "mei xiao"}
# 漢字・country: "JP":日本語の読み(みさき)で照合される
{"query": "美咲", "country": "JP", "gender": "female", "probability": 94,
"sample_size": 0, "confidence": "unverified", "source": "script"}
コピーできませんでした。テキストを選択してコピーしてください。
これは実際のレスポンスです。country なしの「美咲」は中国語の読みで照合され、ここでは結果が偶然一致しています。日本の名前では country: "JP" を付けてください。日本の名前には計数された公開統計がないため、sample_size は 0、confidence は unverified になります。
日本の名前での実測結果
公開している固定テストでは、日本のグループは 51 件です。カバレッジは 100.0%、回答した名前における正解率は 94.1%、未回答も誤りとして数える端から端までの正解率は 94.1% です。
この標本は51件と小さく、比較的よく知られた名前が中心です。そこで、明治安田生命が公開している名前ランキングの掲載名(男女どちらか一方のみの2,333件、近年の名前を多く含む)でも別に測定しました。country: "JP" での結果は、回答率83.4%、回答した名前の正解率89.3%、端から端まで74.5%です(2026年10月)。近年の名前では「不明」が増えますが、確信を持って誤るより正直な結果です。導入前にご自身の正解付きデータで小規模に検証してください。
テスト方法を見る氏名の一括処理
名前ごとに接続を張らないでください。一括APIは1リクエストで最大 100 件を受け取り、返却順は入力順と一致します。
curl -X POST "https://namegender.com/api/v1/gender/bulk" \
-H "Authorization: Bearer ng_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"names":["太郎","さくら","美咲","Taro"],"country":"JP"}'
コピーできませんでした。テキストを選択してコピーしてください。
使ってはいけない場面
名前からの性別判定は確率的な推定です。以下は免責のための文章ではなく、ドキュメント、API、レスポンスで実際に守っている方針です。
- —採用、医療、金融、保険、法務、資格判定には使わないでください。
- —UIとデータベースで「不明」を保持し、null を確率の高い側へ自動的に寄せないでください。
- —閾値は自分のデータセットで決めてください。一般的な数値をそのまま使わないでください。
- —カバレッジと回答後の正解率を同時に見てください。片方だけでは必ず判断を誤ります。
- —日本語データは漢字・かな・ローマ字を分けて検証し、日本人名には country: "JP" を付けてください。
よくある質問
送れます。漢字・ひらがな・カタカナ・ローマ字のいずれも受け付けます。漢字の場合は country: "JP" を付けてください。付けないと中国語の読みで照合されることがあります。読みが分かっているなら、かな表記がいちばん確実です。
名前単位で監査できる公開登録統計がないためです。confidence は答えの正しさではなく、根拠が計数可能かどうかを表します。見栄えのよい数字で上書きせず、そのまま返しています。
51 件の固定テストで、カバレッジ 100.0%、回答後の正解率 94.1%、端から端まで 94.1% です。標本は小さいため、近年の名前2,333件での別の測定(回答後の正解率89.3%、端から端まで74.5%)も公開しています。テスト方法も公開しています。
API キーごとに「入力を保存する」設定をオフにできます。オフの場合、送った名前はリクエストログに書き込まれず、結果と課金記録だけが残ります。一括アップロードしたファイルは一定期間後に削除されます。
できません。どの名前APIにもできません。返るのはデータ上の統計的な傾向です。個人に関わる重要な判断には本人の申告を使ってください。