> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Apollo: Reveal Person

> Match one person from their email, LinkedIn URL, or name and company, and get their profile with personal email. Includes SDK V2 examples, schemas, and cost.

Match one person from their email, LinkedIn URL, or name and company, and get their profile with personal email.

> [!NOTE]
>
> Tool ID: `apollo_reveal_person`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'apollo_reveal_person',
  {
    "name": "Example",
    "email": "jane.doe@example.com",
    "hashed_email": "0123456789abcdef0123456789abcdef"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute apollo_reveal_person --input '{
  "name": "Example",
  "email": "jane.doe@example.com",
  "hashed_email": "0123456789abcdef0123456789abcdef"
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "person": {
      "id": "id_123",
      "first_name": "Jane",
      "last_name": "Doe"
    }
  }
}
```

Use `deepline describe apollo_reveal_person --json` for the latest machine-readable contract.

## Input reference

Apollo people match input. Supports id-assisted matching, but id-only lookup belongs in apollo\_bulk\_people\_enrichment. `reveal_personal_emails` defaults to true. Phone and waterfall enrichment require webhook\_url or poll\_only: true.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.name` | `string` | No | — | Person's full name. |
| `payload.email` | `string` | No | — | Person's email address. |
| `payload.hashed_email` | `string` | No | — | Person's MD5-hashed email address. |
| `payload.first_name` | `string` | No | — | Person's first name. |
| `payload.last_name` | `string` | No | — | Person's last name. |
| `payload.linkedin_url` | `string` | No | — | Person's LinkedIn profile URL. |
| `payload.domain` | `string` | No | — | Company domain (e.g., 'apollo.io'). |
| `payload.organization_name` | `string` | No | — | Employer/company name. |
| `payload.id` | `string` | No | — | Apollo person ID from a prior lookup. `apollo_people_match` requires another identifier with `id`. Use `apollo_bulk_people_enrichment` with `details: [&#123; id &#125;]` for id-only lookup. |
| `payload.reveal_personal_emails` | `boolean` | No | `true` | When true, attempt personal email reveal (credit-consuming). WARNING: Apollo primarily returns work emails even with this flag (\~70% work, \~30% personal). Do NOT use Apollo for personal email discovery - use Fullenrich or BetterContact instead. |
| `payload.reveal_phone_number` | `boolean` | No | `false` | Request available phone numbers, including mobile, asynchronously. Set poll\_only: true and poll apollo\_poll\_webhook\_result with the returned request\_id, or supply webhook\_url. Phone results may take several minutes and are not included in the initial response. |
| `payload.run_waterfall_email` | `boolean` | No | — | When true, run waterfall email enrichment. Requires webhook\_url or poll\_only: true. |
| `payload.run_waterfall_phone` | `boolean` | No | — | When true, run waterfall phone enrichment. Requires webhook\_url or poll\_only: true. |
| `payload.poll_only` | `boolean` | No | — | Receive asynchronous phone or waterfall results by polling apollo\_poll\_webhook\_result with the returned request\_id. When true, omit webhook\_url. |
| `payload.webhook_url` | `string` | No | — | Your endpoint for asynchronous phone or waterfall results. Omit when poll\_only is true. Deepline does not receive this callback. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Apollo people match input. Supports id-assisted matching, but id-only lookup belongs in apollo_bulk_people_enrichment. `reveal_personal_emails` defaults to true. Phone and waterfall enrichment require webhook_url or poll_only: true.",
    "properties": {
      "name": {
        "type": "string",
        "description": "Person's full name."
      },
      "email": {
        "type": "string",
        "description": "Person's email address."
      },
      "hashed_email": {
        "type": "string",
        "description": "Person's MD5-hashed email address."
      },
      "first_name": {
        "type": "string",
        "description": "Person's first name."
      },
      "last_name": {
        "type": "string",
        "description": "Person's last name."
      },
      "linkedin_url": {
        "type": "string",
        "description": "Person's LinkedIn profile URL."
      },
      "domain": {
        "type": "string",
        "description": "Company domain (e.g., 'apollo.io')."
      },
      "organization_name": {
        "type": "string",
        "description": "Employer/company name."
      },
      "id": {
        "type": "string",
        "description": "Apollo person ID from a prior lookup. `apollo_people_match` requires another identifier with `id`; use `apollo_bulk_people_enrichment` with `details: [{ id }]` for id-only lookup."
      },
      "reveal_personal_emails": {
        "type": "boolean",
        "description": "When true, attempt personal email reveal (credit-consuming). WARNING: Apollo primarily returns work emails even with this flag (~70% work, ~30% personal). Do NOT use Apollo for personal email discovery - use Fullenrich or BetterContact instead.",
        "default": true
      },
      "reveal_phone_number": {
        "type": "boolean",
        "description": "Request available phone numbers, including mobile, asynchronously. Set poll_only: true and poll apollo_poll_webhook_result with the returned request_id, or supply webhook_url. Phone results may take several minutes and are not included in the initial response.",
        "default": false
      },
      "run_waterfall_email": {
        "type": "boolean",
        "description": "When true, run waterfall email enrichment; requires webhook_url or poll_only: true."
      },
      "run_waterfall_phone": {
        "type": "boolean",
        "description": "When true, run waterfall phone enrichment; requires webhook_url or poll_only: true."
      },
      "poll_only": {
        "type": "boolean",
        "description": "Receive asynchronous phone or waterfall results by polling apollo_poll_webhook_result with the returned request_id. When true, omit webhook_url."
      },
      "webhook_url": {
        "type": "string",
        "description": "Your endpoint for asynchronous phone or waterfall results. Omit when poll_only is true. Deepline does not receive this callback."
      }
    },
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Legacy alias for Apollo people match with personal email reveal.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object \| null` | Yes | — | Apollo people match payload with a top-level `person` object. |
| `result.data.person` | `object` | Yes | — | — |
| `result.data.person.id` | `string` | No | — | — |
| `result.data.person.first_name` | `string` | No | — | — |
| `result.data.person.last_name` | `string` | No | — | — |
| `result.data.person.name` | `string` | No | — | — |
| `result.data.person.email` | `string` | No | — | — |
| `result.data.person.email_status` | `string` | No | — | — |
| `result.data.person.linkedin_url` | `string` | No | — | — |
| `result.data.person.title` | `string` | No | — | — |
| `result.data.person.organization` | `object` | No | — | — |
| `result.data.person.organization.id` | `string` | No | — | — |
| `result.data.person.organization.name` | `string` | No | — | — |
| `result.data.person.organization.primary_domain` | `string` | No | — | — |
| `result.data.person.organization_id` | `string` | No | — | — |
| `result.data.request_id` | `string \| number` | No | — | Asynchronous enrichment request ID. Preserve it unchanged and pass it to apollo\_poll\_webhook\_result. IDs outside JavaScript safe integer precision are returned as exact strings. |
| `result.data.request_id_exact` | `string` | No | — | Exact decimal request ID retained before numeric parsing. Pass this string as request\_id to apollo\_poll\_webhook\_result. |
| `result.data.waterfall` | `object` | No | — | — |
| `result.data.waterfall.status` | `string` | No | — | — |
| `result.data.waterfall.message` | `string` | No | — | — |
| `result.data.waterfall.unprocessed_attributes` | `array` | No | — | — |
| `result.meta` | `record` | No | — | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Legacy alias for Apollo people match with personal email reveal.",
    "properties": {
      "data": {
        "description": "Apollo people match payload with a top-level `person` object.",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "person": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "email_status": {
                    "type": "string"
                  },
                  "linkedin_url": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "primary_domain": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  "organization_id": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "request_id": {
                "description": "Asynchronous enrichment request ID. Preserve it unchanged and pass it to apollo_poll_webhook_result. IDs outside JavaScript safe integer precision are returned as exact strings.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "request_id_exact": {
                "type": "string",
                "description": "Exact decimal request ID retained before numeric parsing. Pass this string as request_id to apollo_poll_webhook_result."
              },
              "waterfall": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  },
                  "unprocessed_attributes": {
                    "type": "array",
                    "items": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": {}
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "person"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "request_id": {
                "description": "Asynchronous enrichment request ID. Preserve it unchanged and pass it to apollo_poll_webhook_result. IDs outside JavaScript safe integer precision are returned as exact strings.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "request_id_exact": {
                "type": "string"
              },
              "person": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "email_status": {
                    "type": "string"
                  },
                  "linkedin_url": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "organization": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "primary_domain": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  "organization_id": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "waterfall": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  },
                  "unprocessed_attributes": {
                    "type": "array",
                    "items": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "additionalProperties": {}
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "request_id_exact"
            ],
            "additionalProperties": false
          },
          {
            "type": "null"
          }
        ]
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": {}
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `per_result` (per result).
* Estimated Deepline credits: `0.17` per pricing unit.

## Related documentation

* [Apollo provider guide](https://deepline.com/docs/providers/apollo/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.