Skip to main content

CSV Upload Guide

Upload and validate CSV files through the GTMAPIs dashboard or the public signed-upload API flow. Dashboard uploads are designed for interactive CSV jobs; API integrations that need larger files should use the signed-upload flow in Async Validation Jobs.

Prerequisites

Before uploading a CSV:

Step-by-Step Process

1

Prepare Your CSV

Your CSV must contain an email column. Other columns are preserved in the output.
2

Upload to Dashboard

Go to Dashboard and click “Upload CSV”
3

Map Email Column

Select which column contains email addresses
4

Start Validation

Click “Validate” to begin processing
5

Receive Results

Download CSV with validation results or receive via email

CSV Format Requirements

Supported Formats

  • File type: .csv only
  • Dashboard max size: 10,000 emails per upload
  • API large-file flow: use signed upload preparation and start-processing endpoints
  • Encoding: UTF-8 recommended
  • Delimiter: Comma (,)

Example Input CSV

Column Mapping

During upload, you’ll select which column contains emails:
  • Preview shows first 5 rows
  • Click on the column header to select
  • System validates format before processing

Output Format

Added Validation Columns

Your output CSV includes 11 new columns with validation results. These are the CSV Result Adapter field names; email_status, credits_consumed, is_domain_catch_all, and b2b_quality are compatibility aliases for the canonical validation result contract.

Example Output CSV

Processing Details

Batch Processing

The system processes emails in batches:
  1. Deduplication: Removes duplicate emails (case-insensitive)
  2. Batch size: 100 emails per API request
  3. Delay: 500ms between batches to avoid rate limits
  4. Retry logic: Automatic retry on transient failures

Processing Time

Processing time varies based on DNS caching, SMTP responsiveness, provider budgets, and job size. Use the dashboard or job status endpoint to monitor progress instead of assuming fixed completion times.

Email Notification

When validation completes:
  • Email sent to your account address
  • CSV file attached
  • Summary statistics included

Credit Usage

How Credits Are Reserved and Finalized

CSV jobs reserve credits before validation starts, then finalize the charge after results are known:
  1. Upload CSV
  2. System reserves credits for unique emails
  3. System validates all emails
  4. Counts high-quality results
  5. Charges only for result: "valid" + b2b_outbound_quality: "high"
  6. Refunds the unused reserved credits
  7. Returns results

Example Credit Usage

Uploaded CSV: 1,000 emails The job may reserve up to the unique email count before processing, but the final charge is 400 credits.

Insufficient Credits

If you don’t have enough credits to reserve the upload:
  • Upload is rejected before processing starts
  • Error message shows required vs available
  • No partial processing (all-or-nothing)
Solution: Purchase more credits or reduce batch size

Best Practices

Before Uploading

Remove obvious invalids and duplicates locally:
Check your CSV before uploading:
  • Proper comma delimiters
  • No missing headers
  • Consistent column count per row
  • UTF-8 encoding (especially for international names)
  • No BOM (Byte Order Mark) issues
Before processing 10,000 emails:
  1. Extract first 100 rows
  2. Upload test batch
  3. Review results quality
  4. Adjust source or filters if needed
  5. Process full list

After Validation

Separate emails by B2B quality:
Keep records of validations:
  • Original upload date
  • Source of emails
  • Validation results summary
  • Credits consumed
  • Campaign performance per quality tier
Re-validate lists every 3-6 months as emails change
Compare campaign performance by quality:

Common Issues

CSV Upload Fails

Problem: “Invalid CSV format” error Causes:
  • Non-UTF-8 encoding
  • Inconsistent column counts
  • Missing headers
  • Special characters in data
Solution:
  1. Open CSV in text editor
  2. Check for encoding issues
  3. Verify all rows have same column count
  4. Remove special characters or escape properly

No Email Column Detected

Problem: System can’t find email column Causes:
  • Column named something other than “email”
  • Emails in wrong format
  • Empty column
Solution:
  1. Rename column to “email” (lowercase)
  2. Verify emails are in user@domain.com format
  3. Check first few rows have valid data

Processing Takes Too Long

Problem: Validation stuck or timing out Causes:
  • Large batch size
  • Many slow SMTP servers
  • Network issues
Solution:
  1. Check processing status in dashboard
  2. Wait for email notification
  3. If > 30 minutes, contact support
  4. Try smaller batches (< 5,000 emails)

Unexpected Credit Charges

Problem: Charged more credits than expected Causes:
  • Misunderstanding of credit system
  • More high-quality emails than estimated
  • Duplicates not removed
Solution:
  1. Check CSV for duplicate emails
  2. Review validation results
  3. Filter by credits_charged column
  4. Only valid + b2b_outbound_quality: "high" are charged

Programmatic CSV Validation

For automation, use the API directly:

Next Steps

Upload CSV Now

Start validating your email list

API Integration

Integrate validation into your app