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
| Field | Type | Required | Description |
|---|---|---|---|
file | file | Yes | CSV 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
| Field | Type | Required | Description |
|---|---|---|---|
file | file | Yes | CSV file to process. |
responseFormat | string | No | Use 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"
}