Email APIs
Find and verify email addresses at scale. Both endpoints use webhook delivery for results and support polling via inquiry endpoints.
Looking for a single-record lookup? The endpoints below are built for bulk, asynchronous jobs — you POST a batch and collect results via webhook or polling. For per-row, synchronous calls (1–3 s latency, single result, pay-for-success billing) use the sync Waterfall Enrichment endpoints instead:
POST /email_finder— find one email by name + domain or LinkedIn URLPOST /email_verifier— verify one email address
The email_finding and email_verification endpoints on this page are
the right choice when you need to process hundreds or thousands of
records in one call.
Email Finding
Find email addresses for people using their first name, last name, and company domain. Supports batch requests.
Endpoint: POST /email_finding
Credits: 2 per person in the data array
Request
curl -X POST https://v3-api.texau.com/api/v1/email_finding \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhook": "https://yourapp.com/webhooks/email-results",
"data": [
{
"refId": "ref-001",
"firstname": "Linda",
"lastname": "Smith",
"domain": "acme.com"
},
{
"refId": "ref-002",
"firstname": "John",
"lastname": "Doe",
"domain": "acme.com"
}
]
}'
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
webhook | string | Yes | Your URL where results will be delivered via POST |
data | array | Yes | List of people to find emails for |
data[].refId | string | No | Your unique reference ID (returned in results) |
data[].firstname | string | Conditional | First name (either firstname or lastname required) |
data[].lastname | string | Conditional | Last name (either firstname or lastname required) |
data[].domain | string | Yes | Company domain |
Response (Immediate)
{
"id": "1ea83076-8a42-47c1-bd2b-25da8085b3a7",
"state": "DONE"
}
Webhook Delivery
When processing completes, results are POSTed to your webhook URL:
{
"id": "1ea83076-8a42-47c1-bd2b-25da8085b3a7",
"state": "DONE",
"data": [
{
"refId": "ref-001",
"state": "DONE",
"input": {
"firstname": "Linda",
"lastname": "Smith",
"domain": "acme.com"
},
"output": [
{
"address": "[email protected]",
"status": "VALID",
"subStatus": "SMTP",
"free": false,
"found": true
}
]
}
]
}
How It Works
-
You send a batch of people with their names and company domains
-
You provide your webhook URL where results will be delivered
-
You receive an immediate response with a job
id -
When processing completes, results are POSTed to your webhook
-
You can also poll results using the inquiry endpoint (see below)
Email Finding Inquiry
Check the status or retrieve results of an email finding job.
Endpoint: GET /email_finding_inquiry/{id}
Credits: Free (0 credits)
Request
curl https://v3-api.texau.com/api/v1/email_finding_inquiry/1ea83076-8a42-47c1-bd2b-25da8085b3a7 \
-H "x-api-key: YOUR_API_KEY"
Response
{
"id": "1ea83076-8a42-47c1-bd2b-25da8085b3a7",
"state": "DONE",
"description": null,
"data": [
{
"refId": "ref-001",
"state": "DONE",
"input": {
"firstname": "Linda",
"lastname": "Smith",
"domain": "acme.com"
},
"output": [
{
"address": "[email protected]",
"status": "VALID",
"subStatus": "SMTP",
"free": false,
"found": true
}
]
}
]
}
Job States
| State | Description |
|---|---|
PROCESSING | Job is still running |
DONE | All results are ready |
FAILED | Job encountered an error |
Email Verification
Verify the validity and deliverability of email addresses. Supports batch requests and catch-all detection.
Endpoint: POST /email_verification
Credits: 0.5 per email in the data array
Request
curl -X POST https://v3-api.texau.com/api/v1/email_verification \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhook": "https://yourapp.com/webhooks/verification-results",
"data": [
{
"refId": "ref-001",
"email": "[email protected]"
},
{
"refId": "ref-002",
"email": "[email protected]"
}
]
}'
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
webhook | string | Yes | Your URL where results will be delivered via POST |
data | array | Yes | List of emails to verify |
data[].refId | string | No | Your unique reference ID |
data[].email | string | Yes | Email address to verify |
Response (Immediate)
{
"id": "450f4ca3-0c48-47be-bb52-4ba2546742b8",
"state": "DONE"
}
Webhook Delivery
{
"id": "450f4ca3-0c48-47be-bb52-4ba2546742b8",
"state": "DONE",
"data": [
{
"refId": "ref-001",
"state": "DONE",
"input": {
"email": "[email protected]"
},
"output": [
{
"address": "[email protected]",
"status": "VALID",
"subStatus": "SMTP",
"free": false,
"found": true
}
]
}
]
}
Email Status Values
| Status | Description |
|---|---|
VALID | Email exists and can receive mail |
INVALID | Email does not exist or cannot receive mail |
CATCH_ALL | Domain accepts all emails (cannot confirm individual address) |
UNKNOWN | Could not determine status |
Sub-Status Values
| Sub-Status | Description |
|---|---|
SMTP | Verified via SMTP handshake |
MAILBOX_NOT_FOUND | Mailbox does not exist |
MAILBOX_FULL | Mailbox is full |
DISPOSABLE | Temporary/disposable email address |
Email Verification Inquiry
Check the status or retrieve results of an email verification job.
Endpoint: GET /email_verification_inquiry/{id}
Credits: Free (0 credits)
Request
curl https://v3-api.texau.com/api/v1/email_verification_inquiry/450f4ca3-0c48-47be-bb52-4ba2546742b8 \
-H "x-api-key: YOUR_API_KEY"
Response format is identical to the webhook delivery payload above.
Webhook Best Practices
-
Respond with 2xx quickly. Your webhook endpoint should return a 200 status within a few seconds. Do heavy processing asynchronously.
-
Use**
refId**** for matching.** Include your own reference IDs in each item so you can match results back to your records. -
Implement the inquiry endpoint as backup. If your webhook endpoint is temporarily down, you can always retrieve results by polling the inquiry endpoint.
-
Batch for efficiency. Send up to hundreds of items in a single request to minimize API calls and get results faster.
Last updated 2 weeks ago
Built with Documentation.AI