Integrations · n8n
n8n Enrichment — RichAPI Community Node and HTTP
There is a real RichAPI community node for n8n, published as n8n-nodes-richapi, with an endpoint dropdown generated from the public manifest. It is a community node at an early version number, so this page also gives the HTTP Request setup, which works on any n8n install. The trap either way: a waterfall miss is a 2xx, so n8n's error branch never fires.
In short: RichAPI publishes a community node for n8n on npm as n8n-nodes-richapi (version 0.1.3 at the time of writing, source at github.com/richapiai/n8n-nodes-richapi). It is a community node, not an n8n-verified or built-in node, and community nodes install from Settings, Community nodes on self-hosted n8n. The node uses RichAPI API credentials holding an API key and a base URL defaulting to https://api.richapi.ai/api/v1, and sends the key as an x-api-key header. Its endpoint dropdown and fields are generated from the public RichAPI endpoint manifest, with an Additional Options, Raw JSON Body escape hatch, and options for async endpoints: Return Job ID, Wait Until Complete, and Deliver to Webhook. The alternative on any n8n install is the built-in HTTP Request node: POST https://api.richapi.ai/api/v1/{endpoint} with an x-api-key header and a JSON body. Important behaviour: on the waterfall endpoints (email_finder, email_verifier, phone_finder) a call that finds nothing returns HTTP 2xx with success false and billed false and costs zero credits, so n8n's error output does not fire on a miss and branching must read the response body. All other endpoints bill on any 2xx response including an empty result. New accounts get 100 free credits with no credit card.
Last updated November 4, 2026
Connect it
1. Create a RichAPI account at app.richapi.ai/signup and copy your API key.
100 free credits, no card.
2. On self-hosted n8n: Settings → Community nodes → Install, package name n8n-nodes-richapi.
Source is github.com/richapiai/n8n-nodes-richapi.
3. Create RichAPI API credentials: your API key, and a base URL that defaults to https://api.richapi.ai/api/v1. The key is sent as an x-api-key header.
4. Add the RichAPI node, pick an endpoint from the dropdown, and map fields from the incoming item. For bodies the generated fields do not cover, use Additional Options → Raw JSON Body, which is merged in and wins.
5. No community node available on your install?
Use the HTTP Request node: POST to https://api.richapi.ai/api/v1/{endpoint}, header auth with x-api-key, JSON body from the item.
6. Add an IF node on the response body, not on the HTTP status.
A waterfall miss returns 2xx with success false.
n8n
What you can ask for
Schedule Trigger → read new rows from a sheet → RichAPI email_finder → IF success is true → HubSpot create contact; false branch to a review sheet.
Webhook from your signup form → email_verifier → route invalid addresses back to the form owner before they reach the CRM.
Weekly: linkedin_job_search for target titles → enrich_company on the hiring companies → email_finder on the hiring manager → Slack digest.
Loop Over Items in batches over a 2,000-row list, with a Wait node between batches, writing execution_log and billed to a log sheet per item.
Async endpoint with Return Job ID, then an n8n Webhook node to catch the callback instead of holding the workflow open on a poll.
Why it Matters
n8n is where enrichment belongs once it has to run on a schedule rather than when someone remembers. The node exists and it is honest about what it is: a generated action node at an early version, with the HTTP Request path underneath it if you would rather depend on nothing.
n8n enrichment: the node exists, and here is the HTTP version too
There is a real n8n node. It is published on npm as n8n-nodes-richapi, the source is at github.com/richapiai/n8n-nodes-richapi, and the current version is 0.1.3.
Now the qualifiers, because a community node and a built-in node are different things. It is a community node, which means self-hosted n8n installs it from Settings and n8n Cloud applies its own rules about which community packages are allowed. It is at 0.1.x, and it is generated from our public endpoint manifest rather than hand-built per endpoint, which is why it covers everything and why the fields are sometimes blunter than a hand-written node would be.
If that is fine, use the node. If you would rather depend on nothing, the HTTP Request section below works on every install and is the same API underneath.
Option one: the community node
Self-hosted: Settings → Community nodes → Install, package n8n-nodes-richapi.
Create RichAPI API credentials with your key from app.richapi.ai/signup and a base URL, which defaults to https://api.richapi.ai/api/v1. The key goes out as an x-api-key header.
Then add the RichAPI node. The endpoint dropdown and its fields are generated from the manifest, so every enabled endpoint is in there. When the generated fields do not cover the body you need, Additional Options → Raw JSON Body takes an object that is merged into the request and wins over the generated fields.
For async endpoints the node gives you three behaviours:
- Return Job ID — hand back the initial response and let a later branch deal with it.
- Wait Until Complete — poll, where the manifest carries polling metadata.
- Deliver to Webhook — send a callback URL in the request and catch it with n8n's built-in Webhook node.
Prefer the webhook for anything long. Polling inside a workflow holds an execution open for no good reason.
Option two: the HTTP Request node
Works anywhere, including n8n Cloud and any install where you would rather not add a community package.
- Method: POST
- URL:
https://api.richapi.ai/api/v1/email_finder - Authentication: Generic → Header Auth, name
x-api-key, value your key, stored as an n8n credential rather than pasted into the node. - Body: JSON, fields mapped from the incoming item.
Swap the endpoint segment for any other: email_verifier, phone_finder, enrich_company, enrich_profile, people_search, web_tech_stack. enrich_company and enrich_profile take a LinkedIn URL, not a domain, which is the single most common reason an n8n branch quietly fills a column with nothing.
Current request bodies live at the live OpenAPI at https://api.richapi.ai/api/v1/openapi.json.
The branch that catches everyone
A waterfall miss is not an error. email_finder, email_verifier and phone_finder return 2xx with success: false and billed: false when the sources ran and nobody had data.
n8n's error output does not fire on a 2xx. So a workflow wired as "HTTP Request → success output → CRM" writes empty contacts all week and looks healthy in the executions list.
Put an IF node after the call and branch on {{ $json.success }}, not on the HTTP status. Send the false branch somewhere a human sees it. Keep the error output wired as well, for the non-2xx cases, which never bill.
For lists, use Loop Over Items with a batch size and a Wait node between batches, and write billed and execution_log to a log sheet per item. When someone asks in three weeks why the credit balance moved, the answer is in the sheet.
The receipt on n8n
Two workflow branches hang off one field. execution_log comes back on waterfall responses showing who ran and what each returned, and in n8n that is the difference between a real miss and a call you should retry.
We do not publish the source roster, because it changes as sources are added and dropped. The per-call log is the honest version of that answer.
Cost
Prepaid credits from one pool, shared across the node, the HTTP Request node, the MCP server and your own code. Every endpoint has a published per-call rate on /pricing; people_search is billed per result, so state a result count or the estimate is meaningless. Tiers on /pricing, arithmetic in the waterfall cost calculator.
A miss on the three waterfall endpoints costs zero. Every other endpoint bills on a 2xx, empty results included.
Where we stop with n8n
No sending, no sequencing, no CRM app, so the last node in your workflow is someone else's. No prospecting UI, and no spreadsheet: if a non-engineer needs to look at the list and click things, that is Clay, and we are happy to be the HTTP column inside it.
n8n FAQ
Is this an official n8n integration? No. It is a community node we publish ourselves, not an n8n-verified or built-in node, and this page would rather say that than let you find out from a red banner.
Does the node work on n8n Cloud? Depends on Cloud's community node policy, which we have not verified for this package. The HTTP Request node works on Cloud regardless.
Why is my success branch full of empty results? You are branching on HTTP status. A waterfall miss is a 2xx. Branch on success in the body.
Can I run 5,000 rows through this? Yes, in batches with a Wait node. Filter before you enrich, and put the cheap filtering endpoints upstream of the expensive ones.
Is there an MCP path for n8n? The REST API is the one we have documented here.
Do I need a credit card? No. 100 free credits on signup.
Start with n8n
100 free credits, no card. Build one workflow with an IF node on success, run it on twenty rows, and check the log sheet before you schedule it. Other ways in are on the integrations hub.
FAQ
Frequently asked questions
More from RichAPI
More companies
Browse company profiles with company overviews, key details, and email formats.
Get 100 free credits to explore RichAPI with no card required.
Free tools
Use our Email Permutator, llms.txt Generator, Waterfall Calculator, and live API demo — all free to try.