Integrations · Pipedream

Pipedream Enrichment — Call RichAPI from an HTTP or Code Step

There is no RichAPI component in the Pipedream registry. You call us from the generic HTTP Request action or a Node.js code step, with the key in a workspace environment variable. On the waterfall endpoints a miss returns 2xx with billed false and costs nothing, so your step must branch on the body, not the status code.

In short: RichAPI has no component in the Pipedream app registry as of this writing. Integration is via Pipedream's generic 'Send any HTTP Request' action or a Node.js code step calling the RichAPI REST API at https://api.richapi.ai/api/v1/{endpoint} with an x-api-key header. The API key should be stored as a Pipedream workspace environment variable and referenced as process.env.RICHAPI_KEY. Endpoints include email_finder, email_verifier, phone_finder, enrich_company, enrich_profile, people_search, find_linkedin_url_by_email, web_tech_stack and linkedin_job_search. On the waterfall endpoints (email_finder, email_verifier, phone_finder) a lookup that finds nothing returns HTTP 200 with success false and billed false and costs zero credits; all other endpoints bill on any 2xx response including an empty one. Because a miss is a 2xx, a Pipedream workflow must branch on the response body rather than on HTTP status. RichAPI is a data API only: it does not send email, run sequences, or write to a CRM. New accounts receive 100 free credits with no credit card.

Last updated November 4, 2026

Connect it

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

    100 free credits, no card.

  2. 2. In Pipedream, add the key as a workspace environment variable (Settings → Environment Variables) named RICHAPI_KEY. Do not paste it into the step config. Env vars are what survive a workflow fork.

  3. 3. Add an HTTP / Webhook → Send any HTTP Request action.

    POST to https://api.richapi.ai/api/v1/email_finder with an x-api-key header set to {{process.env.RICHAPI_KEY}}.

  4. 4. Add a Node.js code step immediately after it that reads steps.enrich.$return_value.success and calls $.flow.exit() when it is false. A soft fail is a 200 and Pipedream will happily carry an empty row downstream if you let it.

  5. 5. Wire the surviving rows into whatever comes next: Google Sheets, a CRM node, an email platform. RichAPI stops at the data.

Pipedream

What you can ask for

Webhook receives a form fill
Webhook receives a form fill → email_finder on name + company domain → exit on miss → append row to Google Sheets.
Scheduled trigger, daily → linkedin_job_search
Scheduled trigger, daily → linkedin_job_search for a title and region → enrich_company on each hiring account → Slack digest.
New row in a Pipedream
New row in a Pipedream Data Store → email_verifier → route valid and catch-all down separate branches.
HubSpot new-contact trigger → find_linkedin_url_by_email
HubSpot new-contact trigger → find_linkedin_url_by_email → enrich_profile → write the headline and seniority back.
Batch step over 200 domains
Batch step over 200 domains → web_tech_stack → filter to accounts running a named competitor → push to a sheet.

Why it Matters

Pipedream is where a workflow goes when Zapier's step limits start to hurt and you want real JavaScript in the middle. That is exactly the shape enrichment needs, because a miss is a 200 with a false in it, and handling that properly takes three lines of code rather than a checkbox.

Pipedream enrichment: no component, one HTTP step, and a guard you have to write

Search the Pipedream app registry for RichAPI and you get nothing. There is no maintained component, no pre-built action, no OAuth app. We are not going to imply one exists so the page reads better.

What you do get is the thing Pipedream is actually good at: a generic HTTP action, a Node.js runtime in the middle of the workflow, and environment variables that are not stapled to a single step. That covers the whole API, and it takes about four minutes.

Set it up

Create an account at app.richapi.ai/signup and copy the key.

In Pipedream, put it in Settings → Environment Variables as RICHAPI_KEY. Not in the step config. Env vars survive a workflow fork and stay out of the step's exported JSON, which matters the first time someone copies your workflow into a client workspace.

Then add HTTP / Webhook → Send any HTTP Request:

  • Method: POST
  • URL: https://api.richapi.ai/api/v1/email_finder
  • Headers: x-api-key: {{process.env.RICHAPI_KEY}}, Content-Type: application/json
  • Body: {"full_name": "{{steps.trigger.event.name}}", "company_domain": "{{steps.trigger.event.domain}}"}

Same base URL for every endpoint — swap the last path segment. Field names per endpoint come from the live spec at api.richapi.ai/api/v1/openapi.json; the live OpenAPI at https://api.richapi.ai/api/v1/openapi.json is the canonical reference once it is published.

The guard, which is the whole point of this page

A waterfall lookup that finds nothing returns HTTP 200. Pipedream's HTTP action sees a 2xx and hands the workflow a body with "success": false and "billed": false in it. If your next step is a Google Sheets append, you have just written a blank email into a list you will later send to.

So the step after the request is a code step:

export default defineComponent({
 async run({ steps, $ }) {
 const r = steps.enrich.$return_value;
 if (!r?.success || !r?.data?.email) {
 $.flow.exit("no email found, nothing billed");
 }
 return { email: r.data.email, status: r.data.status };
 },
});

$.flow.exit() ends that event cleanly rather than throwing, so your error rate stays honest and your retries stay meaningful.

The same guard belongs after email_verifier, where the miss case is rarer but the interesting case is a catch_all result that is neither valid nor invalid. Route it, do not treat it as a pass. See catch-all email handling.

What a run costs

One pool of prepaid credits, shared across every client and every workflow on the key.

Endpoint Cost
email_finder 5 credits
email_verifier 2 credits
phone_finder 25 credits
enrich_company 1 credit
enrich_profile 1 credit
find_linkedin_url_by_email 4 credits
people_search 0.1 credits per result — state the result count or the number is meaningless

Full price only on results, and that is scoped: email_finder, email_verifier and phone_finder cost zero when the providers all come back empty. Everything else bills on a successful 2xx, including one that returns an empty object. A non-2xx never bills, anywhere. Rate card on /pricing.

The receipt on Pipedream

Log the execution_log from a waterfall endpoints response to a Pipedream Data Store on misses, and after a week you can tell a bad input format from a genuinely unfindable person. It shows who ran and what each returned.

We do not publish the source roster, because it changes. The log is the honest version: not a list on a marketing page, a per-call record of who ran on your request.

Where we stop with Pipedream

No component, no sending, no CRM writes, no prospecting UI. Pipedream does the orchestration and the destination write. We hand it rows.

The rest of the integrations index is here. If you want the same pattern with a visual builder instead of JavaScript, n8n and Make are the neighbours. If you want it inside a chat window, Claude over MCP.

Pipedream FAQ

Is there a RichAPI component in the Pipedream registry? No. HTTP action or code step. If that changes, this page changes.

Can I use Pipedream's Connect / OAuth flow? Not with us. We authenticate with a static header key, so a workspace env var is the right home for it.

Will a miss retry forever? Not if you exit on success: false. A miss is a 200, so Pipedream's automatic retries never fire on it, which is correct, since retrying an exhausted waterfall spends nothing and finds nothing.

Can I run one key per client? Named keys with per-key usage attribution, yes. See per-client API keys for agencies.

Does Pipedream's concurrency break anything? The key is shared, so parallel workflows draw on the same credit balance. Nothing about the architecture cares which workflow called.

Start with Pipedream

100 free credits, no card. One HTTP step and a three-line guard. Build it against the free tier before you fund anything.

FAQ

Frequently asked questions

No — Pipedream Enrichment — Call RichAPI from an HTTP or Code Step 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.
No — MCP and REST share the same credit pool and the same published endpoint rates. There's no separate MCP surcharge.

More from RichAPI

More companies

Browse company profiles with company overviews, key details, and email formats.

Start free with 100 credits

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.

Related integrations