Authentication: API key. See Magic Link for the runtime auth flow.
Sample use cases
- List the users in the
Newsletter Subscriberslist and flag the ones who unsubscribed this week - Look up user
jane.doe@example.comand update their subscriptions - Activate the triggered campaign
Order Shippedfor a list of users
Available Tools
Abort a campaign that is currently sending. Messages not yet delivered are not sent; those already delivered are unaf…
Activate a triggered campaign so it can fire. Use list_campaigns to find a campaign whose type is ‘Triggered’. Use de…
Archive one or more campaigns, hiding them from the Campaigns page. Scheduled and recurring campaigns are cancelled a…
Send a verification code by SMS to a phone number. This delivers a real text message. Check the code the user receive…
Create or overwrite up to 1000 catalog items in one request. Set replace_uploaded_fields_only true to change only the…
Delete several items from a catalog in one request. Use list_catalog_items to find item IDs. Deletion is asynchronous…
Delete base templates by ID. A template any campaign references is reported in failed rather than deleted, so check t…
Subscribe or unsubscribe many users to or from one list, message type or channel. Name users by email in users, by us…
Set list, channel and message-type subscriptions for many users in one request. Each entry REPLACES the stored lists…
Create or update up to 1000 user profiles in one request. Each user is identified by email or user_id. Use list_user_…
Cancel a scheduled or recurring campaign so it does not send. Use list_campaigns with campaign_state [‘Scheduled’, ‘R…
Cancel a scheduled email before it is delivered. Identify it by scheduled_message_id, or by campaign_id plus the reci…
Stop a running experiment without choosing a winner. Use declare_experiment_winner to end it on a chosen arm instead…
Cancel a queued or running export job. Use list_export_jobs to find a job_id, or pass the one start_export returned…
Cancel a scheduled in-app message before it is delivered to the user’s device. Identify it by scheduled_message_id, o…
Cancel a scheduled mobile push notification before it is delivered. Identify it by scheduled_message_id, or by campai…
Cancel a scheduled RCS message before it is delivered. Identify it by scheduled_message_id, or by campaign_id plus th…
Cancel a scheduled SMS before it is delivered. Identify it by scheduled_message_id, or by campaign_id plus the recipi…
Cancel a scheduled browser push notification before it is delivered. Identify it by scheduled_message_id, or by campa…
Cancel a scheduled WhatsApp message before it is delivered. Identify it by scheduled_message_id, or by campaign_id pl…
Check a verification code against the number begin_sms_verification sent it to. Use the same phone_number and verific…
Create a blast or triggered campaign from an existing template, in Ready state so it sends nothing until scheduled. S…
Create an empty catalog. The name must be unique in the project, use only alphanumeric characters and dashes, and be…
Attach a new experiment to a campaign, choosing what it varies. Use list_campaigns to find campaign IDs. experiment_t…
Add a variant to an experiment by copying an existing template into it. Use list_templates for the template to copy a…
Create a static list. Returns the new list_id for use with subscribe_to_list and create_campaign. Dynamic (segment) l…
Create a snippet. The name must be unique in the project. Use upsert_snippet to create-or-update by name instead. Ret…
Deactivate a triggered campaign so it stops firing. Use list_campaigns to find a campaign whose type is ‘Triggered’…
End an experiment by declaring one variant the winner, after which the campaign sends that variant to everyone. Use l…
Delete a catalog and every collection that references it. Use list_catalogs to find catalog names. This is the invers…
Delete one item from a catalog. Use list_catalog_items to find item IDs; they are case-sensitive. Deletion is asynchr…
Delete an experiment from its campaign. Use cancel_experiment to stop a running experiment while keeping its results…
Delete a list. The users on it are not deleted, only their membership. Use list_lists to find list IDs. This is the i…
Delete one key and its value from a metadata table. The delete is asynchronous, so the key may still read back briefl…
Delete a whole metadata table and every key in it. The delete is asynchronous, so the table may still list briefly -…
Delete a snippet by its numeric ID or its name. Use list_snippets to find both. A template still referencing the snip…
Download campaign analytics immediately as CSV or JSON lines, without a background job. Supply range, or both start_d…
Download one user’s complete event history as JSON lines, identified by email or user_id. Use list_user_events for a…
Read one campaign by ID, including its state, template, lists and send times. Use list_campaigns to find campaign IDs…
Get send and engagement metrics for one or more campaigns as CSV. Use list_campaigns to find campaign IDs. Iterable r…
Read a catalog’s declared field types and the fields that have none. Call this before set_catalog_field_mappings - a…
Read one catalog item’s stored fields. Use list_catalog_items to find item IDs; they are case-sensitive. Use list_cat…
Read one email template’s full content: subject, HTML, plain text, sender and link settings. Use list_templates with…
Read one embedded-message template’s full content: title, body, elements and placement. Use list_templates to find te…
Read one experiment: its type, status, variants, traffic allocation and targeting. Use list_experiments to find exper…
Get a metrics report across several experiments or campaigns as rows of comma-separated values. Supply experiment_ids…
Read lifetime send and conversion totals for every variant in an experiment. Use get_experiment_trends for the same n…
Read an experiment’s per-variant metrics as a time series, with the holdout group reported separately. Use get_experi…
Read one in-app template’s full content: HTML, display settings, inbox metadata and expiry. Use list_templates with m…
Count the users on a list without reading them. Use list_lists to find list IDs. Iterable rate-limits this to 5 reque…
Read every user on a list as email addresses, or user IDs when prefer_user_id is true. Use get_list_size first for th…
Read one key’s stored JSON value from a metadata table. Use list_metadata_keys to find keys; they are case-sensitive…
Read the single most relevant in-app message waiting for one user. Use list_in_app_messages to see everything queued…
Read one push template’s full content: title, message, deep links, buttons and payload. Use list_templates with messa…
Read one SMS template’s full content: message body, image and link settings. Use list_templates with message_medium ’…
Read one snippet by its numeric ID or its name. Use list_snippets to find both. Read it before upsert_snippet, which…
Find the templates carrying a given client template ID, the secondary key set when a template is created through upse…
Read one user profile by email address, including every custom data field. Use get_user_by_user_id when you hold a us…
Read one user profile by user ID, including every custom data field. Use get_user_by_email when you hold an email add…
List campaigns in the project, with optional state filter and sort. Use this to find a campaign_id before reading met…
List a catalog’s items with their stored fields, optionally ordered by a typed field. Use list_catalogs for catalog n…
List the project’s catalog names. Use this to find a catalog_name before reading or writing catalog items. Page forwa…
List the project’s message channels and whether each is Marketing or Transactional. Call this before upsert_email_tem…
List the individual sends a recurring campaign has generated. Use list_campaigns with campaign_state [‘Recurring’] to…
List the embedded messages waiting for one user, grouped by placement. Read messageId out of each message’s metadata…
List an experiment’s variants with the template content each sends and its share of the audience. Use this to find th…
List the project’s experiments, filtered by campaign, state or start date. Use this to find an experiment_id before r…
Read an export job’s state and the files it has written, each with a signed download URL that expires after 30 minute…
List the project’s recent export jobs with their state and size. Use this to find a job_id when you no longer have th…
List the in-app messages waiting for one user on a mobile platform, in display priority order. Use get_priority_in_ap…
List the project’s journeys with their trigger events and enabled state. Use this to find the journey id that trigger…
List every list in the project with its type and size-relevant metadata. Use this to find a list_id before creating a…
List the project’s message types with their channel, subscription policy and send caps. Use this to find the message_…
List the keys in one metadata table, without their values. Use list_metadata_tables to find table names and get_metad…
List the project’s metadata tables. Metadata is Iterable’s own JSON key/value store, which templates read with the me…
List the messages Iterable has sent to one user, with campaign, date and channel filters. Identify the user by email…
List the project’s snippets with their content and variables. Use this to find a snippet’s ID or name before reading…
List the project’s templates with their IDs, names and message types, filtered by type, channel or creation date. Use…
Read one user’s recent events, newest first, identified by email or user_id. Use this to see what a user has done bef…
List every user-profile field defined in the project and its data type. Call this before update_user to learn which f…
List the in-app messages waiting for one user in the browser. Use list_in_app_messages for mobile platforms. Identify…
List the project’s system webhooks with their endpoints, authentication and scope. Use this to find the webhook id th…
Set individual fields on a catalog item, leaving the rest as they are, creating the item if it does not exist. Use up…
Render an email template against sample data and return the HTML, without sending anything. Use this to check merge f…
Render an in-app template against sample data and return the HTML, without sending anything. Use this to check merge…
Read a random sample of up to 5000 users on a list. Use this instead of get_list_users to inspect a large list cheapl…
Schedule an existing campaign to send at a given time. Use list_campaigns to find campaign IDs. Pass start_time_zone…
Send a real test email rendered from a template to one recipient. This delivers an actual message - use preview_email…
Send a real test in-app message rendered from a template to one recipient. This delivers an actual message - use prev…
Send a real test push notification rendered from a template to one recipient. This delivers an actual notification to…
Send a real test SMS rendered from a template to one recipient. This delivers an actual text message to the phone num…
Declare data types for a catalog’s fields so they can be sorted and filtered on. Call get_catalog_field_mappings firs…
Create or REPLACE one key’s JSON value, creating the table if it does not exist. The write is asynchronous: a 200 mea…
Start an experiment so it begins allocating traffic across its variants. Add variants with create_experiment_variant…
Queue a background export of events or user profiles and return its job_id. Poll list_export_files with that job_id f…
Send a user an SMS confirmation and subscribe them to the named message types once they reply. Only SMS message types…
Add users to a static list, creating profiles for identifiers that do not exist yet. Use list_lists to find a list wh…
Subscribe one user to a list, message type or channel. Use list_lists, list_message_types or list_channels for the gr…
Record many custom events in one request. Iterable processes bulk and single event calls on separate pipelines, so se…
Record a click on an embedded message, creating an embeddedClick event. Iterable’s mobile SDKs send this themselves…
Record that a device retrieved an embedded message, creating an embeddedReceived event. This means retrieved, not dis…
Record a viewing session and one impression per embedded message seen during it, creating an embeddedSession event an…
Record one custom event against a user profile. An event whose name appears in a journey’s trigger_event_names enrols…
Record a completed purchase against a user profile, creating the profile if it does not exist. This also CLEARS the p…
Fire a triggered campaign at the members of one or more lists. This sends real messages immediately. Use list_campaig…
Enrol one user, or every member of a list, in a journey. This starts real message sends on the journey’s schedule. Us…
Remove users from a list. Set channel_unsubscribe true to also opt them out of the list’s whole channel, which is eff…
Unsubscribe one user from a list, message type or channel. Use list_lists, list_message_types or list_channels for th…
Replace the items in a user’s shopping cart, creating the profile if it does not exist. The list given REPLACES the s…
Update one existing email template by ID. Read it with get_email_template first and send back the fields you want kep…
Update one existing embedded-message template by ID. Read it with get_embedded_template first and send back the field…
Change how an experiment splits traffic and picks a winner. Read the current settings with get_experiment first - a b…
Update one existing in-app template by ID. Read it with get_in_app_template first and send back the fields you want k…
Update one existing push template by ID. Read it with get_push_template first and send back the fields you want kept…
Update one existing SMS template by ID. Read it with get_sms_template first and send back the fields you want kept -…
Create or update one user profile, merging the fields given into whatever is already stored. Identify the user by ema…
Move a user profile to a new email address. Identify the profile by current_email or current_user_id. This is for ema…
Set one user’s list, channel and message-type subscriptions. Each list given REPLACES the stored one rather than addi…
Change an existing webhook’s endpoint, authentication, scope or enabled state. Use list_webhooks to find webhook IDs…
Create a catalog item, or REPLACE an existing one entirely - fields left out of value are removed. Use patch_catalog_…
Create an email template, or update every template sharing the client_template_id. Use list_message_types for message…
Create an embedded-message template, or update every template sharing the client_template_id. Use list_message_types…
Create an in-app template, or update every template sharing the client_template_id. Use list_message_types to find an…
Create a push template, or update every template sharing the client_template_id. Use list_message_types to find a pus…
Create an SMS template, or update every template sharing the client_template_id. message_type_id must belong to a cha…
Create or update a snippet by name, or update one by numeric ID. A numeric identifier only updates an existing snippe…
Fetch the rendered HTML of an email already sent to a user, with that recipient’s merge data applied. Use list_sent_m…