Skip to main content
A waterfall tries multiple data providers one after another until one returns a result. This is the best way to maximize email coverage without writing fallback logic yourself.

What you will do

  1. Search for a waterfall that finds emails
  2. Run it for a single contact
  3. Run it in bulk for a list

Prerequisites

  • A Databar API key (get one here)
  • A name and company (or domain) for the person you want to find

Step 1: Find a waterfall

Search available waterfalls:
curl "https://api.databar.ai/v1/waterfalls/?q=email" \
  -H "x-apikey: YOUR_API_KEY"
Each waterfall lists the providers it uses and the input parameters it expects. Pick the one that matches your data.

Step 2: Run for a single contact

curl -X POST "https://api.databar.ai/v1/waterfalls/WATERFALL_ID/run" \
  -H "x-apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "params": {
      "full_name": "John Smith",
      "company": "Google"
    }
  }'
You will receive a task_id. Poll it to get results:
curl "https://api.databar.ai/v1/tasks/YOUR_TASK_ID" \
  -H "x-apikey: YOUR_API_KEY"
The response includes which provider returned the result and whether the email was verified.

Step 3: Run in bulk

For multiple contacts, use the bulk endpoint:
curl -X POST "https://api.databar.ai/v1/waterfalls/WATERFALL_ID/bulk-run" \
  -H "x-apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "params": [
      {"full_name": "Sarah Chen", "company": "Stripe"},
      {"full_name": "James Lee", "company": "Notion"}
    ]
  }'
Task data is stored for 24 hours. Make sure to retrieve and save your results before they expire.

With the Python SDK

from databar import DatabarClient

client = DatabarClient()

result = client.run_waterfall_sync(WATERFALL_ID, {
    "full_name": "John Smith",
    "company": "Google"
})
print(result)

# Bulk
results = client.run_waterfall_bulk_sync(WATERFALL_ID, [
    {"full_name": "Sarah Chen", "company": "Stripe"},
    {"full_name": "James Lee", "company": "Notion"},
])
for r in results:
    print(r)

Next steps

Enrich leads

Enrich a batch of leads with company and contact data.

Table enrichment pipeline

Store data in a table and run enrichments across all rows.