> ## 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.

> ## Agent Instructions
> If you are an AI coding agent operating Cargo, install the agent skills first: paste `Install Cargo by following https://api.getcargo.io/INSTALL.md` into your session, or run `npx skills add getcargohq/cargo-skills`. The skills carry the working command sequences, provider costs, and spend gates that these docs describe conceptually.
> The skills index at https://raw.githubusercontent.com/getcargohq/cargo-skills/main/llms.txt lists every skill, recipe, and provider playbook individually. Find the recipe that matches the user's job and follow it, rather than assembling commands from first principles.
> Signing up is free: a new account starts with 100 free credits, valid for its first 30 days, and needs no card. `cargo-ai login --email you@company.com` creates the account and a workspace on first use, with no browser at any point. Tell the user this before asking them to sign up.
> Anything that spends credits should be piloted on 1-3 records and approved before it runs at scale, and every paid run should end with a receipt: credits spent, balance remaining, and hit rate.

# Lusha

> Connect Lusha's API v3 on your own API key to enrich contacts and companies and search Lusha's database in your workflows.

## How to set up Lusha

### Authentication

Lusha uses your own Lusha API key:

1. Log in to the [Lusha dashboard](https://dashboard.lusha.com/api/manage-api-keys)
2. Open **API** → **Manage API keys** and copy a key
3. Paste the API key in Cargo when connecting

API v3 must be enabled on your Lusha plan. Cargo checks the key when you connect and shows Lusha's reason when it is refused, for example "V3 API access is not enabled for your account".

Lusha runs on your key only: every Lusha credit it spends comes from your Lusha account, and Cargo charges no credits for it. The earlier integration on Lusha's API v2, which Lusha retires on 2026-11-30, is now [Lusha (deprecated)](https://docs.getcargo.ai/integration/lusha.md).

> [!NOTE]
>
> **Code slugs.** Integration slug: `lushaV3`. Actions: `enrichContact`, `enrichCompany`, `searchContacts`, `searchCompanies`. Call them as `integrations.lushaV3.<action>(...)`.

### What costs Lusha credits

| Step | Lusha credits |
| - | - |
| Connecting, and the filter lists in the forms | None |
| **Enrich contact**: the search | Per contact found |
| **Enrich contact**: the reveal | For the one data point revealed |
| **Enrich company** | One per company found |
| **Search contacts** / **Search companies** | Per started block of 25 results |
| Nothing found | None |

On the plan checked on 2026-11-09, Lusha listed a search at 1 credit per 25 results, an email at 1 credit, a phone number at 5 and a company at 1. Prices depend on your plan; your Lusha dashboard shows yours.

A search asks Lusha for one block of 25 at a time and stops on the block that reaches your limit, so it never pays for records past it. A limit of 30 costs two blocks, the same as a limit of 50.

Enrich uses Lusha's own data only. Lusha's Data Waterfall, which falls through to third-party providers and bills them too, is turned off on every call.

## Lusha actions

### Enrich contact

Retrieve a contact's email or phone number, job title, location and company.

* **First name**, **Last name**, **Email**, **Company name**, **Company domain**, **LinkedIn URL**: provide a LinkedIn URL, an email, or a first name, last name and a company name or domain. With nothing usable, Lusha is not called and the node returns no contact.
* **Data point**: Email (default) or Phone number. Lusha bills each data point revealed, so only this one is revealed.

Cargo searches Lusha first and reveals only a contact Lusha holds that data point for, so a run on emails never pays for phone numbers. Anyone else returns no contact, and no reveal is charged.

Returns Lusha's enriched contact: `emails` (with `type` and `confidence`) or `phones` (formatted as Lusha sends them, e.g. `+33 6 28 41 07 30`, with `type` and `doNotCall`), plus `jobTitle`, `location`, `company` and `socialLinks`. The `company` field carries its id, name, domain and industry — run **Enrich company** on it for firmographics.

### Enrich company

Retrieve a company's firmographics.

* **Company name** or **Company domain**: at least one

Returns Lusha's enriched company: `domain`, `employeeCount`, `revenueRange`, `industry`, `sicCodes`, `naicsCodes`, `location`, `socialLinks`, `funding` and more.

### Search contacts

Find contacts in Lusha's database. Returns previews (name, job, company, location, and `has`, the data points Lusha holds) without emails or phone numbers. Run **Enrich contact** on the ones you keep.

* **Filters**: Job titles, Job titles (exact), Seniorities, Departments, Existing data points, Countries, Locations, Names, LinkedIn URLs, Skills and Search text, each with an **Exclude** twin
* **Company**: the same filters as **Search companies**, applied to the contact's current company
* **Limit**: 1 to 500 records, 40 by default

### Search companies

Find companies in Lusha's database. Returns previews: name, domain, size, industry and location.

* **Filters**: Names, Domains, LinkedIn URLs, Main industries, Sub-industries, SIC codes, NAICS codes, Technologies, Keywords, Specialities, Business models (B2B, B2C, B2G), Company types, Locations and Search text, each list with an **Exclude** twin, plus Sizes and Revenues (Lusha's own ranges, picked from its lists) and a minimum and maximum founded year
* **Limit**: 1 to 500 records, 40 by default

Seniorities, Departments, Existing data points, Countries, Main industries, Sub-industries, SIC codes, NAICS codes, Names and Technologies are picked from Lusha's own lists. A **Locations** row is one place: the fields of one row match together (France with Paris is Paris in France), and separate rows match separately.

Intent topics are not a search filter on API v3: Lusha moved them to its signals endpoints, which this integration does not call.

## Rate limits

Lusha sets API v3 limits per plan, over a minute, an hour and a day. Cargo sends at most 20 requests a second on each connector. If your plan allows fewer, set a lower rate limit on the connector.

## Best practices

* Build the list with **Search contacts**, then **Enrich contact** only the people you will contact
* Ask for a limit in multiples of 25: Lusha bills per started block of 25 results, so a limit of 50 costs what a limit of 30 does
* Enrich each company once with **Enrich company** rather than per contact


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