---
title: "Batch email validation from CSV file upload"
method: POST
path: "/api/v1/email/advanced/batch/csv"
tags: ["Advanced Email Validation API"]
---

# Batch email validation from CSV file upload

`POST /api/v1/email/advanced/batch/csv`

Validates multiple email addresses from a CSV file upload with advanced SMTP verification.

**CSV File Requirements**:
- First column must contain email addresses
- Headers optional (will be detected automatically)  
- Maximum 100 emails per file
- Supported formats: .csv, .txt with comma/semicolon separation
- Maximum file size: 1MB

**File Format Examples**:
```csv
email
user1@example.com
user2@gmail.com
user3@company.org
```

Or without headers:
```csv
user1@example.com
user2@gmail.com
user3@company.org
```

**Batch Processing Features**:
- Synchronous processing with complete validation
- All-or-nothing quota deduction (only charged after successful completion)
- Comprehensive validation results for each email
- Detailed statistics for the batch operation

**Quota Management**:
- One quota unit deducted per email address
- Quota deducted only after ALL validations complete successfully
- No quota charged if file processing or validation fails

**Performance**: 
- File processing: <1 second for parsing
- Email validation: ~500ms-2s per email due to SMTP checks
- Total processing time: 5-200 seconds depending on file size

**Use Cases**:
- Marketing list validation from exports
- CRM data cleaning operations
- Lead import with validation
- Email list quality assessment

## Response `200`

CSV batch validation completed successfully

- BatchEmailValidationResponseDto — Response object containing validation results for all processed emails in a batch request.
  - `results` object, required — Map of email addresses to their validation results. The key is the original email address, and the value is the complete validation result.
  - `totalProcessed` integer, required — Total number of emails processed in this batch.
  - `successfulValidations` integer, required — Number of emails that were successfully validated.
  - `failedValidations` integer, required — Number of emails that failed validation (returned null from service).

## Other responses

- `400` — Bad Request - Invalid CSV format, empty file, no emails found, or exceeds maximum batch size
- `429` — Too Many Requests - Insufficient quota for batch operation
- `500` — Internal Server Error - File processing or batch validation failed
- `503` — Service Unavailable - Batch email validation service is disabled or unreachable

---

[API](https://skmtc.dev/ip-api/apis/ip-api-io-ip-geolocation-security-api.md) · [All operations](https://skmtc.dev/ip-api/apis/ip-api-io-ip-geolocation-security-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ip-api/ip-api-io-ip-geolocation-security-api/revisions/a6862f586bf3/schema)
