lemlist · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Lemlist Leads API
23 actions
23 updates
phrasing
extends
openapi/lemlist-leads-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for lemlist's API. It is a proposal applied on top of the contract, not a document lemlist publishes.
What the actions change
x-apievangelist-phrasing
Targets 23 · first 16 shown; the file carries all of them
$.info
$.paths['/leads/start/{leadId}'].post
$.paths['/leads/pause/{leadId}'].post
$.paths['/leads/interested/{leadIdOrEmail}'].post
$.paths['/leads/notinterested/{leadIdOrEmail}'].post
$.paths['/campaigns/{campaignId}/leads/{leadIdOrEmail}/interested'].post
$.paths['/campaigns/{campaignId}/leads/{leadIdOrEmail}/notinterested'].post
$.paths['/leads/{email}'].get
$.paths['/leads'].get
$.paths['/campaigns/{campaignId}/leads/{email}'].post
$.paths['/campaigns/{campaignId}/leads/{email}'].delete
$.paths['/campaigns/{campaignId}/leads/{leadId}'].delete
$.paths['/campaigns/{campaignId}/leads/{leadId}'].patch
$.paths['/leads/{leadId}/variables'].post
$.paths['/leads/{leadId}/variables'].delete
$.paths['/leads/{leadId}/variables'].patch
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Lemlist Leads API
version: 1.0.0
extends: openapi/lemlist-leads-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 22
- target: $.paths['/leads/start/{leadId}'].post
update:
x-apievangelist-phrasing:
intent: Resume a paused lead
effect: write
questions:
- How do I let a paused lead continue through the campaign sequence?
- Can I unpause one lead without restarting the whole campaign?
instructions:
- text: Resume paused lead {leadId}.
slots:
leadId: path.leadId
- text: Unpause lead {leadId} so their sequence continues.
slots:
leadId: path.leadId
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/pause/{leadId}'].post
update:
x-apievangelist-phrasing:
intent: Pause a lead's sequence
effect: write
questions:
- Can I stop sending to one lead while the campaign keeps running?
- How do I pause a lead in only one specific campaign?
instructions:
- text: Pause lead {leadId}.
slots:
leadId: path.leadId
- text: Pause lead {leadId} in campaign {campaignId} only.
slots:
leadId: path.leadId
campaignId: query.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/interested/{leadIdOrEmail}'].post
update:
x-apievangelist-phrasing:
intent: Mark a lead interested in all campaigns
effect: write
questions:
- How do I flag a lead as interested across every campaign they're in?
- Can I mark someone interested using just their email?
instructions:
- text: Mark {leadIdOrEmail} as interested everywhere.
slots:
leadIdOrEmail: path.leadIdOrEmail
- text: Flag lead {leadIdOrEmail} as interested across all campaigns.
slots:
leadIdOrEmail: path.leadIdOrEmail
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/notinterested/{leadIdOrEmail}'].post
update:
x-apievangelist-phrasing:
intent: Mark a lead not interested in all campaigns
effect: write
questions:
- How do I record that a prospect said no, across all campaigns?
- Can I mark a lead as not interested by email address?
instructions:
- text: Mark {leadIdOrEmail} as not interested everywhere.
slots:
leadIdOrEmail: path.leadIdOrEmail
- text: Flag lead {leadIdOrEmail} as not interested in all campaigns.
slots:
leadIdOrEmail: path.leadIdOrEmail
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/{leadIdOrEmail}/interested'].post
update:
x-apievangelist-phrasing:
intent: Mark a lead interested in one campaign
effect: write
questions:
- Can I mark a lead interested in just one campaign and not the others?
- How do I set interest for a lead within a single campaign?
instructions:
- text: Mark {leadIdOrEmail} as interested in campaign {campaignId} only.
slots:
leadIdOrEmail: path.leadIdOrEmail
campaignId: path.campaignId
- text: In campaign {campaignId}, flag lead {leadIdOrEmail} as interested.
slots:
campaignId: path.campaignId
leadIdOrEmail: path.leadIdOrEmail
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/{leadIdOrEmail}/notinterested'].post
update:
x-apievangelist-phrasing:
intent: Mark a lead not interested in one campaign
effect: write
questions:
- Can I mark a lead not interested for one campaign while keeping them in others?
- How do I record a campaign-specific rejection from a lead?
instructions:
- text: Record that {leadIdOrEmail} declined campaign {campaignId}, leaving their other campaigns untouched.
slots:
leadIdOrEmail: path.leadIdOrEmail
campaignId: path.campaignId
- text: Lead {leadIdOrEmail} rejected our pitch in campaign {campaignId}; set them to not interested there.
slots:
leadIdOrEmail: path.leadIdOrEmail
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/{email}'].get
update:
x-apievangelist-phrasing:
intent: Look up a lead by email in the path
effect: read
questions:
- Which campaigns is a given email address enrolled in as a lead?
- Can I fetch a lead's record by putting their email in the URL?
instructions:
- text: Find the lead whose email is {email}.
slots:
email: path.email
- text: Get lead {email} using API version {version}.
slots:
email: path.email
version: query.version
method: generated
generated: '2026-10-01'
- target: $.paths['/leads'].get
update:
x-apievangelist-phrasing:
intent: Look up a lead by id or email query
effect: read
questions:
- How do I retrieve a lead when I only have its lead id?
- Can I search for a lead with an id or email query parameter?
instructions:
- text: Retrieve the lead with id {id}.
slots:
id: query.id
- text: Query leads by email {email} with version {version}.
slots:
email: query.email
version: query.version
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/{email}'].post
update:
x-apievangelist-phrasing:
intent: Add a lead to a campaign by email in the path
effect: write
questions:
- Can I add a lead to a campaign by putting their email in the URL?
- Will deduplication skip a lead whose email is already in another campaign?
instructions:
- text: Add {email} to campaign {campaignId} as {firstName} {lastName} via the email-in-path endpoint.
slots:
email: path.email
campaignId: path.campaignId
firstName: requestBody.firstName
lastName: requestBody.lastName
- text: Insert lead {email} into campaign {campaignId} with icebreaker {icebreaker}, deduplicate {deduplicate}.
slots:
email: path.email
campaignId: path.campaignId
icebreaker: requestBody.icebreaker
deduplicate: query.deduplicate
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/{email}'].delete
update:
x-apievangelist-phrasing:
intent: Unsubscribe one lead email from a campaign
effect: destructive
questions:
- How do I take a single email address out of a campaign?
- Can I unsubscribe one lead from a campaign by their email?
instructions:
- text: Unsubscribe {email} from campaign {campaignId}.
slots:
email: path.email
campaignId: path.campaignId
- text: Remove lead email {email} from campaign {campaignId}'s sending.
slots:
email: path.email
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/{leadId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a lead from a campaign by id
effect: destructive
questions:
- Can I delete a lead record from a campaign entirely using its lead id?
- Is there a way to force-remove a lead from a campaign?
instructions:
- text: Delete lead {leadId} from campaign {campaignId}.
slots:
leadId: path.leadId
campaignId: path.campaignId
- text: Force-delete lead {leadId} in campaign {campaignId} with action {action}.
slots:
leadId: path.leadId
campaignId: path.campaignId
action: query.action
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/{leadId}'].patch
update:
x-apievangelist-phrasing:
intent: Update a lead's preferred contact method
effect: write
questions:
- How do I change whether a lead is reached by email or phone in a campaign?
- Can I update a lead's preferred contact channel?
instructions:
- text: Set lead {leadId} in campaign {campaignId} to prefer {preferredContactMethod}.
slots:
leadId: path.leadId
campaignId: path.campaignId
preferredContactMethod: requestBody.preferredContactMethod
- text: Update the campaign {campaignId} lead {leadId} contact method to {preferredContactMethod}.
slots:
campaignId: path.campaignId
leadId: path.leadId
preferredContactMethod: requestBody.preferredContactMethod
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/{leadId}/variables'].post
update:
x-apievangelist-phrasing:
intent: Add custom variables to a lead
effect: write
questions:
- How do I add new personalization variables to a lead?
- Can I attach a custom company variable to one lead for my templates?
instructions:
- text: Add the variable company={company} to lead {leadId}.
slots:
company: query.company
leadId: path.leadId
- text: Add a preferredContactMethod variable of {preferredContactMethod} on lead {leadId}.
slots:
preferredContactMethod: query.preferredContactMethod
leadId: path.leadId
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/{leadId}/variables'].delete
update:
x-apievangelist-phrasing:
intent: Delete custom variables from a lead
effect: destructive
questions:
- Can I remove a personalization variable I no longer need from a lead?
- How do I clear specific custom variables on one lead?
instructions:
- text: Delete the {company} variable from lead {leadId}.
slots:
company: query.company
leadId: path.leadId
- text: Remove variable {favoriteColor} from lead {leadId}.
slots:
favoriteColor: query.favoriteColor
leadId: path.leadId
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/{leadId}/variables'].patch
update:
x-apievangelist-phrasing:
intent: Change values of a lead's existing variables
effect: write
questions:
- How do I change the value of a variable already set on a lead?
- Can I overwrite a lead's existing custom company value?
instructions:
- text: Change lead {leadId}'s existing company variable to {company}.
slots:
leadId: path.leadId
company: query.company
- text: Update the favoriteColor variable on lead {leadId} to {favoriteColor}.
slots:
leadId: path.leadId
favoriteColor: query.favoriteColor
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/audio'].post
update:
x-apievangelist-phrasing:
intent: Upload a voice message audio for a lead
effect: write
questions:
- How do I attach a recorded voice note to a lead's voice message step?
- Can I upload a custom audio file for one lead in a sequence?
instructions:
- text: Upload this audio for lead {leadId} on voice step {stepId}.
slots:
leadId: query.leadId
stepId: query.stepId
- text: Attach my recorded voice message to step {stepId} for lead {leadId}.
slots:
stepId: query.stepId
leadId: query.leadId
method: generated
generated: '2026-10-01'
- target: $.paths['/crm/filters'].get
update:
x-apievangelist-phrasing:
intent: List filters from a connected CRM
effect: read
questions:
- Which saved CRM views or reports can I import leads from?
- Can I list Salesforce report filters for importing into a campaign?
instructions:
- text: List the {crm} filters for connected user {userId}.
slots:
crm: query.crm
userId: query.userId
- text: Show Salesforce filters of type {type}.
slots:
type: query.type
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/import'].post
update:
x-apievangelist-phrasing:
intent: Import leads from a CRM into a campaign
effect: write
questions:
- How do I pull leads from my CRM straight into a campaign?
- Can a CRM import skip people already in other campaigns?
instructions:
- text: Import leads from {crm} filter {filterId} into campaign {campaignId}.
slots:
crm: requestBody.crm
filterId: requestBody.filterId
campaignId: path.campaignId
- text: Import {filterType} {filterId} into campaign {campaignId} with deduplicate {deduplicate}.
slots:
filterType: requestBody.filterType
filterId: requestBody.filterId
campaignId: path.campaignId
deduplicate: requestBody.deduplicate
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/'].get
update:
x-apievangelist-phrasing:
intent: List the leads in a campaign
effect: read
questions:
- Who are all the leads in a particular campaign?
- Can I list only the leads in a campaign that are marked interested?
- What's the most leads I can fetch from a campaign in one call?
instructions:
- text: List the leads in campaign {campaignId}.
slots:
campaignId: path.campaignId
- text: Show up to {limit} leads in campaign {campaignId} with state {state}.
slots:
limit: query.limit
campaignId: path.campaignId
state: query.state
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/'].post
update:
x-apievangelist-phrasing:
intent: Add a lead to a campaign with email in the body
effect: write
questions:
- How do I add a new prospect to a campaign with their details and timezone?
- Can I find and verify a lead's email while adding them to a campaign?
instructions:
- text: Add a lead to campaign {campaignId} with email {email}, timezone {timezone}.
slots:
campaignId: path.campaignId
email: requestBody.email
timezone: requestBody.timezone
- text: Add {firstName} from {companyDomain} to campaign {campaignId} and find their email ({findEmail}).
slots:
firstName: requestBody.firstName
companyDomain: requestBody.companyDomain
campaignId: path.campaignId
findEmail: query.findEmail
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/leads/'].delete
update:
x-apievangelist-phrasing:
intent: Unsubscribe leads from a campaign in bulk
effect: destructive
questions:
- Can I unsubscribe several leads from a campaign in a single request?
- How do I remove a batch of leads from one campaign?
instructions:
- text: Unsubscribe a batch of leads from campaign {campaignId}.
slots:
campaignId: path.campaignId
- text: Bulk-remove these leads from campaign {campaignId}.
slots:
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/leads/review/{leadId}'].post
update:
x-apievangelist-phrasing:
intent: Launch a lead waiting for review
effect: write
questions:
- How do I approve and launch a single lead that's stuck awaiting review?
- Can I launch one reviewed lead without turning on auto-review for the campaign?
instructions:
- text: Launch lead {leadId}, which is waiting for review.
slots:
leadId: path.leadId
- text: Approve the review of lead {leadId} and start sending.
slots:
leadId: path.leadId
method: generated
generated: '2026-10-01'