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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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.
All 92 tools →

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.