Customer.io Batch API

Send multiple API calls in a single request for improved performance.

OpenAPI Specification

customer-io-batch-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Customer.io App Activities Batch 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: Batch
  description: Send multiple API calls in a single request for improved performance.
paths:
  /batch:
    post:
      operationId: batchCalls
      summary: Send a batch of API calls
      description: Sends multiple API calls in a single HTTP request. Each item in the batch array is a standard identify, track, page, screen, group, or alias call. The batch request must be smaller than 1MB.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchRequest'
      responses:
        '200':
          description: Batch processed successfully.
        '400':
          description: Bad request. Invalid payload or exceeds size limit.
        '401':
          description: Unauthorized. Invalid CDP API key.
  ../v2/batch:
    post:
      operationId: trackBatch
      summary: Batch entity operations
      description: Sends multiple entity operations in a single request. Each item in the batch array represents an individual entity operation for a person, object, or delivery. You can mix types in a single request. The request must be smaller than 500KB.
      tags:
      - Batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchRequest_2'
      responses:
        '200':
          description: Batch processed successfully.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request. Invalid payload structure or exceeds size limit.
        '401':
          description: Unauthorized. Invalid Site ID or API key.
components:
  schemas:
    BatchRequest_2:
      type: object
      required:
      - batch
      description: A batch of entity operations. The request must be smaller than 500KB.
      properties:
        batch:
          type: array
          description: An array of entity operations. Each item represents an individual operation for a person, object, or delivery.
          items:
            $ref: '#/components/schemas/EntityRequest'
    EntityRequest:
      type: object
      required:
      - type
      - action
      - identifiers
      description: A v2 entity operation request. The type and action determine what operation is performed.
      properties:
        type:
          type: string
          description: The entity type.
          enum:
          - person
          - object
          - delivery
        action:
          type: string
          description: The action to perform on the entity.
          enum:
          - identify
          - delete
          - suppress
          - unsuppress
          - event
          - add_device
          - delete_device
          - delete_relationship
          - merge
        identifiers:
          type: object
          description: The identifiers used to locate or create the entity. For people this includes id, email, or cio_id. For objects this includes object_type_id and object_id.
          additionalProperties: true
        attributes:
          type: object
          description: Attributes to set on the entity. Used with identify actions.
          additionalProperties: true
        name:
          type: string
          description: The event name. Required when action is event.
        data:
          type: object
          description: Custom data for events.
          additionalProperties: true
    BatchRequest:
      type: object
      required:
      - batch
      description: A batch of API calls. The request must be smaller than 1MB. Individual calls in the batch are limited to 64KB each.
      properties:
        batch:
          type: array
          description: An array of API calls. Each item should include a type field indicating the call type (identify, track, page, screen, group, or alias) along with the standard fields for that call type.
          items:
            type: object
            required:
            - type
            properties:
              type:
                type: string
                description: The type of API call.
                enum:
                - identify
                - track
                - page
                - screen
                - group
                - alias
            additionalProperties: true
  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/