BetterContact is the verification layer in the library’s enrichment step. It takes the contact Hunter found, runs the address through a waterfall of data providers, and returns a deliverable email or nothing. n8n talks to it over plain HTTP with the key in a request header.
What you need
- A BetterContact account with credits. Plans start around $15 per month as of 2026, which is the figure the system cost tables use. Confirm on their pricing page.
- A running n8n instance.
- About 10 minutes.
Get the API key
- Log in to BetterContact.
- Open the API section of the dashboard.
- Copy the key shown there. It identifies your whole account, so the usual rule applies: never leave it inside exported workflow JSON.
Create the credential in n8n
BetterContact has no dedicated n8n integration, so the workflows call its REST endpoint from HTTP Request nodes and authenticate with a generic Header Auth credential.
- Open Credentials, click Add credential, and search for “Header Auth”.
- In the Name field type
X-API-Key. This is the header BetterContact reads. - In the Value field paste your key.
- Name the credential “BetterContact LGL” and save. Library workflows expect that name on import.
The header name matters. X-Api-Key with different casing works because headers are case-insensitive, but a typo like X-API-Keys fails silently with an unauthorized response.
Test it
- Add an HTTP Request node to a scratch workflow.
- Method POST, URL
https://app.bettercontact.rocks/api/v2/async. - Authentication: Generic Credential Type, then Header Auth, then “BetterContact LGL”.
- Send a JSON body with a single contact: your own first name, last name, and company.
- Execute the step.
A success response returns a request id rather than the enriched contact. That is expected. The async API queues the work and you fetch results from a second endpoint using that id, which is exactly how the enrichment workflow is wired. An unauthorized response means the header name or key is wrong.
Cost and one gotcha
Budget $15 per month at default system volume. The pricing model works in your favor here: credits are only consumed on successful finds, so a batch of hard-to-verify prospects costs less than the raw contact count suggests. The gotcha is the async pattern above. Builders who test with a plain request see “no email in the response” and assume the credential is broken. Give the queue 30 to 60 seconds and poll the results endpoint before concluding anything is wrong.
Where the library uses BetterContact
Every published system runs it in the enrichment workflow, immediately after Hunter. Addresses that pass the waterfall mark the prospect ready for outreach; addresses that fail mark it dead, which protects your sending domain’s reputation from bounces.

3PL Warehouses
Accounting Firms
Architecture Firms
Bookkeeping Firms
Business Immigration Law Firms
Business Law Firms
Clinical Research Sites
Commercial Cleaning
Commercial Construction
Commercial Flooring
Commercial Insurance Brokers
Commercial Junk Removal
Commercial Movers
Commercial Painting
Commercial Pest Control
Commercial Pressure Washing
Commercial Real Estate Brokers
Commercial Signage Companies
Concrete Contractors
Corporate Catering
Cybersecurity Firms
Demolition Contractors
Financial Advisors
Freight Brokers
Home Care Agencies
Last Mile Delivery Companies
Managed IT Services
Property Management
Restoration Contractors
Security Guard Companies
Staffing Agencies