---
title: "lemlist API: pricing, rate limits & MCP | ONEGTMLAB"
description: "lemlist API: Multichannel outreach platform (email, LinkedIn, calls, SMS, WhatsApp) with a 650M+ lead database, credit-based waterfall enrichment, intent…"
canonical: https://www.onegtmlab.dev/tool-directory/sending/lemlist
---

# lemlist API: pricing, rate limits & MCP | ONEGTMLAB

[](/)

[

Book a call

](/book)

![](/_astro/lemlist.CtTpvJYG_VGG0V.webp)

API review

# lemlist API review

Multichannel outreach platform (email, LinkedIn, calls, SMS, WhatsApp) with a 650M+ lead database, credit-based waterfall enrichment, intent signal agents, a 211-endpoint REST API, an official OAuth MCP server and a CLI. Best for email + LinkedIn sequences with personalised images/liquid syntax built and launched by API.

Verified 25 Oct 2026 · 211 endpoints listed · Official MCP server

[

See pricing

](#pricing)[

lemlist API docs

](https://developer.lemlist.com/llms.txt)

At a glance

Category

Sending, Sourcing, Enrichment, Signals

Pricing model

Per seat

Free tier

14-day trial of Multichannel features (no in-app calls) with 200 free credits…

Entry price

$55/mo, billed annually Email

Auth

Basic auth

Official MCP

Yes

Best for

Email + LinkedIn sequences with personalised images/liquid syntax built and launched by API

[lemlist.com ↗](https://www.lemlist.com)[Pricing page ↗](https://www.lemlist.com/pricing)

## What a call costs

The actions you pay for, as lemlist prices them.

Action

Cost

Per

Lead data enrichment add-on

$20/mo ($16 annual)

2,000 credits/mo = 400 emails or 100 phones

Buying intent signals add-on

$29/mo ($21 annual)

100 signals/mo

Email / phone finder (waterfall)

$1 in credits

20 emails or 5 phone numbers (~5 credits/email, ~20 credits/phone, derived); charged only on success

SMS send

6 credits

per SMS (API docs: one SMS credit per message segment)

Contact sourcing (buying-committee) run

1 credit

per successful run; reused runs free (API docs)

Extra email sender

$9/mo

per email sender

Phone number (calls/SMS)

$15/mo

per number; own number free; 400 free calling min/mo on Multichannel, 800 on Enterprise

WhatsApp add-on

$20/mo

per user

## Pricing, plan by plan

US dollars, as lemlist's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.

Free tier 14-day trial of Multichannel features (no in-app calls) with 200 free credits (pricing FAQ). The same page also carries a conditional 'extended 30 day free trial' referral banner; treat 14 days as the standard trial.

### Email

$69/mo

billed monthly

$55/mo

billed annually

unlimited users and email senders; priced by monthly email volume, entry tier 50,000 emails/mo; 650M+ leads database, email & phone finder (credits), lemlist MCP & CLI, CRM integrations & API; quarterly billing $62/mo

API includedPlan details

move up a volume tier (monthly / quarterly / yearly per month): 100k $89/$80/$71; 200k $159/$143/$127; 500k $359/$323/$287; 1M $659/$593/$527; custom via sales

### Multichannel

$109/mo

billed monthly

$87/mo

billed annually

per user; quarterly billing $99/user/mo; 5 senders per user; unlimited emails & messages; LinkedIn automation, SMS (needs a $15/mo number, 6 credits per SMS), built-in dialer with 400 free calling min/mo; WhatsApp is an add-on

API includedPlan details

extra email sender $9/email/mo; WhatsApp add-on $20/user/mo; phone number $15/mo

### Enterprise

Custom quote

custom; >=5 senders per user, use lemlist from your CRM, custom roles & permissions, SSO/SAML, dedicated account manager, priority support, 800 free calling min/mo

API included

## Rate limits

20 requests per 2 seconds on all routes, per API key.

### all plans

Per 2 Seconds

20

More on limitsLess

Responses carry Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (a human-readable date string, not epoch).

## How to get an API key

lemlist uses Basic auth. The steps below follow lemlist's own docs.

1.  Create a lemlist account. API access starts on the Email plan.
2.  app.lemlist.com -> Settings -> Integrations (Team > Integrations) -> Generate a new API key (shown once). One key = one account; agencies hold one key per client account.
3.  Send it with every request: header (Authorization: Basic base64); empty username, key as password.
4.  Make a first call: Delete Activity Recording & Transcript, Deletes the call recording and transcript associated with an activity. Keep the key in an environment variable, never in the command.
    
    ```
    curl -X DELETE "https://api.lemlist.com/api/activities/{activityId}/recording-transcript" \
      -u ":$LEMLIST_API_KEY"
    ```
    

## Where the docs live

What

Where

Documentation

[developer.lemlist.com/api-reference/getting-started/overview](https://developer.lemlist.com/api-reference/getting-started/overview)

API reference

[developer.lemlist.com/llms.txt](https://developer.lemlist.com/llms.txt)

OpenAPI spec

[developer.lemlist.com/api-reference/openapi/v2.json](https://developer.lemlist.com/api-reference/openapi/v2.json)

llms.txt

[developer.lemlist.com/llms.txt](https://developer.lemlist.com/llms.txt)

Base URL

`https://api.lemlist.com/api`

MCP server

`https://app.lemlist.com/mcp`

SDKs

@lemlist-official/cli (npm, official; OAuth or API key, named profiles), lemlist agent skill / Claude Code /lemlist-agent command

## Strengths and limits

### Where it fits

-   Email + LinkedIn sequences with personalised images/liquid syntax built and launched by API
-   Agencies: one key per account, CLI named profiles per client team
-   Agent-driven outreach through the official MCP (OAuth, Claude/ChatGPT/Grok/Cursor)
-   Pulling leads from its own people/company database and enriching them inside the same tool

### Where it falls short

-   Clients needing a clean single version: some endpoints still default to deprecated v1 unless version=v2
-   Teams needing per-action credit prices in the API docs (they appear only as pricing-page tooltips: $1 = 20 emails or 5 phones, 6 credits per SMS)
-   Very high-volume cold email on a budget (Email plan fixes volume per tier)

### Worth knowing

-   Auth is HTTP BASIC with an EMPTY username: base64(':'+key). Bearer does not work.
-   v1 is deprecated but still the DEFAULT on some endpoints (e.g. Get Many Campaigns); pass version=v2 explicitly.
-   X-RateLimit-Reset is a human-readable date string, not a Unix timestamp.
-   Create Lead in Campaign never updates: an existing lead returns 400 LEAD\_ALREADY\_IN\_CAMPAIGN; deduplicate=true gives 409 LEAD\_ALREADY\_IN\_OTHER\_CAMPAIGN (the campaign 'remove duplicates' setting does not drive this).
-   Any extra body key on lead create becomes a custom variable ({{var}}); characters other than letters, digits, \_, -, space, # are replaced by \_.

5 moreShow fewer

-   Company fields sent with a lead overwrite the SHARED company record every other lead reads; default updateStrategy=overwrite, and an empty value clears a stored field.
-   Webhook cap is 200 per workspace INCLUDING auto-disabled ones, and a URL can be registered only once.
-   When naming the MCP server for OAuth, don't include 'lemlist' in the name; lemlist refuses to register such client apps.
-   Credits are charged only on successful results and roll over while subscribed. Per-action credit costs are not in the API docs (the Credits object page is an image only); the pricing page tooltips give them: $1 in credits = 20 emails or 5 phones, 6 credits per SMS.
-   A request with no API key returns 400 'no api key provided', not 401.

## Who should use it

Use lemlist for

Email + LinkedIn sequences with personalised images/liquid syntax built and launched by API

Look elsewhere for

Clients needing a clean single version: some endpoints still default to deprecated v1 unless version=v2

## If lemlist is not the answer

Other Email sending tools in this directory, each with its own review.

[

![](/_astro/aimfox.Cl8sLyp7.svg)

Aimfox

LinkedIn outreach

From $40.83/moOfficial MCP

Best for multi-account LinkedIn outreach where you want to rent extra sender profiles natively.

Aimfox API review →](/tool-directory/linkedin-outreach/aimfox)[

![](/_astro/dripify.CHsfpJDs_1kJMTW.webp)

Dripify

LinkedIn outreach

From $59/moOfficial MCP

Best for solo sellers or small teams running LinkedIn + email sequences from their own accounts.

Dripify API review →](/tool-directory/linkedin-outreach/dripify)[

![](/_astro/emailbison.fVnRcAh4_Z1AVftg.webp)

EmailBison

Email sending

From $599/mo

Best for agencies and teams sending hundreds of thousands of emails a month that want dedicated IPs and no per-seat or per-lead….

EmailBison API review →](/tool-directory/sending/emailbison)

## Before you build

Four things to settle first, each read off lemlist's own pages.

-   **Confirm the API is on your plan**API access starts on the Email plan. Free tier: 14-day trial of Multichannel features (no in-app calls) with 200 free credits (pricing FAQ).
    
-   **Keep the key out of your code**Basic auth. It is sent as: header (Authorization: Basic base64); empty username, key as password.
    
-   **Design around the rate limit**20 requests per 2 seconds on all routes, per API key.
    
-   **Know the catch before you scale**Auth is HTTP BASIC with an EMPTY username: base64(':'+key). Bearer does not work.
    

## Want us to build it for you?

Tell us what you want lemlist to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.

[

Book a call

](/book)[

See case studies

](/case-studies)

Read from [lemlist.com/pricing](https://www.lemlist.com/pricing), [developer.lemlist.com/llms.txt](https://developer.lemlist.com/llms.txt) and [developer.lemlist.com/api-reference/getting-started/rate-](https://developer.lemlist.com/api-reference/getting-started/rate-limits). Verified 25 Oct 2026.

All 211 endpointsFor developers: method, path, what it does and what it costs.

**Base URL:** `https://api.lemlist.com/api`

**Bulk and async:** POST /v2/enrichments/bulk; all enrichment is async (poll GET /enrich/{enrichId} or use the enrichmentDone webhook); campaign/contact/database exports.

**Webhooks:** Events: contacted, hooked, attracted, warmed, interested, notInterested, emailsSent, emailsOpened, emailsClicked, emailsReplied, emailsBounced, emailsFailed and 67 more. max 200 webhooks per workspace (disabled ones count); a targetUrl can be registered only once regardless of type; webhooks auto-disable (not delete) on 404/410/DNS failure; needs 'Edit integrations' permission

Filter endpoints

211 endpoints

Method

Path

What it does

Cost

DELETE

`/activities/{activityId}/recording-transcript`

Delete Activity Recording & Transcript, Deletes the call recording and transcript associated with an activity.

Not stated

GET

`/activities`

Get Many Activities, Retrieves the history of all campaign activities and steps performed (optionally filtered by activity type and campaign).

Not stated

POST

`/campaigns/{campaignId}/triggers/watch-lists`

Add Signal Agent Trigger, Links a Signal Agent to a campaign as its signal trigger.

Not stated

POST

`/campaigns`

Create Campaign, Creates a new campaign with auto-generated sequence and schedule.

Not stated

POST

`/campaigns/{campaignId}/duplicate`

Duplicate Campaign, Duplicates an existing campaign with all its sequences, schedules, and templates.

Not stated

GET

`/v2/campaigns/{campaignId}/export/leads`

Export Campaign Leads, Exports leads from a campaign with flexible filtering and format options.

Not stated

GET

`/campaigns/{campaignId}/export/leads`

Export Campaign Leads (legacy), Exports leads from a campaign with flexible filtering and format options.

Not stated

POST

`/v2/campaigns/stats/batch`

Get Batch Campaign Stats, Retrieves performance statistics for multiple campaigns in a single request.

Not stated

GETasync

`/campaigns/{campaignId}/export/{exportId}/status`

Get Campaign Export Status, Checks the status of an asynchronous campaign export.

Not stated

GET

`/campaigns/reports`

Get Campaign Reports, Retrieves aggregated reports and statistics for one or multiple campaigns.

Not stated

GET

`/v2/campaigns/{campaignId}/stats`

Get Campaign Stats, Retrieves performance statistics for a specific campaign.

Not stated

GET

`/campaigns/{campaignId}/statutes`

Get Campaign Statutes, Retrieves validation statutes for a campaign, including errors that block launching and warnings about daily limits, DNS issues, etc.

Not stated

GET

`/campaigns/{campaignId}`

Get Campaign, Retrieves detailed information about a specific campaign by ID.

Not stated

GET

`/campaigns`

Get Many Campaigns, Retrieves a paginated list of all campaigns in your team.

Not stated

POST

`/campaigns/{campaignId}/pause`

Pause Campaign, Pauses a running campaign without affecting scheduled leads.

Not stated

DELETE

`/campaigns/{campaignId}/triggers/watch-lists/{watchListId}`

Remove Signal Agent Trigger, Detaches a Signal Agent from a campaign's signal triggers.

Not stated

PUT

`/campaigns/{campaignId}/export/{exportId}/email/{email}`

Set Email for Campaign Export Notification, Configures email notification delivery when a campaign export completes.

Not stated

POST

`/campaigns/{campaignId}/steps/{stepId}/skip`

Skip Step for Everyone, Skips one step of a running campaign for every lead.

Not stated

POST

`/campaigns/{campaignId}/steps/{stepId}/skip-for-leads`

Skip Step for Leads, Skips one step of a running campaign for a list of leads.

Not stated

GETasync

`/campaigns/{campaignId}/export/start`

Start Campaign Stats Export, Initiates an asynchronous export of campaign statistics to a CSV file.

Not stated

POST

`/campaigns/{campaignId}/start`

Start Campaign, Starts or resumes a paused campaign.

Not stated

PATCH

`/campaigns/{campaignId}`

Update Campaign, Updates the settings and configuration of an existing campaign.

Not stated

POST

`/companies/crm/create`

Create Companies in the CRM, Pushes companies to your connected CRM, linking each one to the CRM record found and creating it there when none matches.

Not stated

POST

`/companies/lists`

Create Company List, Creates a new static company list.

Not stated

POST

`/companies/{companyId}/notes`

Create Company Note, Creates a new note attached to a specific company.

Not stated

DELETE

`/companies/{companyId}`

Delete Company, Deletes a lemlist company. Use \`force=true\` to detach attached contacts before deletion.

Not stated

GET

`/companies/lists`

Get Company Lists, Retrieves all company lists for the team, with optional name filtering.

Not stated

GET

`/companies/{companyId}/notes`

Get Company Notes, Retrieves all notes associated with a specific company.

Not stated

GET

`/companies/{companyId}`

Get Company, Retrieves one company by its lemlist id (\`cpn\_xxx\`), as a bare object. Answers 404 when no company of your team carries this id.

Not stated

GET

`/companies`

Get Many Companies, Retrieves companies from your CRM. Use \`idsOrDomains\` to fetch specific companies by ID or domain in a single request (max 100), \`crmIds\` to find them from their record id in your connected CRM, or om

Not stated

POST

`/companies/lists/{listId}/entities`

Add or Remove Companies in a List, Add companies to a static company list, or remove them with ?action=remove.

Not stated

POST

`/companies/merge`

Merge Companies, Merges up to 10 lemlist companies into one survivor, moving everything attached to the deleted companies onto it.

Not stated

POST

`/companies/crm/search-and-connect`

Search & Connect Companies in the CRM, Searches your connected CRM for companies and links each one to the CRM record found, without creating any CRM record.

Not stated

POST

`/companies`

Add and update company, Creates a new company or updates an existing one based on domain or LinkedIn URL.

Not stated

POST

`/contact-sourcing/contacts`

Add a Sourced Contact, Turns one contact-sourcing recommendation into a lemlist contact.

findEmail=true spends enrichment credits (off by default)

GETasync

`/contact-sourcing`

Get Contact Sourcing Run, Reads a contact-sourcing run by ID, or the latest run of an account.

Not stated

POSTasync

`/contact-sourcing`

Run Contact Sourcing, Starts an AI contact-sourcing run for one or more accounts.

1 credit per run, charged when the run succeeds; a reused run (status 'reused') is free

POST

`/contacts/lists`

Create Contact List, Creates a new static contact list.

Not stated

POST

`/contacts/{idOrEmail}/notes`

Create Contact Note, Writes a note on a specific contact, as a note written in the lemlist app, pushed to your connected CRM.

Not stated

POST

`/contacts/crm/create`

Create Contacts in the CRM, Pushes contacts to your connected CRM, linking each one to the CRM record found and creating it there when none matches.

Not stated

[](/)

© 2026 ONEGTMLAB Private Limited. All rights reserved.

COMPANY

[

Why Us

](/#why-us)[

Process

](/#timeline)[

Blogs

](/blogs)[

About

](/about)[

Clients

](/clients)[

Free resources

](/free-resources)[

Newsletter

](/newsletter)

Services

[

GTM Engineering

](/ai-gtm-engineering)[

Account-Based Marketing

](/services/account-based-marketing)[

Paid Media

](/services/paid-media)[

Content Engineering

](/linkedin-personal-branding)[

RevOps

](/services/revops)[

SEO, AEO & GEO

](/services/seo-aeo-geo)[

All services

](/services)

![](/_astro/wordmark-3d.CMEfGdYr.svg)
