lemlist · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Lemlist Campaigns API
16 actions
16 updates
phrasing
extends
openapi/lemlist-campaigns-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 16
$.info
$.paths['/campaigns'].get
$.paths['/campaigns'].post
$.paths['/campaigns/{campaignId}'].get
$.paths['/campaigns/{campaignId}'].patch
$.paths['/campaigns/{campaignId}/pause'].post
$.paths['/campaigns/{campaignId}/export/start'].get
$.paths['/campaigns/{campaignId}/export/{exportId}/status'].get
$.paths['/campaigns/reports'].get
$.paths['/campaigns/{campaignId}/export/{exportId}/email/{email}'].put
$.paths['/campaigns/{campaignId}/export/leads'].get
$.paths['/campaigns/{campaignId}/start'].post
$.paths['/v2/campaigns/{campaignId}/stats'].get
$.paths['/v2/campaigns/stats/batch'].post
$.paths['/campaigns/{campaignId}/duplicate'].post
$.paths['/campaigns/{campaignId}/statutes'].get
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 Campaigns API
version: 1.0.0
extends: openapi/lemlist-campaigns-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: 15
- target: $.paths['/campaigns'].get
update:
x-apievangelist-phrasing:
intent: List my campaigns
effect: read
questions:
- Which outreach campaigns do I have in lemlist right now?
- Can I list only campaigns that are paused or archived?
- How many campaigns come back per page at most?
instructions:
- text: List all my campaigns.
- text: Show my campaigns with status {status}, newest first.
slots:
status: query.status
- text: Get page {page} of my campaigns, {limit} at a time.
slots:
page: query.page
limit: query.limit
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns'].post
update:
x-apievangelist-phrasing:
intent: Create a new campaign
effect: write
questions:
- How do I start a brand-new outreach campaign from scratch?
- What do I need to provide to set up an empty campaign?
instructions:
- text: Create a new campaign called {name}.
slots:
name: requestBody.name
- text: Set up a fresh blank campaign.
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}'].get
update:
x-apievangelist-phrasing:
intent: Get one campaign's details
effect: read
questions:
- Where can I see the full details of a single campaign?
- What settings and status does a specific campaign have?
instructions:
- text: Show me campaign {campaignId}.
slots:
campaignId: path.campaignId
- text: Fetch the details of campaign {campaignId}.
slots:
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}'].patch
update:
x-apievangelist-phrasing:
intent: Update a campaign's settings
effect: write
questions:
- Can I make a campaign stop sending once a lead books a meeting?
- How do I turn off open tracking on an existing campaign?
- Is it possible to rename a campaign after creating it?
instructions:
- text: Rename campaign {campaignId} to {name}.
slots:
campaignId: path.campaignId
name: requestBody.name
- text: Set stop-on-reply to {stopOnEmailReplied} for campaign {campaignId}.
slots:
stopOnEmailReplied: requestBody.stopOnEmailReplied
campaignId: path.campaignId
- text: Set open tracking disabled to {disableTrackOpen} on campaign {campaignId}.
slots:
disableTrackOpen: requestBody.disableTrackOpen
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/pause'].post
update:
x-apievangelist-phrasing:
intent: Pause a running campaign
effect: write
questions:
- How do I temporarily stop a campaign from sending?
- Can I put an active sequence on hold?
instructions:
- text: Pause campaign {campaignId}.
slots:
campaignId: path.campaignId
- text: Put campaign {campaignId} on hold now.
slots:
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/export/start'].get
update:
x-apievangelist-phrasing:
intent: Start an export of campaign stats
effect: read
questions:
- How do I kick off an asynchronous export of a campaign's statistics?
- What returns the export id I need before downloading campaign stats?
instructions:
- text: Start a stats export for campaign {campaignId}.
slots:
campaignId: path.campaignId
- text: Begin exporting campaign {campaignId} statistics and give me the export id.
slots:
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/export/{exportId}/status'].get
update:
x-apievangelist-phrasing:
intent: Check the status of a campaign export
effect: read
questions:
- Is my campaign stats export finished yet?
- Where do I get the download link once a campaign export completes?
instructions:
- text: Check the status of export {exportId} for campaign {campaignId}.
slots:
exportId: path.exportId
campaignId: path.campaignId
- text: Tell me if export {exportId} of campaign {campaignId} is ready to download.
slots:
exportId: path.exportId
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/reports'].get
update:
x-apievangelist-phrasing:
intent: Get reports for several campaigns
effect: read
questions:
- Can I pull a summary report across multiple campaigns at once?
- Which report shows sent, opened and replied totals for a list of campaigns?
instructions:
- text: Get the campaign reports for {campaignIds}.
slots:
campaignIds: query.campaignIds
- text: Show me the overall reports for all my campaigns.
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/export/{exportId}/email/{email}'].put
update:
x-apievangelist-phrasing:
intent: Email a campaign export to an address
effect: write
questions:
- Can lemlist email me the stats file when a campaign export is done?
- How do I have a finished campaign export sent to a teammate's inbox?
instructions:
- text: Send export {exportId} of campaign {campaignId} to {email} when it's ready.
slots:
exportId: path.exportId
campaignId: path.campaignId
email: path.email
- text: Email the campaign {campaignId} export {exportId} to {email}.
slots:
campaignId: path.campaignId
exportId: path.exportId
email: path.email
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/export/leads'].get
update:
x-apievangelist-phrasing:
intent: Export a campaign's leads
effect: read
questions:
- How do I download every lead in a campaign as a CSV?
- Can I export only leads in a particular state, like interested?
instructions:
- text: Export the leads of campaign {campaignId} as {format}.
slots:
campaignId: path.campaignId
format: query.format
- text: Export campaign {campaignId} leads whose last state is {state}.
slots:
campaignId: path.campaignId
state: query.state
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/start'].post
update:
x-apievangelist-phrasing:
intent: Launch or resume a campaign
effect: write
questions:
- How do I launch a draft campaign so it starts sending?
- Can I restart a campaign I paused earlier?
instructions:
- text: Start campaign {campaignId}.
slots:
campaignId: path.campaignId
- text: Resume sending on paused campaign {campaignId}.
slots:
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/campaigns/{campaignId}/stats'].get
update:
x-apievangelist-phrasing:
intent: Get detailed stats for one campaign
effect: read
questions:
- What were a single campaign's open, click and reply numbers last month?
- Can I break down one campaign's stats by A/B version or channel?
instructions:
- text: Get stats for campaign {campaignId} from {startDate} to {endDate}.
slots:
campaignId: path.campaignId
startDate: query.startDate
endDate: query.endDate
- text: Show campaign {campaignId} stats for {channels} between {startDate} and {endDate}.
slots:
campaignId: path.campaignId
channels: query.channels
startDate: query.startDate
endDate: query.endDate
- text: Get version {ABSelected} results of campaign {campaignId} from {startDate} to {endDate}.
slots:
ABSelected: query.ABSelected
campaignId: path.campaignId
startDate: query.startDate
endDate: query.endDate
method: generated
generated: '2026-10-01'
- target: $.paths['/v2/campaigns/stats/batch'].post
update:
x-apievangelist-phrasing:
intent: Get stats for up to 100 campaigns at once
effect: read
questions:
- How do I compare detailed performance stats for many campaigns in one request?
- What's the limit on campaigns per batch stats call?
instructions:
- text: Get batch stats for campaigns {campaignIds} from {startDate} to {endDate}.
slots:
campaignIds: requestBody.campaignIds
startDate: requestBody.startDate
endDate: requestBody.endDate
- text: Compare campaigns {campaignIds} sent by {sendUser} between {startDate} and {endDate}.
slots:
campaignIds: requestBody.campaignIds
sendUser: requestBody.sendUser
startDate: requestBody.startDate
endDate: requestBody.endDate
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/duplicate'].post
update:
x-apievangelist-phrasing:
intent: Duplicate a campaign
effect: write
questions:
- Can I copy an existing campaign to reuse its sequence?
- What name does a duplicated campaign get if I don't pick one?
instructions:
- text: Duplicate campaign {campaignId}.
slots:
campaignId: path.campaignId
- text: Make a copy of campaign {campaignId} named {name}.
slots:
campaignId: path.campaignId
name: requestBody.name
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/statutes'].get
update:
x-apievangelist-phrasing:
intent: Check a campaign for launch errors and warnings
effect: read
questions:
- Why can't my campaign launch, and what's blocking it?
- Does my campaign have DNS or daily-limit warnings before I start it?
instructions:
- text: Check campaign {campaignId} for blocking errors and warnings.
slots:
campaignId: path.campaignId
- text: Run the launch validation on campaign {campaignId}.
slots:
campaignId: path.campaignId
method: generated
generated: '2026-10-01'