logo
API GuidesEmails

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 URL
  • POST /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

FieldTypeRequiredDescription
webhookstringYesYour URL where results will be delivered via POST
dataarrayYesList of people to find emails for
data[].refIdstringNoYour unique reference ID (returned in results)
data[].firstnamestringConditionalFirst name (either firstname or lastname required)
data[].lastnamestringConditionalLast name (either firstname or lastname required)
data[].domainstringYesCompany 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

  1. You send a batch of people with their names and company domains

  2. You provide your webhook URL where results will be delivered

  3. You receive an immediate response with a job id

  4. When processing completes, results are POSTed to your webhook

  5. 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

StateDescription
PROCESSINGJob is still running
DONEAll results are ready
FAILEDJob 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

FieldTypeRequiredDescription
webhookstringYesYour URL where results will be delivered via POST
dataarrayYesList of emails to verify
data[].refIdstringNoYour unique reference ID
data[].emailstringYesEmail 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

StatusDescription
VALIDEmail exists and can receive mail
INVALIDEmail does not exist or cannot receive mail
CATCH_ALLDomain accepts all emails (cannot confirm individual address)
UNKNOWNCould not determine status

Sub-Status Values

Sub-StatusDescription
SMTPVerified via SMTP handshake
MAILBOX_NOT_FOUNDMailbox does not exist
MAILBOX_FULLMailbox is full
DISPOSABLETemporary/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

  1. Respond with 2xx quickly. Your webhook endpoint should return a 200 status within a few seconds. Do heavy processing asynchronously.

  2. Use**refId**** for matching.** Include your own reference IDs in each item so you can match results back to your records.

  3. Implement the inquiry endpoint as backup. If your webhook endpoint is temporarily down, you can always retrieve results by polling the inquiry endpoint.

  4. Batch for efficiency. Send up to hundreds of items in a single request to minimize API calls and get results faster.