Customer.io Campaigns API

Retrieve information about campaigns, campaign actions, and campaign metrics in your workspace.

OpenAPI Specification

customer-io-campaigns-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Customer.io App Activities Campaigns API
  description: The Customer.io App API enables developers to manage workspace resources and send messages programmatically. It provides endpoints for sending transactional messages, triggering broadcasts, managing customers and segments, retrieving campaign and newsletter data, and exporting customer information. The API uses bearer token authentication with an App API key and is designed for operations that go beyond data ingestion, such as retrieving metrics, managing message templates, and automating outbound communications from Customer.io.
  version: 1.0.0
  contact:
    name: Customer.io Support
    url: https://customer.io/contact
  termsOfService: https://customer.io/legal/terms-of-service
servers:
- url: https://api.customer.io/v1
  description: US Production Server
- url: https://api-eu.customer.io/v1
  description: EU Production Server
security:
- bearerAuth: []
tags:
- name: Campaigns
  description: Retrieve information about campaigns, campaign actions, and campaign metrics in your workspace.
paths:
  /campaigns:
    get:
      operationId: listCampaigns
      summary: List campaigns
      description: Returns a list of campaigns in your workspace. You can filter by campaign type and status.
      tags:
      - Campaigns
      responses:
        '200':
          description: A list of campaigns.
          content:
            application/json:
              schema:
                type: object
                properties:
                  campaigns:
                    type: array
                    items:
                      $ref: '#/components/schemas/Campaign'
        '401':
          description: Unauthorized. Invalid App API key.
  /campaigns/{campaign_id}:
    get:
      operationId: getCampaign
      summary: Get a campaign
      description: Returns detailed information about a specific campaign including its actions, status, and metrics.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/CampaignId'
      responses:
        '200':
          description: Campaign details.
          content:
            application/json:
              schema:
                type: object
                properties:
                  campaign:
                    $ref: '#/components/schemas/Campaign'
        '401':
          description: Unauthorized. Invalid App API key.
        '404':
          description: Campaign not found.
  /campaigns/{campaign_id}/actions:
    get:
      operationId: listCampaignActions
      summary: List campaign actions
      description: Returns a list of actions (workflow steps) for a specific campaign.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/CampaignId'
      responses:
        '200':
          description: A list of campaign actions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  actions:
                    type: array
                    items:
                      $ref: '#/components/schemas/CampaignAction'
        '401':
          description: Unauthorized. Invalid App API key.
        '404':
          description: Campaign not found.
  /campaigns/{campaign_id}/metrics:
    get:
      operationId: getCampaignMetrics
      summary: Get campaign metrics
      description: Returns metrics for a specific campaign including message delivery statistics, open rates, and click rates.
      tags:
      - Campaigns
      parameters:
      - $ref: '#/components/parameters/CampaignId'
      - name: period
        in: query
        description: The time period for metrics aggregation.
        schema:
          type: string
          enum:
          - hours
          - days
          - weeks
          - months
      - name: steps
        in: query
        description: The number of time periods to return.
        schema:
          type: integer
      - name: type
        in: query
        description: The type of metric series to return.
        schema:
          type: string
      responses:
        '200':
          description: Campaign metrics.
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Unauthorized. Invalid App API key.
        '404':
          description: Campaign not found.
components:
  parameters:
    CampaignId:
      name: campaign_id
      in: path
      required: true
      description: The unique identifier for the campaign.
      schema:
        type: integer
  schemas:
    CampaignAction:
      type: object
      description: An action (workflow step) within a campaign.
      properties:
        id:
          type: integer
          description: The unique action identifier.
        campaign_id:
          type: integer
          description: The parent campaign identifier.
        type:
          type: string
          description: The action type (e.g., email, webhook, push).
        name:
          type: string
          description: The action name.
        sending:
          type: boolean
          description: Whether the action is currently sending.
        created:
          type: integer
          description: UNIX timestamp of when the action was created.
        updated:
          type: integer
          description: UNIX timestamp of when the action was last updated.
    Campaign:
      type: object
      description: A messaging campaign in Customer.io.
      properties:
        id:
          type: integer
          description: The unique campaign identifier.
        name:
          type: string
          description: The campaign name.
        type:
          type: string
          description: The campaign type.
        active:
          type: boolean
          description: Whether the campaign is currently active.
        created:
          type: integer
          description: UNIX timestamp of when the campaign was created.
        updated:
          type: integer
          description: UNIX timestamp of when the campaign was last updated.
        tags:
          type: array
          items:
            type: string
          description: Tags associated with the campaign.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication using your App API key. Pass the key in the Authorization header as Bearer {app_api_key}.
externalDocs:
  description: App API Documentation
  url: https://docs.customer.io/integrations/api/app/