Iterable In App API
The In-app API from Iterable — 4 operation(s) for in-app.
Operations 5
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
The In-app API from Iterable — 4 operation(s) for in-app.
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/iterable:iterable-in-app-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
termsOfService: https://iterable.com/terms/
title: Iterable In App API
version: '1.8'
servers:
- url: https://api.iterable.com/
security:
- api_key: []
tags:
- name: In App
paths:
/api/inApp/cancel:
post:
description: 'Cancels the sending of a scheduled in-app message to a specific user.
Learn about identifying users by userId and email.'
operationId: cancel
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/IterableApiResponse'
'400':
description: Invalid parameters
'401':
description: Invalid API key
summary: Cancel a scheduled in-app message
tags:
- In App
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CancelScheduledMessageRequest_-_campaignId_OR_scheduledMessageId_are_required'
description: Email and Campaign ID
required: true
/api/inApp/getMessages:
get:
description: 'Get a user''s in-app messages. This endpoint always returns the user''s non-selective (not app-specific) in-app messages; to also fetch app-specific in-app messages, include a packageName and platform in the request. This endpoint returns new messages and messages that have already been saved to a mobile inbox, and each message has a read field to indicate whether or not it has already been seen.
Learn about identifying users by userId and email.'
operationId: getMessages
parameters:
- description: The email address of the user for which to fetch in-app messages. Specify either an email or a userId.
in: query
name: email
required: false
schema:
type: string
- description: The userId of the user for which to fetch in-app messages. Specify either an email or a userId.
in: query
name: userId
required: false
schema:
type: string
- description: The number of in-app messages to fetch.
in: query
name: count
required: true
schema:
type: integer
format: int32
- description: 'The platform of the app for which to retrieve selective in-app messages: iOS, Android, Web, or OTT (case-sensitive).'
in: query
name: platform
required: false
schema:
type: string
enum:
- iOS
- Android
- Web
- OTT
default: None
- description: Iterable SDK version (e.g., 6.2.17)
in: query
name: SDKVersion
required: false
schema:
type: string
default: None
- description: The package name of the app for which to retrieve selective in-app messages.
in: query
name: packageName
required: false
schema:
type: string
default: None
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ApiInAppMessagesResponse'
'400':
description: Invalid parameters
'401':
description: Invalid API key
summary: Get a user's in-app messages
tags:
- In App
/api/inApp/getPriorityMessage:
get:
description: 'Get a user''s most relevant in-app message.
Learn about identifying users by userId and email.'
operationId: getPriorityMessage
parameters:
- description: The email address of the user for which to fetch in-app messages. Specify either an email or a userId.
in: query
name: email
required: false
schema:
type: string
- description: The userId of the user for which to fetch in-app messages. Specify either an email or a userId.
in: query
name: userId
required: false
schema:
type: string
- description: 'The platform of the app for which to retrieve selective in-app messages: iOS, Android, Web, or OTT (case-sensitive).'
in: query
name: platform
required: false
schema:
type: string
enum:
- iOS
- Android
- Web
- OTT
default: None
- description: Iterable SDK version (e.g., 6.2.17)
in: query
name: SDKVersion
required: false
schema:
type: string
default: None
- description: The package name of the app for which to retrieve selective in-app messages.
in: query
name: packageName
required: false
schema:
type: string
default: None
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ApiInAppMessagesResponse'
'400':
description: Invalid parameters
'401':
description: Invalid API key
summary: Get a user's most relevant in-app message
tags:
- In App
/api/inApp/target:
post:
description: 'Send an in-app notification to a specific user. Request data fields will override user profile data fields. A reference to the user profile is provided via the profile field, to help resolve field collisions.
Learn about identifying users by userId and email.'
operationId: target
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/IterableApiResponse'
'400':
description: Invalid parameters
'401':
description: Invalid API key
summary: Send an in-app notification to a user
tags:
- In App
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TargetInAppRequest'
description: Recipient and email id
required: true
/inApp/getMessages:
get:
operationId: getInAppMessages
summary: Get in-app messages for a user
description: Retrieves pending in-app messages for a user, typically called by mobile or web SDKs to display in-app content.
tags:
- In App
parameters:
- name: email
in: query
description: Email address of the user
schema:
type: string
- name: userId
in: query
description: UserId of the user
schema:
type: string
- name: count
in: query
description: Maximum number of messages to return
schema:
type: integer
default: 1
- name: platform
in: query
description: The platform to get messages for
schema:
type: string
enum:
- iOS
- Android
- Web
responses:
'200':
description: In-app messages for the user
content:
application/json:
schema:
type: object
properties:
inAppMessages:
type: array
items:
type: object
properties:
messageId:
type: string
campaignId:
type: integer
content:
type: object
properties:
html:
type: string
payload:
type: object
additionalProperties: true
'401':
description: Unauthorized
components:
schemas:
RokuButtonContent:
properties:
buttonBorderColor:
type: string
buttonColorFocused:
type: string
buttonColorUnFocused:
type: string
buttonDeeplink:
type: string
buttonText:
type: string
buttonTextColorFocused:
type: string
buttonTextColorUnFocused:
type: string
required:
- buttonBorderColor
- buttonColorFocused
- buttonColorUnFocused
- buttonDeeplink
- buttonText
- buttonTextColorFocused
- buttonTextColorUnFocused
type: object
CancelScheduledMessageRequest_-_campaignId_OR_scheduledMessageId_are_required:
properties:
campaignId:
description: The ID of the campaign associated with the scheduled message you'd like to cancel. If you provide a <code>campaignId</code>, you must also provide an <code>email</code> or <code>userId</code>, depending on <a href="https://support.iterable.com/hc/articles/29156459027348">how your project identifies users</a>.
type: number
email:
description: An email address that identifies a user profile in Iterable. If you provide a <code>campaignId</code>, you must also provide an <code>email</code> or a <code>userId</code>, depending on <a href="https://support.iterable.com/hc/articles/29156459027348">how your project identifies users</a>.
type: string
scheduledMessageId:
type: number
userId:
description: A user ID that identifies a user profile in Iterable. If you provide a <code>campaignId</code>, you must also provide an <code>email</code> or a <code>userId</code>, depending on <a href="https://support.iterable.com/hc/articles/29156459027348">how your project identifies users</a>.
type: string
type: object
TargetInAppRequest:
properties:
allowRepeatMarketingSends:
description: Allow repeat marketing sends? Defaults to true.
type: boolean
campaignId:
description: Campaign ID
format: int64
type: integer
dataFields:
description: Fields to merge into email template
type: object
recipientEmail:
description: An email address that identifies a user profile in Iterable. Provide a <code>recipientEmail</code> or a <code>recipientUserId</code> (but not both), depending on <a href="https://support.iterable.com/hc/articles/29156459027348">how your project identifies users</a>.
type: string
recipientUserId:
description: A user ID that identifies a user profile in Iterable. Provide a <code>recipientEmail</code> or a <code>recipientUserId</code> (but not both), depending on <a href="https://support.iterable.com/hc/articles/29156459027348">how your project identifies users</a>.
type: string
sendAt:
description: Schedule the message for up to 365 days in the future. If set in the past, message is sent immediately. Format is YYYY-MM-DD HH:MM:SS in UTC
type: string
required:
- campaignId
type: object
ApiInAppMessage:
properties:
campaignId:
description: Campaign ID
type: number
content:
$ref: '#/components/schemas/InAppContentApi'
description: The content for the in-app message
createdAt:
description: Time the In-app message was created
format: date-time
type: string
customPayload:
description: The custom payload for the in-app message
type: object
expiresAt:
description: Time the in-app message will expire
format: date-time
type: string
inboxMetadata:
$ref: '#/components/schemas/InboxMetadata'
description: An object containing inbox metadata associated with this in-app message
jsonOnly:
type: boolean
messageId:
description: Iterable-generated Message ID
type: string
messageType:
$ref: '#/components/schemas/InAppType'
ottPayload:
$ref: '#/components/schemas/RokuContent'
description: The custom Roku payload for the in-app message
priorityLevel:
description: The priority value of the in-app message
type: number
read:
description: Whether or not the message was read by user
type: boolean
saveToInbox:
description: Whether or not the message associated with the event was configured to use the inbox
type: boolean
trigger:
$ref: '#/components/schemas/InAppTrigger'
description: The trigger type for the in-app message
typeOfContent:
$ref: '#/components/schemas/InAppTypeOfContent'
required:
- jsonOnly
- messageType
- typeOfContent
type: object
InAppTypeOfContent:
type: object
InAppType:
type: object
IterableApiResponse:
properties:
code:
enum:
- Success
- BadApiKey
- BadAuthorizationHeader
- BadJsonBody
- BadParams
- BatchTooLarge
- DatabaseError
- EmailAlreadyExists
- ExternalKeyConflict
- Forbidden
- ForbiddenParamsError
- ForgottenUserError
- GenericError
- InvalidEmailAddressError
- InvalidJwtPayload
- InvalidUserIdError
- JwtUserIdentifiersMismatched
- NotFound
- QueueEmailError
- RateLimitExceeded
- RequestFieldsTypesMismatched
- Unauthorized
- UniqueFieldsLimitExceeded
- UnknownEmailError
- UnknownUserIdError
- UserIdAlreadyExists
type: string
msg:
description: Response description
type: string
params:
description: Additional info
type: object
required:
- code
- msg
type: object
WebInAppDisplaySettings:
properties:
position:
$ref: '#/components/schemas/PositionOption'
description: The position of the message on the screen
type: object
Value:
type: object
ApiInAppMessagesResponse:
properties:
inAppMessages:
items:
$ref: '#/components/schemas/ApiInAppMessage'
type: array
required:
- inAppMessages
type: object
InboxMetadata:
properties:
icon:
description: The icon to display in the inbox
type: string
subtitle:
description: The subtitle to display in the inbox
type: string
title:
description: The title to display in the inbox
type: string
type: object
PositionOption:
type: object
InAppContentApi:
properties:
html:
description: The html to be displayed
type: string
inAppDisplaySettings:
$ref: '#/components/schemas/InAppDisplaySettings'
description: The in-app message display settings
ottPayload:
$ref: '#/components/schemas/RokuContent'
webInAppDisplaySettings:
$ref: '#/components/schemas/WebInAppDisplaySettings'
required:
- webInAppDisplaySettings
type: object
InAppDisplaySettings:
properties:
bgColor:
$ref: '#/components/schemas/BgColor'
description: The background color values
bottom:
$ref: '#/components/schemas/InAppDisplaySetting'
description: Padding percentage for the bottom of the notification, or -1 to autoexpand
left:
$ref: '#/components/schemas/InAppDisplaySetting'
description: Padding percentage for the left of the notification, or -1 to autoexpand
right:
$ref: '#/components/schemas/InAppDisplaySetting'
description: Padding percentage for the right of the notification, or -1 to autoexpand
shouldAnimate:
description: Enables In App Animations
type: boolean
top:
$ref: '#/components/schemas/InAppDisplaySetting'
description: Padding percentage for the top of the notification, or -1 to autoexpand
type: object
InAppDisplaySetting:
type: object
BgColor:
properties:
alpha:
description: The opacity range of the background between 0-1
type: number
hex:
description: 'The hex color of the background. Format: #FFFFFF'
type: string
type: object
RokuContent:
properties:
backgroundColor:
type: string
buttons:
items:
$ref: '#/components/schemas/RokuButtonContent'
type: array
dialogBodyFont:
type: string
dialogButtonFont:
type: string
dialogHeader:
type: string
dialogHeaderFont:
type: string
dialogText:
type: string
fhd_image:
type: string
textColor:
type: string
type: object
InAppTrigger:
properties:
type:
$ref: '#/components/schemas/Value'
description: How the in-app message was triggered
type: object
securitySchemes:
api_key:
in: header
name: Api-Key
type: apiKey
apiKeyAuth:
type: apiKey
in: header
name: Api-Key
description: Iterable API key passed in the Api-Key header. API keys can be created and managed in the Iterable project settings.