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

# Surfe

> Connect Surfe to search and enrich people and companies in your workflows.

## How to set up Surfe

### Authentication

Surfe uses API key authentication:

1. Sign up at [surfe.com](https://surfe.com)
2. Generate an API key at [app.surfe.com/settings/api](https://app.surfe.com/settings/api)
3. Paste the API key in Cargo when connecting

<Note>
  **Code slugs** — integration slug: `surfe`. Actions: `searchPeople`, `searchCompanies`, `enrichPerson`, `enrichCompany`. Call them as `integrations.surfe.<action>(...)`.
</Note>

Cargo spreads requests at up to 10 calls per second against the Surfe API.

## Surfe actions

### Search people

Search for people based on persona filters like job titles, seniority, departments, and company criteria.

**Optional fields:**

* **People filters**: Job titles (semantic matching, e.g. "CTO" matches "Chief Technology Officer"), Exact job titles, Seniorities, Departments, Countries, Countries excluded
* **Company filters**: Domains, Domains excluded, Company names, Industries, Industries excluded, Company countries, Employee count from/to, Keywords, Keywords excluded, Technologies, Technologies excluded
* **People per company**: Limits the number of people returned per company (1-5). Ignored if filters beyond domain/name are used
* **Limit**: Maximum number of results to return. Defaults to 10, max 200

**Use case:** Build lists of decision-makers matching your persona at target accounts.

### Search companies

Search for companies based on ICP filters like industry, employee count, revenue, technologies, and more.

**Optional fields:**

* **Company filters**: Domains, Domains excluded, Company names, Industries, Industries excluded, Countries, Employee count from/to, Revenue from/to, Keywords, Keywords excluded, Technologies, Technologies excluded, Year founded from/to, NAICS codes, NAICS codes excluded
* **Limit**: Maximum number of results to return. Defaults to 10, max 200

**Use case:** Source companies that match your ICP for list building and territory planning.

### Enrich person

Enrich a person with email, mobile phone, LinkedIn profile, and job history data. Provide at least a first name/last name or a LinkedIn URL.

**Optional fields:**

* **First name**: Person's first name
* **Last name**: Person's last name
* **Company name**: Name of the company the person works at
* **Company domain**: Domain of the company (e.g., surfe.com)
* **LinkedIn URL**: Person's LinkedIn profile URL
* **Include email**: Whether to include email in enrichment results (default: on)
* **Include mobile**: Whether to include mobile phone in enrichment results (default: on)
* **Include LinkedIn URL**: Whether to include LinkedIn URL in enrichment results (default: off)
* **Include job history**: Whether to include job history in enrichment results (default: off)

Enrichment runs asynchronously: Surfe processes the request and calls Cargo back via webhook (the run waits up to 120 minutes).

**Use case:** Get verified emails and mobile numbers for prospects in an enrichment waterfall.

### Enrich company

Enrich a company with firmographics data including address, employee count, revenue, industry, and more.

**Required fields:**

* **Company domain**: The company's domain (e.g., surfe.com). Must be a valid Fully Qualified Domain Name or Hostname

Enrichment runs asynchronously via webhook, like Enrich person (the run waits up to 120 minutes).

**Use case:** Enrich accounts with firmographics, funding rounds, and digital presence before scoring or routing.

## Best practices

* For person enrichment, a LinkedIn URL gives the most reliable match; otherwise provide first name + last name plus a company hint
* Only enable the enrichment data points you need (email, mobile, job history) — toggles map directly to what Surfe returns
* Combine **Search companies** → **Search people** → **Enrich person** to go from ICP to contactable leads in one workflow
* Enrichment actions are asynchronous — expect runs to stay in a waiting state until Surfe's webhook responds
