リクエストを送信する前に
JSONをPOST https://api.genderapi.io/api/v2/gender に送信します。既存のAPIキーをAuthorization: Bearer YOUR_API_KEYで指定し、Content-Type: application/jsonを付けてください。各リクエストは個別に処理されます。
コード例でプログラミング言語を選んでください。実行前にプロセスの環境変数GENDERAPI_API_KEYを設定します。キーがない場合や認識されない場合は共有のIPトライアルが使われることがあるため、アカウントを連携するときはmeta.access.modeがapi_keyであることを確認してください。
メールアドレスから性別を推定
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
type | string | はい | — | 入力の種類:name、email、username。 |
value | string | はい | — | 必須。1–254文字。空白のみは不可で、制御文字は使用できません。emailの値はメールアドレスとして有効な構文である必要があります。 |
country | string | いいえ | — | 任意。大文字のISO 3166-1 alpha-2コード(例:TR、US)。国別の検索はグローバルデータセットにフォールバックすることがあります。 |
forceToGenderize | boolean | いいえ | false | まずデータセットを確認し、推定できない場合はニックネームを解釈するAIを使用します。name、email、usernameで使用できます。 |
options | object | いいえ | — | 入力ごとのAIオプションを格納するオブジェクト。 |
options.ai_mode | string | いいえ | fallback | 使用できる値:off、fallback、always。forceToGenderize: trueの場合は、このフィールドを省略するかfallbackを使用してください。 |
id | string | いいえ | — | POSTのJSONで指定できる1–64文字の任意の識別子。バッチの各結果とともに返され、バッチ内で一意である必要があります。単一の推定でも受け付けますが、レスポンスには含まれません。GETクエリでは使用できません。 |
type: emailを使用します。APIはアドレスの中から利用できる名前の手掛かりを探します。共有の受信箱や意味の読み取れないローカル部分では、不明な結果になることがあります。ここでもforceToGenderizeを任意で指定でき、実名がなくてもエイリアスからAIが推定できるようになります。
プログラミング言語を選んでください。APIキーを設定する。次に、サーバー上で例を実行してください。
推定のリクエストは、再試行を含め、毎回新たに課金される処理です。これらの例は自動的に再試行しません。次のリクエストを送信する前に課金ステータスを確認してください。
実行する前に:アクセスとエラー処理
これらの例はサーバー上で実行してください。プロセスの環境変数GENDERAPI_API_KEYに既存のAPIキーを設定し、meta.access.modeがapi_keyであることを確認します。認識されないキーはIPトライアルに切り替わることがあります。
HTTP 4xxと5xxのJSONレスポンスでは、例はエラーのボディをそのまま残し、0以外の終了ステータスで終了します。再試行する前にcode、action、meta.usage.billing_statusを確認してください。
エラーと再試行のガイド →POSIXシェルでcURL 7.76以上。ターミナルで実行します。実行環境のドキュメント
Node.js 22以上、組み込みのfetch。example.mjsとして保存し、node example.mjsを実行します。実行環境のドキュメント
Python 3.10以上、標準ライブラリ。example.pyとして保存し、python3 example.pyを実行します。実行環境のドキュメント
PHP 8以上とcURL拡張機能。example.phpとして保存し、php example.phpを実行します。実行環境のドキュメント
Java 17以上、標準のHTTPクライアント。GenderApiExample.javaとして保存し、java GenderApiExample.javaを実行します。実行環境のドキュメント
.NET 8以上のコンソールアプリケーション。コンソールプロジェクトのProgram.csとして使用し、dotnet runを実行します。実行環境のドキュメント
Go 1.22以上、標準ライブラリ。main.goとして保存し、go run main.goを実行します。実行環境のドキュメント
レスポンスの例
これは2026年10月1日にAPIキーで取得した実際のレスポンスで、アカウント残高のみを置き換えています。精度を測るものではなく、実際のリクエストでは異なる結果が返ることがあります。APIキーによるリクエストではmeta.access.mode: api_keyが返り、IPトライアル専用の上限フィールドはnullになります。IPトライアルによるリクエストではip_trialが返ります。推定結果はdataで、その処理の課金結果はmeta.usageで確認してください。
{
"data": {
"input": {
"type": "email",
"value": "alice.smith@example.com",
"country": "US"
},
"name": "alice",
"gender": "female",
"country": "US",
"confidence": 0.9932550587059705,
"confidence_kind": "observed_frequency",
"sample_count": 4003,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "alice",
"method": "token",
"scope": "country",
"country": "US"
}
},
"meta": {
"request_id": "7c22993d-454f-4f61-8b4b-d1154d3b89ff",
"duration_ms": 13,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}推定のレスポンスフィールド
| フィールド | 型 | nullの場合あり | 例 | 説明 |
|---|---|---|---|---|
data.input | object | いいえ | {"type":"name","value":"Hiroshi","country":"JP"} | 入力の種類、値、国。trueの場合はforceToGenderizeも含まれます。 |
data.name | string | はい | "hiroshi" | 一致した名、または抽出された名。該当がない場合はnull。 |
data.gender | string | はい | "male" | male、female、またはJSONのnull。推定であり、確認された個人の属性ではありません。 |
data.result_status | string | いいえ | "identified" | 性別が返された場合はidentified、それ以外はunknown。 |
data.reason | string | はい | null | identifiedの場合はnull。不明の理由:not_found、no_name_candidate、ambiguous、insufficient_evidence。 |
data.confidence | number | はい | 0.95 | 0–1のスコア、またはnull。性別がnullの場合、信頼度もnullです。 |
data.confidence_kind | string | はい | "observed_frequency" | observed_frequency:データセットで多数を占める性別の件数÷合計件数。model_reported:AIが報告したスコアで、較正済みの確率ではありません。取得できない場合はnull。 |
data.sample_count | integer | はい | 1200 | データセットのサンプル数、またはnull。AIがサンプル数を作り出すことはありません。 |
data.source | string | いいえ | "dataset" | dataset、ai、noneのいずれか。 |
data.country | string | はい | "JP" | datasetまたはai_associationによる国との関連付け、またはnull。国籍、居住地、民族を示すものではありません。 |
data.country_source | string | はい | "dataset" | 国との関連付けの出どころ:dataset、ai_association、またはnull。 |
data.match | object | いいえ | {"name":"hiroshi","method":"normalized","scope":"country","country":"JP"} | 一致したデータセットの名前、照合方法(normalized、token、substring、model_inference)、country/globalの範囲、一致した国。取得できない根拠はnullになります。 |
アクセス、課金、リクエストのメタデータ
| フィールド | 型 | nullの場合あり | 例 | 説明 |
|---|---|---|---|---|
meta.request_id | string | いいえ | "550e8400-e29b-41d4-a716-446655440000" | このHTTPの試行を一意に識別するID。X-Request-IDでも返されます。 |
meta.duration_ms | integer | いいえ | 42 | リクエストの処理時間(ミリ秒)。 |
meta.access.mode | string | いいえ | "api_key" | api_key、ip_trial、unauthenticatedのいずれか。有料アカウントを使う場合はapi_keyであることを確認してください。 |
meta.access.reason | string | はい | null | IPトライアルに切り替わった理由:api_key_missing、api_key_invalid、api_key_not_found。それ以外はnull。 |
meta.usage.charged_credits | integer | はい | 1 | 差し引かれた正味のクレジット。課金前、または全額の払い戻しが確認された後は0。課金が未確定の場合はnull。 |
meta.usage.remaining_credits | integer | はい | 99 | 処理完了時の残高。マイナスになることがあります。取得できない場合や課金が未確定の場合はnull。 |
meta.usage.billing_status | string | いいえ | "confirmed" | not_charged、confirmed、unconfirmedのいずれか。失敗した推定を再試行する前に確認してください。 |
meta.usage.resets_at | string | はい | "2026-09-27T12:00:00.000Z" | IPトライアルのリセット時刻(UTC、ISO 8601)。APIキーのアカウントや不明な場合はnull。 |
meta.usage.limit | integer | はい | 10 | IPトライアルのクレジット上限。APIキーのアカウントではnull。 |
meta.usage.period_seconds | integer | はい | 86400 | IPトライアルの期間(秒)。APIキーのアカウントではnull。 |
メールアドレスの検証と名前の手掛かり
valueはメールアドレスとして構文上有効である必要があります。構文が無効な場合は、課金前にHTTP 422が返ります。構文の検証は、そのメールボックスが存在することや特定の人物のものであることを示すものではありません。
アドレス内に認識できる個人名があれば、データセットと一致することがあります。共有メールボックス、役割アドレス、意味の読み取れないローカル部分ではgender: nullが返ることがあります。デフォルトでは、推定できなかった単一の検索は通常のAIフォールバックを使い、成功した不明な結果も含めて合計1クレジットです。
データセットで推定できないときにニックネームを解釈するAIで推定したい場合は、forceToGenderize: trueを使用します。データセットで推定できた場合は1クレジット、AIを使った場合は合計2クレジットです。それでもAPIがnullを返すことはあります。メールアドレスのドメインはその人の所在地を示すものではありません。countryは関連するコンテキストが分かっている場合にのみ指定してください。