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

# Lusha

> Reveal a replying contact's phone and email with Lusha's API, then tell the rep to call.

> [!NOTE]
>
> **Pro plan.** Lusha works through a connection and HTTP steps, which are part of Pro and Agency (and the free trial). Anything you already have keeps working on every plan. See [Plans and billing](/help/account/billing.md).

Phones cost credits, so ask Lusha only for contacts who answered. A contact who replies leaves the campaign (the **When the contact replies** box), so add **Send to another campaign** in that box and pick a follow-up campaign. There, a **Webhook / HTTP** step asks Lusha for the person by LinkedIn URL and reveals their phones and emails.

> [!NOTE]
>
> **How it connects:** Lusha's API with your key in the `api_key` header. See [Lusha's API docs](https://docs.lusha.com) (contact search and enrich, v3). The request below follows Lusha's docs; check the answer's field names on your first real call.

## Before you start

* **Lusha plan:** the API uses your plan's credits; revealed phones cost more than emails (Lusha's docs and pricing).
* **An API key:** copy it from the API section of your Lusha account.

## 1. Connect Lusha

In Kerux, open **Integrations > Connections**, click **Connect** on **Custom API** (under **Developers**):

* **How it signs in:** **API key in a header**, **Header name** `api_key`, paste the key.
* **Base URL:** `https://api.lusha.com`

Click **Save**, then **Test connection**.

## 2. Reveal the contact

In the follow-up campaign, add a **Webhook / HTTP** step named `lusha`:

```json theme={null}
{
  "method": "POST",
  "url": "/v3/contacts/search-and-enrich",
  "bodyType": "json",
  "body": {
    "contacts": [
      { "clientReferenceId": "1", "linkedinUrl": "{{contact.linkedin_url}}" }
    ],
    "reveal": ["emails", "phones"]
  }
}
```

To check first without spending reveal credits, Lusha also has `/v3/contacts/search` with the same `contacts` list.

## 3. Tell the rep

Run one contact (below), open the contact's journey and find the phone in Lusha's answer. Then add a **Slack message** step with it, for example: `{{contact.full_name}} ({{contact.company}}) replied. Phone: {{steps.lusha.response.body.<path to the phone>}}`. Give the phone a default (`| default: "not found"`) so the message still goes out when Lusha has none.

## Test with one contact

In the follow-up campaign's **Builder**, click **Test** to open **Test on one contact**. The journey shows the request and Lusha's full answer, with the field paths to copy.

## Common errors

> [accordion] 401 or 403
>
> The key is wrong, or your plan doesn't include the API. Check the key and your Lusha plan.

> [accordion] Nothing revealed
>
> Lusha has no data for that profile. The step still succeeds; branch on the phone being empty.

> [accordion] 429 Too Many Requests
>
> You hit Lusha's rate limit. Kerux retries later on its own.

Related: [Webhook steps](/help/integrations/webhook-steps.md), [Aircall](/help/integration-guides/aircall.md), [Apollo.io](/help/integration-guides/apollo.md).


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