lemlist Activities API
The activity history feed, and deletion of call recordings and transcripts.
The activity history feed, and deletion of call recordings and transcripts.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/lemlist-activities-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Lemlist Activities API
version: 1.0.0
description: 'Operations tagged Activities across 3 of this provider''s published API definitions: lemlist-openapi-v1-legacy.json, lemlist-openapi-v2.json, lemlist-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.lemlist.com/api
tags:
- name: Activities
paths:
/activities/:
parameters: []
get:
summary: Retrieve Activities
tags:
- Activities
parameters:
- name: type
in: query
required: false
description: (Optional)
example: paused
schema:
type: string
- name: campaignId
in: query
required: false
description: (Optional)
example: '{{campaignId}}'
schema:
type: string
- name: isFirst
in: query
required: false
description: (Optional)
example: 'true'
schema:
type: boolean
- name: offset
in: query
required: false
description: (Optional)
example: '0'
schema:
type: integer
- name: limit
in: query
required: false
description: '(Optional) Default: 100 | Max: 100'
example: '2'
schema:
type: integer
- name: leadId
in: query
required: false
description: (Optional) Get activities for a lead when provided
example: '{{leadId}}'
schema:
type: string
- name: version
in: query
required: false
description: '(Optional) Default: v1'
example: v2
schema:
type: string
- name: Content
in: header
required: false
example: application/json
schema:
type: string
responses:
'200':
headers:
Content-Type:
schema:
type: string
example: application/json
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
_id:
type: string
type:
type: string
emailId:
type: string
messageId:
type: string
emailTemplateId:
type: string
isFirst:
type: boolean
stopped:
type: boolean
createdAt:
type: string
format: date-time
bot:
type: boolean
teamId:
type: string
leadId:
type: string
campaignId:
type: string
sequenceId:
type: string
sequenceStep:
type: integer
createdBy:
type: string
sendUserId:
type: string
totalSequenceStep:
type: integer
name:
type: string
sendUserName:
type: string
sendUserEmail:
type: string
format: email
sendUserMailboxId:
type: string
sendUserMailboxProviderId:
type: string
format: email
leadFirstName:
type: string
leadLastName:
type: string
leadEmail:
type: string
format: email
leadPhone:
type: string
leadPicture:
type: string
leadCompanyName:
type: string
metaData:
type: object
properties:
teamId:
type: string
campaignId:
type: string
leadId:
type: string
type:
type: string
createdBy:
type: string
email:
type: string
format: email
phone:
type: string
firstName:
type: string
lastName:
type: string
sendUserLoginEmail:
type: string
format: email
campaignName:
type: string
emailTemplateName:
type: string
companyName:
type: string
companyDomain:
type: string
picture:
type: string
isPremium:
type: string
locationName:
type: string
occupation:
type: string
industry:
type: string
summary:
type: string
certification:
type: string
certification1:
type: string
certification2:
type: string
certification3:
type: string
certification4:
type: string
certification5:
type: string
certification6:
type: string
certification7:
type: string
certification8:
type: string
certification9:
type: string
certification10:
type: string
certification11:
type: string
certification12:
type: string
certification13:
type: string
certification14:
type: string
certification15:
type: string
certification16:
type: string
certification17:
type: string
certification18:
type: string
certification19:
type: string
school:
type: string
school1:
type: string
school2:
type: string
school3:
type: string
school4:
type: string
school5:
type: string
languages:
type: string
skills:
type: string
companyProfileUrl:
type: string
companyTagline:
type: string
companyHeadQuarter:
type: string
companySpecialities:
type: string
companyDescription:
type: string
companyFoundedOn:
type: string
companyEmployeesOnLinkedin:
type: string
companyIndustry:
type: string
companyLogo:
type: string
companyType:
type: string
sequenceTested:
type: string
recording:
type: string
transcription:
type: string
example:
- _id: act_xXR99r2dyRedXb8pc
type: emailsSent
emailId: eml_8BdDtmtTJPzXTiMTL
messageId: <CADzbc6WBrJ0Dv1QRLaADAeffAAKMGMCjWQw=UFyazhDqxryoHw@mail.gmail.com>
emailTemplateId: etp_Tds8DjFk7cumowE8B
isFirst: true
stopped: false
createdAt: '2024-07-22T15:25:13.610Z'
bot: false
teamId: tea_KAiTn2K9RoYA85MuY
leadId: lea_u2H5qeBCGWKDdaj6B
campaignId: cam_6mKKdaC5PNQiBu2jT
sequenceId: seq_zNK94gqDakNmcRuGy
sequenceStep: 1
createdBy: usr_QAucgYReK6EmMB3Cz
sendUserId: usr_QAucgYReK6EmMB3Cz
totalSequenceStep: 1
name: Campaign example
sendUserName: John Doe
sendUserEmail: john.doe@lemlist.co
sendUserMailboxId: usm_im9fnaYmKKQaixa9d
sendUserMailboxProviderId: john.doe@lemlist.co
leadFirstName: ''
leadLastName: ''
leadEmail: john.doe@lempire.co
leadPhone: ''
leadPicture: ''
leadCompanyName: ''
metaData:
teamId: tea_KAiTn2K9RoYA85MuY
campaignId: cam_6mKKdaC5PNQiBu2jT
leadId: lea_u2H5qeBCGWKDdaj6B
type: emailsSent
createdBy: usr_QAucgYReK6EmMB3Cz
email: john.doe@lempire.co
phone: ''
firstName: ''
lastName: ''
sendUserLoginEmail: john.doe@lempire.co
campaignName: Example's campaign
emailTemplateName: Blank
companyName: ''
companyDomain: ''
picture: ''
isPremium: ''
locationName: ''
occupation: ''
industry: ''
summary: ''
certification: ''
certification1: ''
certification2: ''
certification3: ''
certification4: ''
certification5: ''
certification6: ''
certification7: ''
certification8: ''
certification9: ''
certification10: ''
certification11: ''
certification12: ''
certification13: ''
certification14: ''
certification15: ''
certification16: ''
certification17: ''
certification18: ''
certification19: ''
school: ''
school1: ''
school2: ''
school3: ''
school4: ''
school5: ''
languages: ''
skills: ''
companyProfileUrl: ''
companyTagline: ''
companyHeadQuarter: ''
companySpecialities: ''
companyDescription: ''
companyFoundedOn: ''
companyEmployeesOnLinkedin: ''
companyIndustry: ''
companyLogo: ''
companyType: ''
sequenceTested: A
recording: <recording url>
transcription: <transcription url>
servers:
- url: https://api.lemlist.com/api
/activities:
get:
summary: Get Many Activities
tags:
- Activities
parameters:
- name: version
in: query
required: true
description: API version. v2 is mandatory
example: v2
schema:
type: string
enum:
- v2
- name: type
in: query
required: false
description: Filter by activity type (e.g., paused)
example: paused
schema:
type: string
- name: campaignId
in: query
required: false
description: Filter by campaign ID
example: cam_123
schema:
type: string
- name: isFirst
in: query
required: false
description: Filter for first activity
example: 'true'
schema:
type: boolean
- name: offset
in: query
required: false
description: 'Number of records to skip. Note: This is not traditional cursor-based pagination. To retrieve all activities, increment offset by the limit value on each request (e.g., offset=0, then offset=100, then offset=200, etc.).'
example: '0'
schema:
type: integer
- name: limit
in: query
required: false
description: 'Number of activities to retrieve. Default: 100. Maximum: 100'
example: '2'
schema:
type: integer
- name: leadId
in: query
required: false
description: Filter by lead ID
example: lea_123
schema:
type: string
- name: minDate
in: query
required: false
description: Filter activities by `createdAt >= minDate`. Accepts either a Unix timestamp in seconds (e.g. `1715385600`) or an ISO 8601 datetime (e.g. `2026-05-11T00:00:00Z`). `minDate` is the primary name; `startDate` is accepted as an alias and `minDate` takes precedence when both are provided.
example: '2026-05-01T00:00:00Z'
schema:
type: string
- name: maxDate
in: query
required: false
description: Filter activities by `createdAt <= maxDate`. Accepts either a Unix timestamp in seconds (e.g. `1715385600`) or an ISO 8601 datetime (e.g. `2026-05-11T00:00:00Z`). Must be strictly greater than `minDate` when both are provided. `maxDate` is the primary name; `endDate` is accepted as an alias and `maxDate` takes precedence when both are provided.
example: '2026-05-31T23:59:59Z'
schema:
type: string
- name: startDate
in: query
required: false
description: Alias for `minDate`, provided for consistency with sibling endpoints (e.g. `/campaigns/{campaignId}/stats`). Accepts either a Unix timestamp in seconds or an ISO 8601 datetime. Ignored when `minDate` is also provided.
example: '2026-05-01T00:00:00Z'
schema:
type: string
- name: endDate
in: query
required: false
description: Alias for `maxDate`, provided for consistency with sibling endpoints (e.g. `/campaigns/{campaignId}/stats`). Accepts either a Unix timestamp in seconds or an ISO 8601 datetime. Ignored when `maxDate` is also provided.
example: '2026-05-31T23:59:59Z'
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Activity'
example:
- _id: act_PbKqTGpQqSlPcoOZ5
type: manualDone
userId: usr_Emu1g29BMtBixhMSP
userName: Guillaume Moubeche
bot: false
createdAt: '2025-10-28T08:07:38.375Z'
leadFirstName: John
leadLastName: Doe
leadEmail: support@lemlist.com
leadCompanyName: Acme Inc
leadId: lea_fiDpiGV585wy3Oii2
contactId: ctc_xW8Ou6C03Csv8vatp
campaignId: cam_bSn8EORHQxbWPjHvu
teamId: tea_8QvkOiBfPdb2ZRhHi
opportunityId: opp_LyXDV8KHzctQdLFpG
metaData:
teamId: tea_8QvkOiBfPdb2ZRhHi
campaignId: cam_bSn8EORHQxbWPjHvu
leadId: lea_fiDpiGV585wy3Oii2
type: manualDone
lead:
_id: lea_fiDpiGV585wy3Oii2
isPaused: false
state: manualNotInterested
personalized: false
source: api
variables:
firstName: John
lastName: Doe
companyName: Acme Inc
jobTitle: Growth Engineer
companyDomain: example.com
email: support@lemlist.com
preferredContactMethod: email
industry: Technology
Company name: John Doe
contactId: ctc_xW8Ou6C03Csv8vatp
enrichment:
emailStatus: deliverable
campaignName: NEW TO DELETE
sequenceTested: B
- _id: act_j0NrG6rYEPP9TMmWC
teamId: tea_8QvkOiBfPdb2ZRhHi
companyId: cpn_Qf4CJuUrNUNmHm6uZ
type: annotated
createdAt: '2025-10-28T04:25:00.653Z'
note: could help our GTM team be more productive
sendUserId: usr_ahfFktBBHUIxbVG5P
userId: usr_ahfFktBBHUIxbVG5P
- _id: act_WeKrlIaQlBnM3LZ6G
type: manualNotInterested
teamId: tea_8QvkOiBfPdb2ZRhHi
userName: api
isFirst: false
bot: false
createdAt: '2025-10-28T02:14:34.834Z'
name: NEW TO DELETE
leadFirstName: John
leadLastName: Doe
leadEmail: support@lemlist.com
leadCompanyName: Acme Inc
leadId: lea_fiDpiGV585wy3Oii2
contactId: ctc_xW8Ou6C03Csv8vatp
campaignId: cam_bSn8EORHQxbWPjHvu
metaData:
teamId: tea_8QvkOiBfPdb2ZRhHi
campaignId: cam_bSn8EORHQxbWPjHvu
leadId: lea_fiDpiGV585wy3Oii2
type: manualNotInterested
lead:
_id: lea_fiDpiGV585wy3Oii2
isPaused: false
state: manualNotInterested
personalized: false
source: api
variables:
firstName: John
lastName: Doe
companyName: Acme Inc
jobTitle: Growth Engineer
companyDomain: example.com
email: support@lemlist.com
preferredContactMethod: email
industry: Technology
Company name: John Doe
contactId: ctc_xW8Ou6C03Csv8vatp
enrichment:
emailStatus: deliverable
campaignName: NEW TO DELETE
sequenceTested: B
- _id: act_zktTG4HXXXSOQya5U
type: paused
userName: api
bot: false
createdAt: '2025-10-28T01:54:56.099Z'
name: NEW TO DELETE
leadFirstName: John
leadLastName: Doe
leadEmail: support@lemlist.com
leadCompanyName: Acme Inc
leadId: lea_fiDpiGV585wy3Oii2
contactId: ctc_xW8Ou6C03Csv8vatp
campaignId: cam_bSn8EORHQxbWPjHvu
teamId: tea_8QvkOiBfPdb2ZRhHi
metaData:
teamId: tea_8QvkOiBfPdb2ZRhHi
campaignId: cam_bSn8EORHQxbWPjHvu
leadId: lea_fiDpiGV585wy3Oii2
type: paused
lead:
_id: lea_fiDpiGV585wy3Oii2
isPaused: false
state: manualNotInterested
personalized: false
source: api
variables:
firstName: John
lastName: Doe
companyName: Acme Inc
jobTitle: Growth Engineer
companyDomain: example.com
email: support@lemlist.com
preferredContactMethod: email
industry: Technology
Company name: John Doe
contactId: ctc_xW8Ou6C03Csv8vatp
enrichment:
emailStatus: deliverable
campaignName: NEW TO DELETE
sequenceTested: B
- _id: act_x6esGLhoPa2SMHCZ7
type: emailsOpened
isFirst: false
stopped: false
createdAt: '2025-10-27T20:20:59.696Z'
bot: false
teamId: tea_8QvkOiBfPdb2ZRhHi
leadId: lea_wj47uWhDbbN6Qq6oT
campaignId: cam_oxeGg6paG3ZVxjHkH
sequenceId: seq_ODjsLXkxXiySRw6dK
sequenceStep: 1
emailTemplateId: etp_z3nAbjdHuewVEjIl5
createdBy: usr_EvXz6JqPSJJL9lHkp
sendUserId: usr_EvXz6JqPSJJL9lHkp
name: Unicorn campaign
leadFirstName: Sam
leadLastName: Taylor
leadEmail: sam@example.com
leadCompanyName: lemlist
contactId: ctc_FkeUdQHEfhqG2HMbK
relatedSentAt: '2020-12-07T11:49:14.830Z'
metaData:
teamId: tea_8QvkOiBfPdb2ZRhHi
campaignId: cam_oxeGg6paG3ZVxjHkH
leadId: lea_wj47uWhDbbN6Qq6oT
type: emailsOpened
createdBy: usr_EvXz6JqPSJJL9lHkp
taskId: tsk_namMcIQnA6gxQIupP
lead:
_id: lea_wj47uWhDbbN6Qq6oT
isPaused: false
state: emailsUnsubscribed
personalized: false
source: manually
variables:
firstName: 'Sam '
lastName: Taylor
email: sam@example.com
companyName: lemlist
linkedinUrl: https://www.linkedin.com/in/sam-doe
contactId: ctc_FkeUdQHEfhqG2HMbK
enrichment: {}
campaignName: Unicorn campaign
sequenceTested: A
emailTemplateName: Blank
- _id: act_q4tnlXNdXsBeQceYW
type: emailsOpened
isFirst: false
stopped: false
createdAt: '2025-10-27T20:17:24.119Z'
bot: false
teamId: tea_8QvkOiBfPdb2ZRhHi
leadId: lea_wj47uWhDbbN6Qq6oT
campaignId: cam_oxeGg6paG3ZVxjHkH
sequenceId: seq_ODjsLXkxXiySRw6dK
sequenceStep: 1
emailTemplateId: etp_z3nAbjdHuewVEjIl5
createdBy: usr_EvXz6JqPSJJL9lHkp
sendUserId: usr_EvXz6JqPSJJL9lHkp
name: Unicorn campaign
leadFirstName: Sam
leadLastName: Taylor
leadEmail: sam@example.com
leadCompanyName: lemlist
contactId: ctc_FkeUdQHEfhqG2HMbK
relatedSentAt: '2020-12-07T11:49:14.830Z'
metaData:
teamId: tea_8QvkOiBfPdb2ZRhHi
campaignId: cam_oxeGg6paG3ZVxjHkH
leadId: lea_wj47uWhDbbN6Qq6oT
type: emailsOpened
createdBy: usr_EvXz6JqPSJJL9lHkp
taskId: tsk_namMcIQnA6gxQIupP
lead:
_id: lea_wj47uWhDbbN6Qq6oT
isPaused: false
state: emailsUnsubscribed
personalized: false
source: manually
variables:
firstName: 'Sam '
lastName: Taylor
email: sam@example.com
companyName: lemlist
linkedinUrl: https://www.linkedin.com/in/sam-doe
contactId: ctc_FkeUdQHEfhqG2HMbK
enrichment: {}
campaignName: Unicorn campaign
sequenceTested: A
emailTemplateName: Blank
'400':
description: Bad team
content:
text/plain:
example: Bad team
'401':
description: Unauthorized
security:
- basicAuth: []
servers:
- url: https://api.lemlist.com/api
/activities/{activityId}/recording-transcript:
delete:
summary: Delete Activity Recording & Transcript
tags:
- Activities
parameters:
- name: activityId
in: path
required: true
description: Unique activity ID
example: act_123
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: true
'401':
description: Unauthorized
'404':
description: Activity not found or has no recording
content:
text/plain:
example: Activity not found
'405':
description: Method not allowed
'500':
description: Error while deleting recording or transcript
security:
- basicAuth: []
servers:
- url: https://api.lemlist.com/api
components:
schemas:
Activity:
type: object
description: A recorded action or event in a campaign sequence (email sent, opened, clicked, etc.).
properties:
_id:
type: string
description: Unique activity identifier
type:
type: string
description: Activity type (emailOpened, emailClicked, emailReplied, etc.)
leadId:
type: string
description: Associated lead ID
campaignId:
type: string
description: Campaign ID
sequenceId:
type: string
description: Sequence ID
stepId:
type: string
description: Stable identifier of the sequence step that produced this activity. Present on every activity created from now on; older activities gain it progressively as historical records are backfilled, so treat it as optional when reading history.
sequenceStep:
type: number
description: 0-based position of the step within the sequence. Still emitted on every activity, unchanged. Prefer `stepId` for a reference that survives steps being reordered.
totalSequenceStep:
type: number
description: 0-based count of the sequence steps already delivered to this lead.
createdAt:
type: string
format: date-time
description: When the activity occurred
securitySchemes:
basicAuth:
type: http
scheme: basic
x-refined-from:
- lemlist-openapi-v1-legacy.json
- lemlist-openapi-v2.json
- lemlist-openapi.yml