Find professional emails, phone numbers and company data with RocketReach: search and look up people and companies, bulk lookups, and email verification.
RocketReach ships in the w6w first-party pack. It declares 15 actions, 3 health checks, and the host runs its code in a sandbox that never sees the credential.
io.w6w.rocketreachRocketReach is a contact-data API covering 700M+ professionals and 60M+ companies. A workflow can search people by title, employer, company domain, location, department, seniority and more, then look a person up by RocketReach ID, LinkedIn URL, email, phone, or name plus employer to reveal their emails (with deliverability grades) and phone numbers. Lookups are asynchronous: a lookup that is still running is polled with Check Lookup Status, or delivered to a webhook configured in the RocketReach account. Up to 100 people can be looked up in one bulk request.
Companies can be searched and looked up by domain, name, LinkedIn URL or ticker for firmographics (size, revenue, industry, tech stack, funding investors, growth). Email Verify checks one address for deliverability.
RocketReach runs two credit systems. Essentials, Pro and Ultimate plans use the standard actions; accounts on Universal Credits use the Universal actions, which reveal each data type (professional email, personal email, phone, detailed enrichment) only when asked, per profile. The connection holds one API key, sent in the Api-Key header.
Three routes to the same 15 actions. The Workflow tab is generated from RocketReach's own manifest and carries its real ids, so it is copy-pasteable; the Code and CLI examples are the same call for any action on any app, so every app-specific value in them is a blank you fill in.
bulk-lookup-people Start lookups for up to 100 people in one request. Results are not returned here: they are posted to your webhook, or fetched with Check Lookup Status using the profile IDs. Submitted profiles are added to a RocketReach profile list. For Universal Credits accounts use Universal Bulk Lookup People.
check-lookup-status Check whether person lookups have finished and fetch their data. Pass the profile IDs returned by Lookup Person or Bulk Lookup People. Status is complete, failed, waiting, searching or progress. For Universal Credits accounts use Universal Check Lookup Status.
get-account Read the connected RocketReach account: owner, credit usage per credit type (allocated, used, remaining) and the current rate-limit windows. On a Universal Credits account use Get Universal Account.
get-universal-account Read a Universal Credits account: owner, plan, credits allocated / used / remaining, usage by credit action and rate limits. The API key in the vendor's response is deliberately dropped. Only for accounts on Universal Credits.
lookup-company Get a company's profile by domain (preferred), RocketReach ID, name, LinkedIn URL or ticker: size, revenue, industry, tech stack, funding investors, address, growth and competitors. Consumes a company credit when data is returned. For Universal Credits accounts use Universal Lookup Company.
lookup-person Reveal a person's emails (with deliverability grades) and phone numbers from a RocketReach ID, LinkedIn URL, email, phone, NPI number, or name plus employer. Consumes credits when contact data is found; re-looking-up a profile is free. The lookup may still be running (complete: false): poll Check Lookup Status with the profile id. For Universal Credits accounts use Universal Lookup Person.
search-companies Search RocketReach's 60M+ companies by name, domain, industry, location, size, revenue and tech stack. Returns company summaries; use Lookup Company for the full profile. Page with Start. For Universal Credits accounts use Universal Search Companies.
search-people Search RocketReach's 700M+ professionals by title, employer, company domain, location, department, seniority and more. Returns profile summaries with a contact preview; use Lookup Person to reveal emails and phones. Page with Start. For Universal Credits accounts use Universal Search People.
universal-bulk-lookup-people Universal Credits version of Bulk Lookup People: start lookups for up to 100 people, each with its own reveal flags. Results go to your webhook, or are fetched with Universal Check Lookup Status.
universal-check-lookup-status Universal Credits version of Check Lookup Status: check whether person lookups have finished and fetch their data. Pass the profile IDs returned by Universal Lookup Person or Universal Bulk Lookup People. Status is complete, failed, waiting, searching or progress.
universal-lookup-company Universal Credits version of Lookup Company: get a company's profile by domain (preferred), RocketReach ID, name, LinkedIn URL or ticker. Charges 1 credit per company with enriched information.
universal-lookup-person Universal Credits version of Lookup Person. Choose what to reveal: professional email (2 credits), personal email (3), phone (6), detailed enrichment of job history, education, skills and links (1), healthcare enrichment (1). Nothing is revealed or charged unless its flag is on. May still be running (complete: false): poll Universal Check Lookup Status.
universal-search-companies Universal Credits version of Search Companies: charges 2 credits per page of up to 100 results. Page size defaults to 100. Not available on Essentials, Pro or Ultimate plans.
universal-search-people Universal Credits version of Search People: searches RocketReach's 700M+ professionals and charges 1 credit per page of up to 100 results. Page size defaults to 100. Use Universal Lookup Person to reveal contact data. Not available on Essentials, Pro or Ultimate plans.
verify-email Check whether one email address can receive mail: valid, invalid, catchall or unknown, with the format, domain, disposable and catch-all checks behind it. Charges one email verification credit (a separate balance from lookup credits), refunded when the result is unknown.
A workflow step names the app and the action, and the editor fills in the
connection when you pick one. This is the Step shape from the
workflow spec, carrying RocketReach's real ids.
{
"manifestVersion": "2",
"name": "rocketreach-example",
"steps": [
{
"id": "bulk-lookup-people",
"uses": {
"app": "io.w6w.rocketreach",
"action": "bulk-lookup-people",
"connection": "conn_YOUR_CONNECTION_ID"
},
"with": {
"queries": "<queries>"
}
}
]
}bulk-lookup-people check-lookup-status get-account get-universal-account lookup-company +10 more actions available
Every app-specific value here is a blank you have to fill in. An
app action is reached through the connection that authenticates it, so the
address is a connection id, not the app id — and connections belong to your account,
so a public page cannot know yours. Create one for RocketReach, then fill in
the three blanks: conn_YOUR_CONNECTION_ID, the action key, and the
parameters that action declares. The call itself is real — the shape is transcribed
from the studio's own snippet builder, which prints the same kind of blanks — but
nothing in it is specific to RocketReach. The Workflow tab is where this app's
real ids are.
npm install @w6w/sdkyarn add @w6w/sdkpnpm add @w6w/sdkdeno add npm:@w6w/sdkimport { W6wClient, isActionRun } from "@w6w/sdk";
// Reads W6W_BASE_URL and W6W_TOKEN from the environment when omitted.
const client = new W6wClient();
const envelope = await client.run({
urn: "conn_YOUR_CONNECTION_ID",
action: "bulk-lookup-people",
payload: {
queries: "<value>",
// profile_list: "<value>",
// webhook_id: "<value>",
},
});
if (isActionRun(envelope)) console.log(envelope.value); npm install -g @w6w/cli w6w run conn_YOUR_CONNECTION_ID --action bulk-lookup-people --payload '{"queries":"<value>"}' Give an AI agent RocketReach — without giving it RocketReach's credentials. One MCP endpoint exposes every app, function and workflow the caller is entitled to, as tools it can discover and run. Access is granted per team while we onboard.
One tool call{
"name": "w6w_invoke",
"arguments": {
"ref": "app:io.w6w.rocketreach#bulk-lookup-people",
"input": {
"queries": "<queries>"
}
}
}
Every tool names its target with a single ref. The
app: form above doesn't name a connection at all — the
host resolves which of the caller's RocketReach connections to sign
with, and refuses rather than guesses when the answer is ambiguous.
The token is attached host-side, at the moment of the call. It is never a tool argument, never in the model's context, and never in a transcript — so a prompt injection has nothing to exfiltrate.
Tools are derived per end user from what that person has actually connected and is entitled to — not one shared bot identity carrying the union of everyone's access.
Multi-step work runs on the workflow engine and returns a run handle the agent can poll — retries, branching and state survive the conversation that started them.
RocketReach's declared health checks are on the surface too, so an agent can tell "the vendor is down" from "your credential expired" before it burns a retry on either.
The MCP surface is part of the hosted platform. RocketReach itself is MIT, and the runtime that executes it is source-available (FSL).
RocketReach declares its own checks, so its health is a property of the app rather than something the host guesses at.
status.rocketreach.co (incident.io, Statuspage v2 shape). The `API` component decides; `RocketReach Verify` is capped at degraded; the web app, extension and MCP are detail only.
Unauthenticated GET /account/. RocketReach's JSON `authentication_failed` refusal passes: it proves the application is answering.
Credits used vs allocated per credit type, from GET /account/. A pool at 90% degrades; every finite pool exhausted is down. Unlimited pools are skipped.