GTM engineering is building the system that finds, enriches and routes leads without a human in the loop. The enrichment step is where it usually breaks: a waterfall that takes four seconds, a vendor that charges for empty results, a value with no way to tell how old it is. This page is the recipes, the credit math per row, and where to put us in your waterfall.
Clay: an HTTP API column, no provider needed
Works today on any Clay plan. Map work_email.value and work_email.state to columns, then a formula column that only passes verified rows to your sending tool.
Method: POST
URL: https://api.heyenrich.io/v1/lookup
Headers: Authorization: Bearer {{HEYENRICH_KEY}}
Content-Type: application/json
Body: {
"linkedin_url": "{{LinkedIn URL}}",
"fields": ["work_email", "mobile"]
}
Columns to map:
work_email.value, work_email.state, work_email.checked_at
mobile.value, mobile.line_type, mobile.state
credits_chargedn8n: an HTTP Request node, or the community node
The community node adds Lookup, Bulk, Company and Verify operations. The raw HTTP node works on any n8n version.
{
"parameters": {
"method": "POST",
"url": "https://api.heyenrich.io/v1/lookup",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ { linkedin_url: $json.linkedin_url, fields: ['work_email'] } }}"
},
"name": "HeyEnrich lookup",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2
}
// then an IF node on {{ $json.work_email.state }} === "verified"Credit math per row
What a 1,000-row Clay table costs, at our average find rates for US and UK lists.
| Fields requested | Expected finds | Credits and phones | Plan that covers it |
|---|---|---|---|
| work_email | 780 | 780 credits | Starter, $29 |
| work_email + mobile | 780 + 520 | 780 credits + 520 phones | Starter, $29 |
| mobile only | 520 | 520 phones | Starter, $29 |
| personal_email only | 410 | 820 credits | Starter, $29 |
Misses cost nothing, so the table assumes you request only what you will use. Starter covers 10,000 credits and 2,000 phones a month for $29; Growth covers 30,000 and 10,000 for $49.
Where to put us in a waterfall
First, for speed and cost
One query, 180 ms, nothing on a miss. Anything we return has a state and a date; anything we don't costs you nothing before the next provider.
Last, for coverage gaps
If a specialist covers your region better, run them first and send the misses to us. Our coverage page tells you which it is before you build the table.
Alone, for bulk
A 10,000-row file runs in under 15 minutes through /v1/bulk with a webhook on completion. No table, no per-row orchestration.
GTM engineer questions
What is a GTM engineer?
Someone who builds the go-to-market system rather than working inside it: sourcing, enrichment, scoring and routing as pipelines in tools like Clay and n8n, with code where needed. The enrichment step is the one this page is about.
Is there an MCP server?
Not yet. It ships when it works. The REST API is one endpoint, so an agent can call it with a single tool definition in the meantime.
Can I get a suppression webhook?
Yes. Subscribe to person.suppressed and delete the record on your side when someone opts out. Required if you store what we return.
How do rate limits work with sub-keys?
Limits are per account and shared across sub-keys: 60 rpm on Starter, 300 on Growth; Custom sets its own. Bulk jobs are queued and don't count.
Does the HTTP column cost Clay credits?
No. An HTTP API column uses your HeyEnrich key, not Clay's data credits. That's the point of using it this way.