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

# Lemlist: Connect Enrichment Provider

> Save your own API key for an external enrichment provider in Lemlist so it can be used in waterfalls. Includes SDK V2 examples, schemas, and cost.

Save your own API key for an external enrichment provider in Lemlist so it can be used in waterfalls.

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

## 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(
  'lemlist_connect_enrichment_provider',
  {
    "providerId": "provider_123",
    "apiKey": "example"
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute lemlist_connect_enrichment_provider --input '{
  "providerId": "provider_123",
  "apiKey": "example"
}' --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": {
    "data": {
      "id": "id_123",
      "displayName": "Example",
      "types": [
        "email"
      ],
      "source": "internal"
    }
  }
}
```

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

## Input reference

Saves your own API key for an external provider. The key is stored as-is and is NOT validated against the provider. calling it again replaces the key. The provider is connected for every enrichment type it supports. Once connected, the provider is added, disabled, to your existing custom waterfalls.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.providerId` | `string` | Yes | — | Id of an external provider, as listed by `GET /enrichments/providers`. |
| `payload.apiKey` | `string` | Yes | — | API key issued by the provider to your account. Minimum length: 1. |

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

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Saves your own API key for an external provider. The key is stored as-is and is NOT validated against the provider; calling it again replaces the key. The provider is connected for every enrichment type it supports. Once connected, the provider is added, disabled, to your existing custom waterfalls.",
    "properties": {
      "providerId": {
        "type": "string",
        "description": "Id of an external provider, as listed by `GET /enrichments/providers`."
      },
      "apiKey": {
        "type": "string",
        "description": "API key issued by the provider to your account.",
        "minLength": 1
      }
    },
    "required": [
      "providerId",
      "apiKey"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.data` | `object` | No | — | A data provider your team can place in a waterfall. |
| `result.data.data.id` | `string` | Yes | — | Stable identifier, to use as `providers[].id` in the waterfall endpoints. |
| `result.data.data.displayName` | `string` | Yes | — | Name shown in the lemlist app. |
| `result.data.data.types` | `array` | Yes | — | Enrichment types this provider supports. |
| `result.data.data.source` | `"internal" \| "external"` | Yes | — | `internal`: paid with lemlist credits, always available. `external`: called with your own API key, saved through the connection endpoint. Allowed: `internal`, `external`. |
| `result.data.data.connected` | `boolean` | No | — | Only on external providers: `true` once its API key is saved in lemlist. A waterfall can only enable a connected provider. |
| `result.meta` | `object` | 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": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "data": {
            "type": "object",
            "description": "A data provider your team can place in a waterfall.",
            "properties": {
              "id": {
                "type": "string",
                "description": "Stable identifier, to use as `providers[].id` in the waterfall endpoints."
              },
              "displayName": {
                "type": "string",
                "description": "Name shown in the lemlist app."
              },
              "types": {
                "type": "array",
                "description": "Enrichment types this provider supports.",
                "items": {
                  "type": "string",
                  "description": "Kind of data the waterfall looks for.",
                  "enum": [
                    "email",
                    "phone"
                  ]
                }
              },
              "source": {
                "type": "string",
                "description": "`internal`: paid with lemlist credits, always available. `external`: called with your own API key, saved through the connection endpoint.",
                "enum": [
                  "internal",
                  "external"
                ]
              },
              "connected": {
                "type": "boolean",
                "description": "Only on external providers: `true` once its API key is saved in lemlist. A waterfall can only enable a connected provider."
              }
            },
            "required": [
              "id",
              "displayName",
              "types",
              "source"
            ],
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Lemlist provider guide](https://deepline.com/docs/providers/lemlist/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.