Skip to main content

CSV Name Intelligence API

Validate a CSV file before processing it, then enrich each row with gender, age, ethnicity, and language predictions.

Base URL

https://api.genderrecognition.com

CSV format

CSV files must include first and last name columns. The backend accepts either camelCase or snake_case column names.

firstName,lastName
Alex,Morgan
Jamie,Patel

Uploads use the file field and must be 10 MB or smaller.

Validate endpoint

POST /v1/voice-gender-recognition/api/csv/validate

Headers

apiKey: YOUR_API_KEY
Content-Type: multipart/form-data

Body

FieldTypeRequiredDescription
filefileYesCSV file to validate.

Example

curl -X POST "https://api.genderrecognition.com/v1/voice-gender-recognition/api/csv/validate" \
-H "apiKey: YOUR_API_KEY" \
-F "file=@names.csv"

Response

{
"success": true,
"message": "CSV file validated successfully",
"csvInfo": {
"rowCount": 2,
"headers": ["firstName", "lastName"],
"sampleData": [
{
"firstName": "Alex",
"lastName": "Morgan"
}
]
},
"userInfo": {
"remainingRequests": 2999,
"canProcess": true
}
}

Process endpoint

POST /v1/voice-gender-recognition/api/csv

Headers

apiKey: YOUR_API_KEY
Content-Type: multipart/form-data

Body

FieldTypeRequiredDescription
filefileYesCSV file to process.
responseFormatstringNoUse csv to receive a CSV file. Defaults to JSON output.

JSON response example

curl -X POST "https://api.genderrecognition.com/v1/voice-gender-recognition/api/csv" \
-H "apiKey: YOUR_API_KEY" \
-F "file=@names.csv"
{
"success": true,
"message": "Successfully processed 2 rows",
"data": [
{
"firstName": "Alex",
"lastName": "Morgan",
"gender": "male",
"genderProbability": 0.86,
"age": "25-34",
"ageProbability": 0.78,
"ethnicity": "English",
"ethnicityProbability": 0.74,
"language": "English",
"languageProbability": 0.8
}
],
"summary": {
"totalRows": 2,
"processedRows": 2,
"remainingRequests": 2997
}
}

CSV response example

curl -X POST "https://api.genderrecognition.com/v1/voice-gender-recognition/api/csv" \
-H "apiKey: YOUR_API_KEY" \
-F "file=@names.csv" \
-F "responseFormat=csv"

When responseFormat is csv, the API returns text/csv with a downloadable processed file. Other values return the normal JSON response.

Error cases

Missing API key

{
"error": "API key is required"
}

Invalid API key

{
"error": "Invalid API key"
}

Missing file

{
"error": "No CSV file uploaded"
}

Invalid file type

{
"error": "Invalid file type. Only .csv format is allowed."
}

Invalid CSV columns

{
"error": "Invalid CSV format. The file must contain columns named 'firstName' or 'first_name' and 'lastName' or 'last_name'. Found columns: name"
}

Quota exceeded

{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "You have exceeded your free tier limit of 50 requests.",
"detailedMessage": "Insufficient remaining requests. Required: 2, Available: 0",
"details": {
"limit": 50,
"used": 50,
"reset_date": "2026-07-01T00:00:00.000Z"
},
"suggested_action": "Please upgrade to a premium plan to continue using the API."
}
}

Processing failed

{
"error": "Internal server error"
}