Integrations · Zapier

Zapier Enrichment — RichAPI via Webhooks by Zapier

There is no RichAPI app in the Zapier directory. You call us with Webhooks by Zapier → Custom Request, which is a paid-plan action. Waterfall misses on email_finder, email_verifier and phone_finder cost zero credits; every other endpoint bills on a 2xx, empty result included.

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

    In your Zap, add an action step and search for Webhooks by Zapier — not RichAPI.

    We have no listing in the Zapier app directory, so searching our name returns nothing.

  3. 03

    Choose the Custom Request event.

    POST is not available on the simpler POST event with custom headers, so Custom Request is the one you want.

  4. 04

    URL https://api.richapi.ai/api/v1/email_verifier, method POST, Data Pass-Through off, Data as JSON, and one header: x-api-key with your key.

  5. 05

    Test the step and read the raw output.

    Zapier flattens JSON into dot-notation fields, so nested values arrive as things like data__email — map from that, not from what you expect the shape to be.

  6. 06

    Add a Filter step after it that only continues when success is true, before anything writes to a record.

What you can ask for.

Copy, paste, edit the brackets, run.

Typeform submission → email_verifier → Filter on valid → add to the mailing list; invalid goes nowhere.
New HubSpot contact with a blank email → email_finder → Filter on success → update the contact property.
Calendly booking → enrich_company on the attendee's domain → post headcount and industry into the Slack channel before the call.
Weekly Schedule trigger → people_search → Looping by Zapier over results → email_finder per row.
Stripe customer created → web_tech_stack on their domain → tag the account in your database by what they run.

Why it matters

Zapier bills per task, and a task fires whether the lookup found anything or not. Filtering on success and billed keeps a miss from turning into four more billed tasks and a record overwritten with an empty string.

Zapier enrichment: Webhooks by Zapier, because we have no app

Searching the Zapier directory for RichAPI returns nothing. We have not built and published a Zapier app, so there is no OAuth connection, no pre-built triggers, and no tidy action card with our logo on it. Anyone claiming otherwise on a page like this one is selling you a screenshot of a roadmap. What works today: **Webhooks by Zapier → Custom Request**. It is a built-in Zapier action, it does everything a published app would do for a read-only lookup API, and the one real cost is that Webhooks is a paid-plan feature. If you are on Zapier Free, this integration does not run.

The step, field by field

Add an action → search **Webhooks by Zapier** → event **Custom Request**. - **Method** — `POST` - **URL** — `https://api.richapi.ai/api/v1/email_verifier` - **Data Pass-Through?** — No - **Data** — the JSON body, for example `{"email": "{{trigger.email}}"}` - **Unflatten** — leave as-is - **Headers** — `x-api-key` : your key Use the plain "POST" event instead and you fight it over content types and header handling. Custom Request gives you the raw call. When you test the step, read the output carefully. Zapier flattens nested JSON, so a field that lives at `data.email` in our response arrives in your Zap as `data__email`. Map from what the test actually returned, not from the shape in your head. This is where most broken Zaps start.

Filter before you write

Every step in a Zap is a billed task on Zapier's side, and their meter does not care whether the lookup found anything. Ours does, on the multi-provider waterfall endpoints. Add a **Filter by Zapier** step straight after the webhook: *continue only if* `success` *is true*. Everything downstream — the CRM update, the Slack post, the sequence enrolment — then runs on real data only. Without it, a miss writes a blank email over a good one and burns three more tasks doing it. For the branch that fails, a second path with Paths by Zapier is worth building once: tag the record `enrich_failed`, and leave it for a monthly retry rather than a loop that hammers the same missing person daily.

What the endpoints cost

| Endpoint | Cost | Miss behaviour | | --- | --- | --- | | `email_finder` | `5 credits` | Free on a waterfall miss | | `email_verifier` | `2 credits` | Free on a waterfall miss | | `phone_finder` | `25 credits` | Free on a waterfall miss | | `enrich_company` | `1 credit` | Bills on any 2xx | | `enrich_profile` | `1 credit` | Bills on any 2xx | | `web_tech_stack` | `1 credit` | Bills on any 2xx | | `find_linkedin_url_by_email` | `4 credits` | Bills on any 2xx | The zero-cost miss is a waterfall property, not a company policy we apply everywhere. `enrich_profile` and `enrich_company` take a LinkedIn URL and bill on a successful response even when the payload is thin. Credit rates live on [pricing](/pricing).

The receipt on Zapier

The waterfall endpoints return an `execution_log` — an array of provider attempts, each with its own status. In Zapier it shows up as a flattened set of fields you can push into a Slack message when a miss looks suspicious, which turns "the Zap didn't work" into "three providers had no data and one timed out." We do not publish which providers are in the waterfall, because the roster changes as we add and drop them. The log tells you who ran on your call, which is the only version of that answer that stays true.

Zapier's limits, honestly

Webhooks by Zapier has a response size ceiling and Zaps have a runtime ceiling. A `people_search` returning a large page of results is the step most likely to hit one. If you are looping over hundreds of rows, Zapier is the wrong shape for the job — [Make](/integrations/make) handles iteration more cheaply, [n8n](/integrations/n8n) handles it self-hosted, and a 30-line script handles it best of all.

Where we stop with Zapier

No CRM app, no sequencer, no sending. Zapier does the moving, we do the data. If you want the lookups without a Zap at all, the [Claude MCP integration](/integrations/claude) runs the same calls in prose, the rest of the family is under [integrations](/integrations), and [list build and verify](/use-cases/list-build-and-verify) is the order of operations worth copying.

Zapier FAQ

**Is there an official RichAPI Zapier app?** No. Directory search returns nothing for us. Webhooks by Zapier is the integration. **Do I need a paid Zapier plan?** Yes, for Webhooks. That is Zapier's rule, not ours. **Why does my mapping say `data__email`?** Zapier flattens nested JSON with double underscores. Map from the test output. **Does a miss still cost me a Zapier task?** Yes. Zapier bills the task, we do not bill the waterfall miss. **Can I use one key across several Zaps?** Yes. One key, one credit pool. Separate keys per Zap give you per-key usage attribution if you want to see which automation spends what. **Is there a trigger — can a Zap fire when RichAPI finds something?** No. We are a request-response API with no outbound webhooks, so RichAPI is always an action step, never a trigger.

Start with Zapier

25 free credits, no card. Build one Zap against [email verifier](/api/email-verifier) — cheapest endpoint, clearest response — then swap the URL for whatever you actually need.

Frequently asked.

Does Zapier see my RichAPI key?
No — Zapier Enrichment — RichAPI via Webhooks by Zapier 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.