🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

lemlist official

by @micktaiwan

Official Lemlist API integration for sales automation and multichannel outreach. Use this skill when users want to: - Manage campaigns (create, list, pause,...

Versionv1.0.1
Downloads1,035
Comments4
TERMINAL
clawhub install lemlist-official

πŸ“– About This Skill


name: lemlist primaryEnv: LEMLIST_API_KEY description: | Official Lemlist API integration for sales automation and multichannel outreach. Use this skill when users want to: - Manage campaigns (create, list, pause, start, get stats) - Add, update, or remove leads from campaigns - Send messages via email, LinkedIn, WhatsApp, or SMS through inbox - Set up and manage webhooks for campaign events - Configure schedules for campaign sending - Manage unsubscribes (emails and domains) - Export campaign data (leads, activities, contacts) - Enrich leads with additional data - Control Lemwarm email warming - Work with sequences and steps - Manage inbox labels and conversations Examples: "list my lemlist campaigns", "add a lead to my campaign", "pause my campaign", "show campaign stats", "set up a webhook for email opens", "export my leads"

Lemlist

Interact with the Lemlist API to manage campaigns, leads, sequences, schedules, activities, inbox, webhooks, unsubscribes, exports, and enrichment.

Full endpoint reference: references/api-endpoints.md Official API docs: https://developer.lemlist.com/api-reference

Setup

1. Get API key

1. Log in to Lemlist 2. Go to Settings > Integrations > API Keys 3. Create a new key β€” copy immediately, shown only once

2. Configure in OpenClaw

Add to ~/.openclaw/openclaw.json:

{
  "skills": {
    "entries": {
      "lemlist": {
        "apiKey": "your-lemlist-api-key"
      }
    }
  }
}

Alternative explicit format:

{
  "skills": {
    "entries": {
      "lemlist": {
        "env": {
          "LEMLIST_API_KEY": "your-lemlist-api-key"
        }
      }
    }
  }
}

3. Verify

Run: Get my Lemlist team info

Docker sandbox

Forward the key explicitly:

{
  "agents": {
    "defaults": {
      "sandbox": {
        "docker": {
          "env": ["LEMLIST_API_KEY"]
        }
      }
    }
  }
}

Authentication

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

Basic Auth with empty username (colon before key is mandatory):

Authorization: Basic base64(:LEMLIST_API_KEY)

Python Helper

Use this pattern for all API calls:

import urllib.request, os, json, base64

API_KEY = os.environ["LEMLIST_API_KEY"] AUTH = base64.b64encode(f":{API_KEY}".encode()).decode() BASE = "https://api.lemlist.com/api"

def api(path, method="GET", data=None): body = json.dumps(data).encode() if data else None req = urllib.request.Request(f"{BASE}{path}", data=body, method=method) req.add_header("Authorization", f"Basic {AUTH}") req.add_header("User-Agent", "OpenClaw/1.0") if data: req.add_header("Content-Type", "application/json") return json.load(urllib.request.urlopen(req))

Endpoint Summary

| Domain | Key endpoints | |--------|--------------| | Team | GET /team, /team/members, /team/credits, /team/senders | | Campaigns | GET/POST /campaigns, PATCH /campaigns/:id, POST pause/start | | Sequences | GET /campaigns/:id/sequences, POST/PATCH/DELETE steps | | Leads (campaign) | GET/POST/PATCH/DELETE /campaigns/:id/leads/:idOrEmail | | Leads (global) | GET /leads, POST pause/start/interested/notinterested | | Lead variables | POST/PATCH/DELETE /leads/:id/variables | | Activities | GET /activities (filter: campaignId, type) | | Schedules | CRUD /schedules, POST /campaigns/:id/schedules | | Unsubscribes | GET /unsubscribes, POST/DELETE /unsubscribes/:value | | Webhooks | GET/POST/DELETE /hooks (max 200/team) | | Inbox | GET /inbox, POST email/linkedin/whatsapp/sms | | Inbox labels | CRUD /inbox/labels, assign via /conversations/labels/:contactId | | Companies | GET /companies, /companies/:id/notes | | Contacts | GET /contacts, /contacts/:idOrEmail | | Exports | GET /campaigns/:id/export (sync), /export/start (async) | | Enrichment | POST /leads/:id/enrich, GET /enrich/:id, POST /enrich (batch) | | Tasks | GET/POST/PATCH /tasks, POST /tasks/ignore | | Lemwarm | POST start/pause, GET/PATCH settings via /lemwarm/:mailboxId |

For request/response details, read references/api-endpoints.md.

Pagination

Params: offset (default 0), limit (max 100), page (1-based, overrides offset).

Paginated responses include pagination: { totalRecords, currentPage, nextPage, totalPage }. Some older endpoints return a plain array.

ID Prefixes

cam_ campaign, lea_ lead, skd_ schedule, seq_ sequence, tea_ team, usr_ user.

Gotchas

  • User-Agent required β€” set User-Agent: OpenClaw/1.0, Python's default UA is blocked by Cloudflare (403)
  • Basic Auth format β€” empty username mandatory: base64(":key"), not base64("key")
  • No campaign deletion β€” only pause via API
  • Email encoding β€” @ β†’ %40 in URL path params
  • Webhook auto-deletion β€” 404/410 response silently removes the webhook
  • No rate limiting β€” the public API does not throttle
  • Variable deletion β€” DELETE /leads/:id/variables deletes vars, not the lead
  • Sync vs async export β€” /export returns CSV directly, /export/start + poll for large volumes
  • Limits β€” 100 items/page, 200 webhooks/team, 100 API keys/team
  • βš™οΈ Configuration

    1. Get API key

    1. Log in to Lemlist 2. Go to Settings > Integrations > API Keys 3. Create a new key β€” copy immediately, shown only once

    2. Configure in OpenClaw

    Add to ~/.openclaw/openclaw.json:

    {
      "skills": {
        "entries": {
          "lemlist": {
            "apiKey": "your-lemlist-api-key"
          }
        }
      }
    }
    

    Alternative explicit format:

    {
      "skills": {
        "entries": {
          "lemlist": {
            "env": {
              "LEMLIST_API_KEY": "your-lemlist-api-key"
            }
          }
        }
      }
    }
    

    3. Verify

    Run: Get my Lemlist team info

    Docker sandbox

    Forward the key explicitly:

    {
      "agents": {
        "defaults": {
          "sandbox": {
            "docker": {
              "env": ["LEMLIST_API_KEY"]
            }
          }
        }
      }
    }