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.

Start free — 25 credits

Last updated September 22, 2026

Connect it.

  1. 01

    Create a RichAPI account at app.richapi.ai/signup and copy your API key.

    25 free credits, no card.

  2. 02

    On self-hosted n8n: Settings → Community nodes → Install, package name n8n-nodes-richapi.

    Source is github.com/richapiai/n8n-nodes-richapi.

  3. 03

    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. 04

    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. 05

    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. 06

    Add an IF node on the response body, not on the HTTP status.

    A waterfall miss returns 2xx with success false.

What you can ask for.

Copy, paste, edit the brackets, run.

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`](/api/email-verifier), `phone_finder`, `enrich_company`, [`enrich_profile`](/api/person-enrichment), `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 providers 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 provider roster, because it changes as providers 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](/integrations/claude) and your own code. Every endpoint has a published per-call rate on [/pricing](/pricing); `people_search` is billed per result, so state a result count or the estimate is meaningless. Tiers on [/pricing](/pricing), arithmetic in the [waterfall cost calculator](/tools/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](/integrations/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. 25 free credits on signup.

Start with n8n

25 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](/integrations).

Frequently asked.

Does n8n see my RichAPI key?
No — n8n Enrichment — RichAPI Community Node and HTTP authenticates through the connection you set up, using the same key and credit pool as the REST API. Revoking access from your RichAPI dashboard disconnects it immediately.
Does this cost more than using the REST API directly?
No — MCP and REST share the same credit pool and the same published endpoint rates. There's no separate MCP surcharge.

More integrations

Try it with 25 free credits.