Gender from username · Multiple request

Analyze multiple usernames

Extract potential names and predict gender for up to 50 handles with country and record context.

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

Bulk request overview

Process up to 50 usernames

Send a data array. GenderAPI extracts potential name signals from each handle and returns results with your optional record id.

MethodPOST
Maximum50 usernames
AuthenticationBearer token
AI optionsNot supported
Bulk username results need careful review.

Handles may contain brands, fantasy terms or unrelated words. Bulk requests do not accept askToAI or forceToGenderize. For higher-confidence handling of unusual inputs, use the single request.

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 username records.
data[].usernamestringRequiredUsername or handle to analyze; underscores and numbers are supported.
data[].countrystringOptionalISO 3166-1 alpha-2 country code used as regional context.
data[].idstring | integerOptionalYour identifier, returned unchanged with the corresponding result.
Input guidance

Latin-character usernames generally provide clearer name signals. Use unique id values and evaluate the extracted name and probability before updating records.

Request payload

Build the username array

JSON
{
  "data": [
    { "username": "anna_smith88", "country": "US", "id": "123" },
    { "username": "michael_bauer", "country": "DE", "id": "456" },
    { "username": "giulia_rossi", "country": "IT", "id": "789" }
  ]
}

Code examples

Send a multiple-username request

cURL
curl -X POST "https://api.genderapi.io/api/username/multi/country" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"data":[{"username":"anna_smith88","country":"US","id":"123"},{"username":"michael_bauer","country":"DE","id":"456"}]}'
JavaScript
const data = [
  { username: "anna_smith88", country: "US", id: "123" },
  { username: "michael_bauer", country: "DE", id: "456" }
];
const response = await fetch("https://api.genderapi.io/api/username/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": "Anna", "q": "anna_smith88", "gender": "female", "country": "US", "total_names": 1234, "probability": 92, "id": "123" },
    { "name": "Michael", "q": "michael_bauer", "gender": "male", "country": "DE", "total_names": 5678, "probability": 89, "id": "456" }
  ], "duration": "5ms"
}

Response fields

FieldTypeDescription
statusbooleanWhether the bulk request completed successfully.
used_creditsintegerCredits consumed across submitted usernames.
remaining_creditsintegerCredits available after the request.
expiresintegerPackage expiration time as a UNIX timestamp.
namesobject[]Results for the submitted usernames.
names[].namestringPotential name extracted from the username.
names[].qstringOriginal username 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

Split larger inputs into batches. A username is an indirect signal, so verify the extracted name and establish an acceptable probability threshold before applying results.

Next reference

Validate and format phone numbers

Phone validationReview validation and formatting methods →Username single requestUse AI options for one handle →