Iterable · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Iterable Campaigns API
17 actions
17 updates
phrasing
extends
openapi/iterable-campaigns-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Iterable's API. It is a proposal applied on top of the contract, not a document Iterable publishes.
What the actions change
x-apievangelist-phrasing
Targets 17 · first 16 shown; the file carries all of them
$.info
$.paths['/api/campaigns'].get
$.paths['/api/campaigns/abort'].post
$.paths['/api/campaigns/activateTriggered'].post
$.paths['/api/campaigns/archive'].post
$.paths['/api/campaigns/cancel'].post
$.paths['/api/campaigns/create'].post
$.paths['/api/campaigns/deactivateTriggered'].post
$.paths['/api/campaigns/metrics'].get
$.paths['/api/campaigns/recurring/{id}/childCampaigns'].get
$.paths['/api/campaigns/trigger'].post
$.paths['/api/campaigns/{campaignId}/schedule'].post
$.paths['/api/campaigns/{campaignId}/send'].post
$.paths['/api/campaigns/{id}'].get
$.paths['/campaigns'].get
$.paths['/campaigns/create'].post
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 Iterable Campaigns API
version: 1.0.0
extends: openapi/iterable-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: 16
- target: $.paths['/api/campaigns'].get
update:
x-apievangelist-phrasing:
intent: Page through campaign metadata by state
effect: read
questions:
- Can I page through all my campaigns and filter them by campaign state?
- Which of my Iterable campaigns are currently running, sorted by creation date?
instructions:
- text: List campaigns in the {campaignState} state, page {page} with {pageSize} per page.
slots:
campaignState: query.campaignState
page: query.page
pageSize: query.pageSize
- text: Show campaign metadata sorted by {sort}.
slots:
sort: query.sort
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/abort'].post
update:
x-apievangelist-phrasing:
intent: Abort a running campaign
effect: destructive
questions:
- How do I stop a blast campaign that is already sending?
- Is there a way to abort a campaign mid-send?
instructions:
- text: Abort campaign {campaignId} right now.
slots:
campaignId: requestBody.campaignId
- text: Halt the in-progress send of campaign {campaignId}.
slots:
campaignId: requestBody.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/activateTriggered'].post
update:
x-apievangelist-phrasing:
intent: Activate a triggered campaign
effect: write
questions:
- Can I turn on a triggered campaign through the API?
- What do I call to make a triggered campaign live again?
instructions:
- text: Activate triggered campaign {campaignId}.
slots:
campaignId: requestBody.campaignId
- text: Switch triggered campaign {campaignId} back on so it starts sending.
slots:
campaignId: requestBody.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/archive'].post
update:
x-apievangelist-phrasing:
intent: Archive one or more campaigns
effect: destructive
questions:
- Can I archive several campaigns at once, like the archive button in the UI?
- What happens to scheduled or recurring campaigns when I archive them?
instructions:
- text: Archive campaigns {campaignIds}.
slots:
campaignIds: requestBody.campaignIds
- text: Move campaigns {campaignIds} to the archive and cancel any scheduled sends.
slots:
campaignIds: requestBody.campaignIds
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/cancel'].post
update:
x-apievangelist-phrasing:
intent: Cancel a scheduled or recurring campaign
effect: destructive
questions:
- How do I cancel a campaign that is scheduled but hasn't sent yet?
- Can I stop a recurring campaign from sending future runs?
instructions:
- text: Cancel scheduled campaign {campaignId}.
slots:
campaignId: requestBody.campaignId
- text: Call off the recurring campaign {campaignId}.
slots:
campaignId: requestBody.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/create'].post
update:
x-apievangelist-phrasing:
intent: Create a blast or triggered campaign from a template
effect: write
questions:
- Can I create a campaign with labels, a send mode and a default time zone via the API?
- Which channels can a campaign created from an existing template use?
- Is it possible to create a campaign and schedule it to send in recipients' local time?
instructions:
- text: Create campaign {name} from template {templateId} targeting lists {listIds}.
slots:
name: requestBody.name
templateId: requestBody.templateId
listIds: requestBody.listIds
- text: Create campaign {name} using template {templateId} for lists {listIds}, scheduled for {sendAt} with send mode {sendMode}.
slots:
name: requestBody.name
templateId: requestBody.templateId
listIds: requestBody.listIds
sendAt: requestBody.sendAt
sendMode: requestBody.sendMode
- text: Create campaign {name} from template {templateId} for lists {listIds}, tagged with labels {labelIds}.
slots:
name: requestBody.name
templateId: requestBody.templateId
listIds: requestBody.listIds
labelIds: requestBody.labelIds
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/deactivateTriggered'].post
update:
x-apievangelist-phrasing:
intent: Deactivate a triggered campaign
effect: write
questions:
- Can I pause a triggered campaign without archiving it?
- What turns off a triggered campaign so API calls stop sending it?
instructions:
- text: Deactivate triggered campaign {campaignId}.
slots:
campaignId: requestBody.campaignId
- text: Turn off triggered campaign {campaignId} for now.
slots:
campaignId: requestBody.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/metrics'].get
update:
x-apievangelist-phrasing:
intent: Get metrics for campaigns in a date window
effect: read
questions:
- What is the rate limit when pulling campaign metrics from the /api/campaigns endpoint?
- Can I get metrics for several campaigns between two dates?
instructions:
- text: Get metrics for campaign {campaignId} from {startDateTime} to {endDateTime}.
slots:
campaignId: query.campaignId
startDateTime: query.startDateTime
endDateTime: query.endDateTime
- text: Pull the /api campaign metrics for campaign {campaignId}.
slots:
campaignId: query.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/recurring/{id}/childCampaigns'].get
update:
x-apievangelist-phrasing:
intent: List child campaigns of a recurring campaign
effect: read
questions:
- How can I see every campaign a recurring campaign has generated?
- Can I filter a recurring campaign's child runs by state?
instructions:
- text: List child campaigns of recurring campaign {id}.
slots:
id: path.id
- text: Show child campaigns of recurring campaign {id} in state {campaignState}, page {page}.
slots:
id: path.id
campaignState: query.campaignState
page: query.page
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/trigger'].post
update:
x-apievangelist-phrasing:
intent: Trigger a campaign to send to lists
effect: write
questions:
- Can I fire a triggered campaign at specific lists via the API?
- Is it possible to exclude suppression lists when triggering a campaign?
instructions:
- text: Trigger campaign {campaignId} for lists {listIds}.
slots:
campaignId: requestBody.campaignId
listIds: requestBody.listIds
- text: Trigger campaign {campaignId} for lists {listIds}, suppressing lists {suppressionListIds}.
slots:
campaignId: requestBody.campaignId
listIds: requestBody.listIds
suppressionListIds: requestBody.suppressionListIds
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{campaignId}/schedule'].post
update:
x-apievangelist-phrasing:
intent: Schedule an existing campaign to send later
effect: write
questions:
- Can I schedule an already-created campaign for a future time?
- Does scheduling support sending in each recipient's time zone?
instructions:
- text: Schedule campaign {campaignId} to send at {sendAt}.
slots:
campaignId: path.campaignId
sendAt: requestBody.sendAt
- text: Schedule campaign {campaignId} for {sendAt} in recipient local time {recipientTimeZone}.
slots:
campaignId: path.campaignId
sendAt: requestBody.sendAt
recipientTimeZone: requestBody.recipientTimeZone
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{campaignId}/send'].post
update:
x-apievangelist-phrasing:
intent: Send an existing campaign immediately
effect: write
questions:
- How do I send a campaign I already built right now instead of scheduling it?
- Can an existing campaign be launched immediately through the API?
instructions:
- text: Send campaign {campaignId} now.
slots:
campaignId: path.campaignId
- text: Launch existing campaign {campaignId} immediately.
slots:
campaignId: path.campaignId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/campaigns/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one campaign by ID
effect: read
questions:
- Where can I look up the details of a single campaign by its ID?
- What does a campaign record include when fetched individually?
instructions:
- text: Get campaign {id}.
slots:
id: path.id
- text: Show me the details of campaign {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns'].get
update:
x-apievangelist-phrasing:
intent: List all campaigns via the simple endpoint
effect: read
questions:
- Is there an unpaginated list of every campaign with its type and template?
- Which endpoint returns all campaigns in the project with no filters at all?
instructions:
- text: List every campaign using the plain /campaigns endpoint.
- text: Give me all campaigns with their type, status and template, unfiltered.
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/create'].post
update:
x-apievangelist-phrasing:
intent: Create a campaign via the simple endpoint
effect: write
questions:
- Can I create a campaign with just a name, template and list using the basic /campaigns/create endpoint?
- Which minimal fields does the simple create-campaign call need?
instructions:
- text: Use the basic /campaigns/create call to make campaign {name} with template {templateId} and lists {listIds}.
slots:
name: requestBody.name
templateId: requestBody.templateId
listIds: requestBody.listIds
- text: Via /campaigns/create, set up campaign {name} from template {templateId} for lists {listIds} sending at {sendAt}.
slots:
name: requestBody.name
templateId: requestBody.templateId
listIds: requestBody.listIds
sendAt: requestBody.sendAt
method: generated
generated: '2026-10-01'
- target: $.paths['/campaigns/metrics'].get
update:
x-apievangelist-phrasing:
intent: Get campaign engagement metrics
effect: read
questions:
- How many opens, clicks, bounces and complaints did my campaign get?
- Can I see sends and unsubscribes for a campaign from the plain /campaigns/metrics endpoint?
instructions:
- text: Get opens, clicks and unsubscribes for campaign {campaignId} from /campaigns/metrics.
slots:
campaignId: query.campaignId
- text: Pull engagement numbers for campaign {campaignId} since {startDateTime} using the simple metrics endpoint.
slots:
campaignId: query.campaignId
startDateTime: query.startDateTime
method: generated
generated: '2026-10-01'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.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.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/iterable-campaigns-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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.