openapi: 3.1.0 info: title: Litmus Email Analytics Campaigns API description: The Litmus Email Analytics API provides REST endpoints for retrieving email campaign engagement metrics including read rates, deletion rates, device types, email clients, geographic data, and forwarding activity. Campaign data is accessed by GUID and returns detailed activity summary reports. Analytics data is collected via a tracking pixel embedded in sent emails and the API surfaces aggregated engagement breakdowns. version: 1.0.0 contact: name: Litmus Support url: https://www.litmus.com/support/ termsOfService: https://www.litmus.com/terms-of-service/ servers: - url: https://analytics-api.litmus.com/api/v1 description: Litmus Email Analytics API Production Server security: - basicAuth: [] tags: - name: Campaigns description: Email campaign tracking and management paths: /campaigns: get: operationId: listCampaigns summary: Litmus List campaigns description: Returns a paginated list of tracked email campaigns associated with the authenticated account. Each campaign entry includes its GUID, name, creation date, and a summary of total opens tracked so far. tags: - Campaigns parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/perPageParam' responses: '200': description: Paginated list of campaigns content: application/json: schema: $ref: '#/components/schemas/CampaignList' '401': description: Invalid credentials content: application/json: schema: $ref: '#/components/schemas/Error' post: operationId: createCampaign summary: Litmus Create a campaign description: Creates a new campaign tracking entry and returns a tracking GUID and pixel URL to embed in the email HTML. The tracking pixel collects engagement data when recipients open the email. tags: - Campaigns requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCampaignRequest' responses: '201': description: Campaign created successfully content: application/json: schema: $ref: '#/components/schemas/Campaign' '400': description: Invalid request body content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Invalid credentials content: application/json: schema: $ref: '#/components/schemas/Error' /campaigns/{campaignGuid}: get: operationId: getCampaign summary: Litmus Get a campaign description: Retrieves a specific campaign by its GUID including basic metadata and aggregate open count. Use the analytics sub-resources to retrieve detailed engagement breakdowns. tags: - Campaigns parameters: - $ref: '#/components/parameters/campaignGuidParam' responses: '200': description: Campaign retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Campaign' '401': description: Invalid credentials content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Campaign not found content: application/json: schema: $ref: '#/components/schemas/Error' delete: operationId: deleteCampaign summary: Litmus Delete a campaign description: Permanently deletes a campaign and all associated tracking data from the account. This action cannot be undone and will stop collection of new engagement events for the campaign. tags: - Campaigns parameters: - $ref: '#/components/parameters/campaignGuidParam' responses: '204': description: Campaign deleted successfully '401': description: Invalid credentials content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Campaign not found content: application/json: schema: $ref: '#/components/schemas/Error' components: parameters: perPageParam: name: per_page in: query description: Number of results per page required: false schema: type: integer minimum: 1 maximum: 100 default: 25 campaignGuidParam: name: campaignGuid in: path description: Unique identifier (GUID) for the email campaign required: true schema: type: string format: uuid example: 550e8400-e29b-41d4-a716-446655440000 pageParam: name: page in: query description: Page number for paginated results (1-based) required: false schema: type: integer minimum: 1 default: 1 schemas: Campaign: type: object description: An email campaign tracking entry properties: guid: type: string format: uuid description: Unique identifier for the campaign example: 550e8400-e29b-41d4-a716-446655440000 name: type: string description: Human-readable name of the campaign example: March Newsletter 2026 tracking_pixel_url: type: string format: uri description: URL of the tracking pixel to embed in the email HTML example: https://analytics.litmus.com/t/550e8400-e29b-41d4-a716-446655440000.gif created_at: type: string format: date-time description: Timestamp when the campaign was created total_opens: type: integer description: Total number of opens tracked for this campaign example: 4832 tags: type: array description: Tags assigned to the campaign items: type: string Error: type: object description: An API error response required: - message properties: message: type: string description: Human-readable error message example: Authentication required code: type: string description: Machine-readable error code example: unauthorized CampaignList: type: object description: Paginated list of campaigns properties: campaigns: type: array description: Array of campaign summaries items: $ref: '#/components/schemas/Campaign' total: type: integer description: Total number of campaigns in the account example: 54 page: type: integer description: Current page number example: 1 per_page: type: integer description: Number of campaigns per page example: 25 CreateCampaignRequest: type: object description: Request body for creating a new campaign tracking entry required: - name properties: name: type: string description: Human-readable name for the campaign example: March Newsletter 2026 maxLength: 255 tags: type: array description: Optional tags for organizing campaigns items: type: string example: - newsletter - Q1-2026 securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic Auth using Litmus account username and password externalDocs: description: Litmus Email Analytics API Documentation url: https://docs.litmus.com/email-analytics