openapi: 3.0.3
info:
title: Genderize.io Gender Prediction API
description: 'Free REST API that predicts the gender of a first name with probability scores based on name statistics from millions of users worldwide. Part of the Demografix suite alongside Agify (age prediction) and Nationalize (nationality prediction), sharing a single API key across all three services.
'
version: 1.0.0
contact:
url: https://genderize.io
license:
name: Commercial / Free Tier
url: https://genderize.io/pricing
servers:
- url: https://api.genderize.io
description: Production API server
tags:
- name: Gender Prediction
description: Predict the gender of one or more first names.
paths:
/:
get:
operationId: predictGender
summary: Predict gender for a name or batch of names
description: 'Accepts a single first name or up to 10 names in a batch and returns gender predictions (male, female, or null) along with probability scores and sample counts. Optionally scoped to a specific country using an ISO 3166-1 alpha-2 country code.
'
tags:
- Gender Prediction
parameters:
- name: name
in: query
description: 'Single first name to predict gender for. Mutually exclusive with the batch form `name[]`.
'
required: false
schema:
type: string
example: James
- name: name[]
in: query
description: 'Batch of first names (up to 10). Repeat the parameter for each name, e.g. `?name[]=James&name[]=Mary`.
'
required: false
style: form
explode: true
schema:
type: array
items:
type: string
maxItems: 10
example:
- James
- Mary
- name: country_id
in: query
description: 'Two-letter ISO 3166-1 alpha-2 country code used to localize predictions to a specific country''s naming conventions.
'
required: false
schema:
type: string
pattern: ^[A-Z]{2}$
example: US
- name: apikey
in: query
description: 'API key obtained from the account dashboard. Required for more than 100 names per day (free tier) or to access paid plan quotas.
'
required: false
schema:
type: string
example: abc123def456
responses:
'200':
description: Successful gender prediction response.
headers:
X-Rate-Limit-Limit:
description: Total number of names allowed in the current rate-limit window.
schema:
type: integer
X-Rate-Limit-Remaining:
description: Number of names remaining in the current rate-limit window.
schema:
type: integer
X-Rate-Limit-Reset:
description: Seconds until the current rate-limit window resets.
schema:
type: integer
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/GenderPrediction'
- type: array
items:
$ref: '#/components/schemas/GenderPrediction'
examples:
single:
summary: Single name prediction
value:
name: james
gender: male
probability: 0.98
count: 3547638
batch:
summary: Batch name prediction
value:
- name: james
gender: male
probability: 0.98
count: 3547638
- name: mary
gender: female
probability: 0.99
count: 2164301
withCountry:
summary: Country-scoped prediction
value:
name: andrea
gender: female
probability: 0.74
count: 312845
unknownGender:
summary: Name with unknown gender
value:
name: xyz
gender: null
probability: null
count: 0
'401':
description: Invalid or missing API key.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Invalid API key
'402':
description: Subscription limit reached or payment required.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Request limit reached
'422':
description: Unprocessable request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Missing 'name' parameter
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Request limit reached
components:
schemas:
GenderPrediction:
type: object
description: Gender prediction result for a single name.
properties:
name:
type: string
description: The name as processed by the API.
example: james
gender:
type: string
nullable: true
enum:
- male
- female
description: 'Predicted gender. Null when there is insufficient data to make a prediction.
'
example: male
probability:
type: number
format: float
nullable: true
minimum: 0
maximum: 1
description: 'Confidence score for the gender prediction, between 0 and 1. Null when gender is null.
'
example: 0.98
count:
type: integer
description: 'Number of data samples used to make the prediction. A higher count generally indicates a more reliable prediction.
'
example: 3547638
required:
- name
- gender
- probability
- count
ErrorResponse:
type: object
description: Error response returned for 4xx status codes.
properties:
error:
type: string
description: Human-readable description of the error.
example: Missing 'name' parameter
required:
- error