# Enrich Person — Apollo

> Enriches a person's information using Apollo's 270M+ contact database. Pass any combination of name, email, domain, organization, or LinkedIn URL — the more info you provide, the better the match. This action consumes Apollo enrichment…

- Key: `apollo_io_oauth-enrich-person`
- Type: Action (Write)
- Version: 0.0.2
- App: Apollo (`apollo_io_oauth`) — https://pipedream.com/apps/apollo-io-oauth.md
- This page (HTML): https://pipedream.com/apps/apollo-io-oauth/actions/enrich-person
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/apollo_io_oauth/actions/enrich-person/enrich-person.mjs

## Description

Enriches a person's information using Apollo's 270M+ contact database. Pass any combination of name, email, domain, organization, or LinkedIn URL — the more info you provide, the better the match. This action consumes Apollo enrichment credits. Returns detailed profile data including title, company, seniority, phone numbers, and social profiles. Do NOT pass personal social media URLs as the `domain` — use only company domains like `apollo.io`. If `revealPhoneNumber` is `true`, you must also provide a `webhookUrl` where Apollo will POST the phone data asynchronously. [See the documentation](https://docs.apollo.io/reference/people-enrichment)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `firstName` | `string` | No | The person's first name. |
| `lastName` | `string` | No | The person's last name. |
| `name` | `string` | No | The person's full name. Use this instead of separate first/last name fields if you only have the full name. |
| `email` | `string` | No | The person's email address. |
| `hashedEmail` | `string` | No | MD5 or SHA-256 hashed email. Example: 8d935115b9ff4489f2d1f9249503cadf (MD5). |
| `organizationName` | `string` | No | The person's company name. |
| `domain` | `string` | No | The company domain (not a personal URL). Example: apollo.io or microsoft.com. Do NOT include www. or @. |
| `linkedinUrl` | `string` | No | The person's LinkedIn profile URL. Example: https://www.linkedin.com/in/johndoe. |
| `revealPersonalEmails` | `boolean` | No | Set to true to include personal email addresses in the enrichment results. |
| `revealPhoneNumber` | `boolean` | No | Set to true to request phone numbers including mobile. Requires webhookUrl to be set — Apollo delivers phone data asynchronously via webhook. |
| `webhookUrl` | `string` | No | Required when revealPhoneNumber is true. Apollo will POST a JSON payload with phone data to this URL. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "apollo_io_oauth",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "apollo_io_oauth-enrich-person",
  arguments: {
    firstName: "First Name",
    lastName: "Last Name",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "apollo_io_oauth-enrich-person",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    apollo_io_oauth: { authProvisionId: "apn_xxxxxxx" },
    firstName: "First Name",
    lastName: "Last Name",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "apollo_io_oauth-enrich-person",
    "configured_props": {
      "apollo_io_oauth": { "authProvisionId": "apn_xxxxxxx" },
      "firstName": "First Name",
      "lastName": "Last Name"
    }
  }'
```

---

- App: https://pipedream.com/apps/apollo-io-oauth.md · All apps: https://pipedream.com/apps
