Gender from email · Multiple request

Analyze multiple emails in one request

Extract names and predict gender for up to 50 email addresses with optional country and record IDs.

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

Bulk request overview

Process up to 50 email addresses

Send a data array. GenderAPI extracts a likely name from every address and returns the matching prediction; your optional id makes database correlation deterministic.

MethodPOST
Maximum50 emails
AuthenticationBearer token
Result formatnames[]
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 50 email records.
data[].emailstringRequiredEmail address from which GenderAPI extracts a likely first name.
data[].countrystringOptionalISO 3166-1 alpha-2 country code used as regional context.
data[].idstring | integerOptionalYour record identifier, returned unchanged with the corresponding result.
Record matching

Use a unique id for each item. GenderAPI returns it with that item’s result, allowing you to update the correct database record without relying on array position alone.

Request payload

Build the email array

JSON
{
  "data": [
    { "email": "andrea.schmidt@example.com", "country": "DE", "id": "123" },
    { "email": "andrea.rossi@example.it", "country": "IT", "id": "456" },
    { "email": "james.brown@example.com", "country": "US", "id": "789" }
  ]
}

Code examples

Send a multiple-email request

cURL
curl -X POST "https://api.genderapi.io/api/email/multi/country" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"data":[{"email":"andrea.schmidt@example.com","country":"DE","id":"123"},{"email":"james.brown@example.com","country":"US","id":"789"}]}'
JavaScript
const data = [
  { email: "andrea.schmidt@example.com", country: "DE", id: "123" },
  { email: "james.brown@example.com", country: "US", id: "789" }
];
const response = await fetch("https://api.genderapi.io/api/email/multi/country", {
  method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Bearer YOUR_API_KEY" },
  body: JSON.stringify({ data })
});

200 response

Extracted names and predictions

JSON
{
  "status": true, "used_credits": 3, "remaining_credits": 7265,
  "expires": 1717069765,
  "names": [
    { "name": "Andrea", "q": "andrea.schmidt@example.com", "gender": "female", "country": "DE", "total_names": 644, "probability": 88, "id": "123" },
    { "name": "James", "q": "james.brown@example.com", "gender": "male", "country": "US", "total_names": 45274, "probability": 100, "id": "789" }
  ], "duration": "5ms"
}

Response fields

FieldTypeDescription
statusbooleanWhether the bulk request completed successfully.
used_creditsintegerCredits consumed across all submitted emails.
remaining_creditsintegerCredits available after the request.
expiresintegerPackage expiration time as a UNIX timestamp.
namesobject[]Ordered collection of results for the submitted emails.
names[].namestringFirst name extracted from the email address.
names[].qstringOriginal email 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 50 records

Validate every address and split larger datasets into batches of no more than 50. Check the extracted name and probability before applying a result.

Next guide

Determine gender from a username

Username single requestExtract a name from one username →Email single requestUse AI fallback for one email →