Bulk Email Search: Create with File Upload
Use this API endpoint to create a Bulk Email Search by uploading a file (CSV or Excel). The system determines the type of email search to perform based on the fields you map.
Endpoint
https://api.anymailfinder.com
/v5.1/bulk/multipartPricing
This endpoint is free to use.
Credits are only charged when you download the results for the first time.
Authentication
Include your API key using the Authorization header.
Refer to the Authentication page for setup instructions.
Code example
curl -X POST "https://api.anymailfinder.com/v5.1/bulk/multipart" \-H "Authorization: YOUR_API_KEY" \-H "Content-Type: multipart/form-data" \-F "file=@your-leads-file.csv" \-F "domain_field_index=0" \-F "first_name_field_index=1" \-F "last_name_field_index=2" \-F "file_name=tech_ceos"
Request parameters
Send as "multipart/form-data" in the POST body:
| Parameter | Example value | Description | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filefile | "your-leads-file.csv" | A CSV or Excel file containing your data. The first row should contain headers. | ||||||||||||||||||||||
company_name_field_indexinteger - optional | null | The zero-based index of the column containing the company name. | ||||||||||||||||||||||
decision_maker_categorystring[] - optional |
| One or more categories of the decision maker(s) to search for. If multiple are provided, they are treated in order of importance and the result will use the first category that resolves to a valid email.
| ||||||||||||||||||||||
domain_field_indexinteger - optional | 0 | The zero-based index of the column containing the domain. | ||||||||||||||||||||||
email_field_indexinteger - optional | null | The zero-based index of the column containing the emails to validate. | ||||||||||||||||||||||
file_namestring - optional | null | A label to identify the bulk search. | ||||||||||||||||||||||
first_name_field_indexinteger - optional | 1 | The zero-based index of the column containing the first name. | ||||||||||||||||||||||
full_name_field_indexinteger - optional | null | The zero-based index of the column containing the full name. | ||||||||||||||||||||||
last_name_field_indexinteger - optional | 2 | The zero-based index of the column containing the last name. | ||||||||||||||||||||||
linkedin_url_field_indexinteger - optional | null | The zero-based index of the column containing the LinkedIn URL. | ||||||||||||||||||||||
webhook_urlstring - optional | null | URL to receive a webhook notification when processing completes. |
The type of email search performed depends on the fields you map:
- Email Search by Name:
- map
domain_field_indexorcompany_name_field_index(domain_field_indexis recommended for better accuracy). - map
full_name_field_indexorfirst_name_field_indexandlast_name_field_index(full_name_field_indexis recommended for better accuracy).
- map
- Email Search by Decision Maker:
- map
domain_field_indexorcompany_name_field_index(domain_field_indexis recommended for better accuracy). - specify a
decision_maker_category.
- map
- Email Search by LinkedIn URL:
- map
linkedin_url_field_index.
- map
- Email Search by Company:
- map
domain_field_indexorcompany_name_field_index(domain_field_indexis recommended for better accuracy).
- map
- Email Verification:
- map
email_field_index.
- map
Response
200OK
The search has been successfully created and will process asynchronously.
- If you specified a webhook URL, you will receive a notification when the search is completed.
- Otherwise, use the Bulk Search Detail API endpoint to check the search status.
{"counts": {"failed": 0,"found_unknown": 0,"found_valid": 0,"not_found": 0,"total": 0},"created_at": "2025-01-08T13:25:36.457Z","credits_needed": 0,"decision_maker_category": "finance,ceo","file_name": "string","id": "string","paid": true,"started_running_at": "2025-01-08T13:25:36.457Z","status": "queued"}
| Property | Type | Description |
|---|---|---|
status | string | The current status of the bulk search. Possible values:
|
counts.failed | integer | Number of rows where the search failed. |
counts.found_unknown | integer | Number of rows with risky emails found. |
counts.found_valid | integer | Number of rows with valid emails found. |
counts.not_found | integer | Number of rows where no email was found. |
counts.total | integer | Total number of rows in the search. |
created_at | string | The datetime when the search was created. |
credits_needed | integer | The maximum credits required to download the results. Duplicate searches within a month are not charged. |
decision_maker_category | string | null | The decision maker categories specified during search creation. This is a comma-separated list. |
file_name | string | The label provided to identify this search. |
id | string | Unique identifier for this bulk search. |
paid | boolean | Indicates whether this search was paid for. |
started_running_at | string | null | The datetime when the search started processing. |
400Bad Request
The request is missing required data or is improperly formatted.
Review the message field to identify and correct the issue.
{"error": "bad_request","message": "..."}
401Unauthorized
The request did not include a valid API key.
Refer to the Authentication page to ensure your API key is properly included.
{"error": "unauthorized","message": "Missing or invalid API key."}
Need Help?
Our team is experienced with APIs and is here to help.
Chat with us.