openapi: 3.1.0 info: title: Iterable Export Campaigns API description: The Iterable Export API enables developers to extract data from Iterable projects for analytics, reporting, and data warehousing purposes. It provides export endpoints that allow retrieval of user data, event data, campaign metrics, and message engagement information in CSV and JSON formats. The export endpoints support filtering by date ranges and event types, making it possible to build custom reporting pipelines and synchronize Iterable data with external business intelligence tools. version: 1.0.0 contact: name: Iterable Support url: https://support.iterable.com termsOfService: https://iterable.com/trust/terms-of-service servers: - url: https://api.iterable.com/api description: US Data Center (USDC) - url: https://api.eu.iterable.com/api description: European Data Center (EDC) security: - apiKeyAuth: [] tags: - name: Campaigns description: Create, retrieve, and manage marketing campaigns. Access campaign metrics and trigger campaign sends. paths: /campaigns: get: operationId: listCampaigns summary: List campaigns description: Retrieves metadata for all campaigns in the project associated with the API key. Returns campaign id, name, type, status, template information, and creation dates. tags: - Campaigns responses: '200': description: List of campaigns content: application/json: schema: type: object properties: campaigns: type: array items: $ref: '#/components/schemas/Campaign' '401': description: Unauthorized /campaigns/create: post: operationId: createCampaign summary: Create a campaign description: Creates a new campaign in the Iterable project with the specified name, template, list, and configuration options. tags: - Campaigns requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CampaignCreateRequest' responses: '200': description: Campaign created successfully content: application/json: schema: type: object properties: msg: type: string code: type: string params: type: object properties: campaignId: type: integer description: The ID of the created campaign '400': description: Bad request '401': description: Unauthorized /campaigns/metrics: get: operationId: getCampaignMetrics summary: Get campaign metrics description: Retrieves engagement metrics for one or more campaigns, including sends, opens, clicks, unsubscribes, bounces, and complaints. tags: - Campaigns parameters: - name: campaignId in: query required: true description: One or more campaign IDs to retrieve metrics for schema: type: array items: type: integer - name: startDateTime in: query description: Start date for the metrics period in ISO 8601 format schema: type: string format: date-time - name: endDateTime in: query description: End date for the metrics period in ISO 8601 format schema: type: string format: date-time responses: '200': description: Campaign metrics data content: application/json: schema: type: object additionalProperties: true '401': description: Unauthorized components: schemas: CampaignCreateRequest: type: object description: Request body for creating a new campaign required: - name - listIds - templateId properties: name: type: string description: Campaign name listIds: type: array description: List IDs to target items: type: integer templateId: type: integer description: Template ID to use suppressionListIds: type: array description: List IDs for suppression items: type: integer sendAt: type: string format: date-time description: Scheduled send time in ISO 8601 format dataFields: type: object description: Additional data fields for personalization additionalProperties: true Campaign: type: object description: A marketing campaign in Iterable properties: id: type: integer description: Campaign ID name: type: string description: Campaign name type: type: string description: Campaign type (blast, triggered, proof, etc.) templateId: type: integer description: Associated template ID createdAt: type: string format: date-time description: Campaign creation date updatedAt: type: string format: date-time description: Campaign last update date messageMedium: type: string description: Message medium (Email, Push, SMS, InApp) enum: - Email - Push - SMS - InApp campaignState: type: string description: Current state of the campaign enum: - Draft - Scheduled - Running - Finished - Cancelled listIds: type: array description: List IDs the campaign targets items: type: integer labels: type: array description: Labels applied to the campaign items: type: string securitySchemes: 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. externalDocs: description: Iterable API Endpoints and Sample Payloads url: https://support.iterable.com/hc/en-us/articles/204780579-Iterable-API-Endpoints-and-Sample-Payloads