openapi: 3.1.0 info: title: Iterable Export Campaigns Commerce 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: Commerce description: Track purchase events, update cart data, and manage commerce-related user activity for revenue attribution. paths: /commerce/trackPurchase: post: operationId: trackPurchase summary: Track a purchase event description: Tracks a purchase event for a user, including the items purchased, total value, and associated properties. Purchase data is used for revenue attribution and campaign triggering. tags: - Commerce requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PurchaseRequest' responses: '200': description: Purchase tracked successfully content: application/json: schema: $ref: '#/components/schemas/IterableResponse' '400': description: Bad request '401': description: Unauthorized /commerce/updateCart: post: operationId: updateCart summary: Update a user's shopping cart description: Updates the shopping cart contents for a user. Cart data can be used for abandoned cart campaigns and personalization. tags: - Commerce requestBody: required: true content: application/json: schema: type: object properties: user: type: object properties: email: type: string description: Email address of the user userId: type: string description: UserId of the user items: type: array description: Array of cart items items: $ref: '#/components/schemas/CommerceItem' responses: '200': description: Cart updated successfully content: application/json: schema: $ref: '#/components/schemas/IterableResponse' '400': description: Bad request '401': description: Unauthorized components: schemas: CommerceItem: type: object description: A commerce item in a purchase or cart required: - id - name - price - quantity properties: id: type: string description: Item ID or SKU sku: type: string description: Item SKU name: type: string description: Item name description: type: string description: Item description categories: type: array description: Item categories items: type: string price: type: number description: Item price quantity: type: integer description: Quantity purchased imageUrl: type: string format: uri description: URL of the item image url: type: string format: uri description: URL of the item page dataFields: type: object description: Additional item data fields additionalProperties: true IterableResponse: type: object description: Standard Iterable API response indicating success or failure properties: msg: type: string description: Human-readable response message code: type: string description: Response code indicating success or error type params: type: object description: Additional response parameters additionalProperties: true PurchaseRequest: type: object description: Request body for tracking a purchase event required: - user - items - total properties: user: type: object description: The user who made the purchase properties: email: type: string format: email description: Email address of the user userId: type: string description: UserId of the user dataFields: type: object description: Additional user data fields to update additionalProperties: true items: type: array description: Array of items purchased items: $ref: '#/components/schemas/CommerceItem' total: type: number description: Total value of the purchase createdAt: type: integer description: Unix timestamp of the purchase dataFields: type: object description: Additional purchase data fields additionalProperties: true campaignId: type: integer description: Campaign ID to attribute the purchase to templateId: type: integer description: Template ID to attribute the purchase to 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