Gender from name · Multiple request

Analyze multiple names in one request

Submit up to 100 names with optional country context and your own record identifiers.

POSThttps://api.genderapi.io/api/name/multi/country

Bulk request overview

Process up to 100 names

Send a data array and receive one result per record. Add an id from your system to reliably join each prediction back to its source record.

MethodPOST
Maximum100 names
AuthenticationBearer token
AI fallbackNot supported
Bulk requests do not use AI inference.

askToAI and forceToGenderize are unavailable. For names in non-Latin scripts or inputs that need AI fallback, use the single-name endpoint.

HDR

Required HTTP headers

Authorize the bulk request

Content-Typeapplication/json
AuthorizationBearer YOUR_API_KEY

JSON request body

Parameters

FieldTypeRequirementDescription
dataobject[]RequiredArray containing between 1 and 100 name records.
data[].namestringRequiredFirst name to analyze.
data[].countrystringOptionalISO 3166-1 alpha-2 country code. Falls back to a global result when no country result exists.
data[].idstring | integerOptionalYour record identifier, returned unchanged so results can be matched to input records.
Country fallback

If no match exists for the supplied country, GenderAPI returns the available global name result. Use ISO 3166-1 alpha-2 values such as DE, IT or US.

Request payload

Build the data array

JSON
{
  "data": [
    { "name": "Andrea", "country": "DE", "id": "123" },
    { "name": "andrea", "country": "IT", "id": "456" },
    { "name": "james", "country": "US", "id": "789" }
  ]
}

Code examples

Send a multiple-name request

cURL
curl -X POST "https://api.genderapi.io/api/name/multi/country" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"data":[{"name":"Andrea","country":"DE","id":"123"},{"name":"andrea","country":"IT","id":"456"}]}'
JavaScript
const data = [
  { name: "Andrea", country: "DE", id: "123" },
  { name: "andrea", country: "IT", id: "456" }
];

const response = await fetch("https://api.genderapi.io/api/name/multi/country", {
  method: "POST",
  headers: { "Content-Type": "application/json", "Authorization": "Bearer YOUR_API_KEY" },
  body: JSON.stringify({ data })
});

200 response

Match results with your records

JSON
{
  "status": true,
  "used_credits": 3,
  "remaining_credits": 7265,
  "expires": 1717069765,
  "names": [
    { "name": "andrea", "q": "Andrea", "gender": "female", "country": "DE", "total_names": 644, "probability": 88, "id": "123" },
    { "name": "andrea", "q": "andrea", "gender": "male", "country": "IT", "total_names": 13537, "probability": 98, "id": "456" }
  ],
  "duration": "5ms"
}

Response fields

FieldTypeDescription
statusbooleanWhether the bulk request completed successfully.
used_creditsintegerCredits consumed across all submitted names.
remaining_creditsintegerCredits available after the request.
expiresintegerPackage expiration time as a UNIX timestamp.
namesobject[]Ordered collection of name prediction results.
names[].namestringNormalized name used for the prediction.
names[].qstringOriginal name submitted in the request.
names[].genderstring | nullPredicted value: male, female or null.
names[].countrystringCountry code considered for this result.
names[].total_namesintegerNumber of samples supporting this result.
names[].probabilityintegerPrediction confidence as a percentage.
names[].idstring | integerInput identifier returned for record correlation.
durationstringTotal server processing time.

Keep each request within 100 records

Validate the array before sending it and use a unique id for deterministic record matching. Split larger datasets into batches of no more than 100 names.

Next guide

Determine gender from an email

Email single requestExtract and analyze a name from email →Name single requestUse AI fallback for one name →