# Clay Email Verification via HTTP API — Ravn

Canonical: https://askravn.com/integrations/clay

Integrations · Clay

# Ravn in Clay, as an HTTP API column

In a Clay table, add an HTTP API enrichment that POSTs to https://api.askravn.com/v1/tools/<tool> with your Bearer key and a JSON body built from your columns, then map the fields you want from the response into new columns.
[Start free: 1,000 lookups](https://askravn.com/#start) [Read the docs](https://askravn.com/docs)

Setup
## Add the HTTP API enrichment

- / 01
### Get a key
Create a key after you [sign up with an email code](https://askravn.com/pricing), or run `npx ravn login`. Keys start with `rw_live_`.
- / 02
### Add the enrichment
In your table, add a column, choose to add an enrichment and search for HTTP API.
- / 03
### Fill in the request
Method `POST`. Endpoint `https://api.askravn.com/v1/tools/validate_email`. Add headers `Authorization: Bearer rw_live_…` and `Content-Type: application/json`.
- / 04
### Build the body from columns
Paste the JSON body below and replace the placeholder with a reference to your email column using Clay’s column picker.
- / 05
### Choose output fields
Run it on one row, then pick `status`, `results.status` and `results.risk_score` as new columns. Add a run condition so rows with an empty email are skipped.
Config
## Request bodies for common columns
One body per enrichment column. Insert your own column references where the angle-bracket placeholders are.
```
Endpoint: https://api.askravn.com/v1/tools/validate_email
{ "email": "<Email column>" }

Endpoint: https://api.askravn.com/v1/tools/search_business_email_by_name
{ "name": "<Full Name column>", "company": "<Company Domain column>" }

Endpoint: https://api.askravn.com/v1/tools/scrape_website
{ "domain": "<Company Domain column>" }

Headers on every column:
Authorization: Bearer rw_live_…
Content-Type: application/json
```

Recipes
## Waterfalls that use it

- / 01
### Verify the last step of a waterfall
Whatever source found an email, add a Ravn `validate_email` column after it and only push rows whose `results.status` is `valid` to your sequencer.
- / 02
### Find, then fall back
Run `search_business_email_by_name` first; it learns the pattern from the company’s own site. Only rows that come back `not_found` (free) go on to your next provider.
- / 03
### Fill company context
Use `scrape_website` for a description, socials and `technologies[]` (our own check, no key), or [company records](https://askravn.com/features/company-enrichment-api) on your own provider key for headcount and industry.
Good to know
## Reading the response in Clay
Every Ravn answer is HTTP 200 with a top-level `status`. When it is `ok`, the data sits under `results`; when it is `not_found`, `results` is empty and you were not charged. Map the top-level `status` into its own column so you can filter on it, and use it as the run condition for any column that depends on a found email.
The `metadata` object shows `lookups_used` and `lookups_remaining_5h` for each call, which is handy for a cost column while you tune a table. Field meanings for every tool are in [the tool reference](https://askravn.com/docs#tools), and [the data page](https://askravn.com/data) explains the own-key model: people and company lookups run on your own provider account, and Ravn stores nothing.
FAQ
## Common questions.
[All questions →](https://askravn.com/faq)Does Ravn scrape LinkedIn for Clay enrichments?No. The email finder and website tools use the company’s own site and mail servers. People and company records run on your own provider key (People Data Labs); Ravn makes the call, stores nothing, and opted-out people are removed.Do I pay Clay credits and Ravn lookups?Ravn charges one lookup per call, only on hits; people and company lookups also run on your own provider key, which bills you for the records. How Clay charges for running an HTTP API column is set by your Clay plan, so check that on Clay’s side.Why is my whole column showing errors?Look at one failed cell. A 401 is a wrong or missing `Bearer` prefix, 422 means the body does not match the tool’s schema (for example `company` missing), and 429 means the 5-hour window is used up. All codes are in [the error reference](https://askravn.com/docs#errors).Can I verify a big Clay table in one request?A Clay column runs per row, so each row is its own request. For a one-off clean of a large table, export it and use [the CSV enrich command](https://askravn.com/integrations/csv), then import the result.

## More in [integrations](https://askravn.com/integrations)
Every page uses the same account, plan and tools. [See pricing →](https://askravn.com/pricing)
- [CSV Email Verification & EnrichmentVerify or enrich any CSV with npx ravn enrich: keeps every column, adds rw_* results, saves progress every 25 rows and resumes after a stop..](https://askravn.com/integrations/csv)
- [Cursor MCP Server for Contact DataConnect Ravn to Cursor with a few lines in mcp.json, so Cursor’s agent can verify emails, find work addresses and look up companies while you code..](https://askravn.com/integrations/cursor)
- [Google Sheets Email VerificationVerify a column of emails in Google Sheets with an Apps Script custom function that calls Ravn, with your key kept in Script Properties..](https://askravn.com/integrations/google-sheets)
- [HubSpot Email Verification & EnrichmentVerify and enrich HubSpot contacts with Ravn: export a CSV, run npx ravn enrich, import the results back, or let Claude do it with both connectors..](https://askravn.com/integrations/hubspot)
- [JavaScript & Node.js Email Verification APICall Ravn from Node with built-in fetch: a small typed-free client that branches on status, waits on 429 Retry-After and throws clear error codes..](https://askravn.com/integrations/javascript)
- [Make.com Email Verification & EnrichmentCall Ravn from a Make scenario with the HTTP app’s Make a request module: JSON body, Bearer header, parsed response you can map and filter..](https://askravn.com/integrations/make)
