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.
Add the HTTP API enrichment
- / 01
Get a key
Create a key after you sign up with an email code, or run
npx ravn login. Keys start withrw_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. Endpointhttps://api.askravn.com/v1/tools/validate_email. Add headersAuthorization: Bearer rw_live_…andContent-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.statusandresults.risk_scoreas new columns. Add a run condition so rows with an empty email are skipped.
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/jsonWaterfalls that use it
- / 01
Verify the last step of a waterfall
Whatever source found an email, add a Ravn
validate_emailcolumn after it and only push rows whoseresults.statusisvalidto your sequencer. - / 02
Find, then fall back
Run
search_business_email_by_namefirst; it learns the pattern from the company’s own site. Only rows that come backnot_found(free) go on to your next provider. - / 03
Fill company context
Use
scrape_websitefor a description, socials andtechnologies[](our own check, no key), or company records on your own provider key for headcount and industry.
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, and the data page explains the own-key model: people and company lookups run on your own provider account, and Ravn stores nothing.
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.
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, then import the result.
More in integrations
Every page uses the same account, plan and tools. See pricing →