openapi: 3.1.0 info: title: Customer.io App Activities Collections 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: Collections description: Manage collections of data used in message personalization. paths: /api/collections: get: operationId: listCollections summary: List collections description: Returns a list of data collections in your workspace. Collections are used for personalizing messages with external data. tags: - Collections responses: '200': description: A list of collections. content: application/json: schema: type: object properties: collections: type: array items: $ref: '#/components/schemas/Collection' '401': description: Unauthorized. Invalid App API key. post: operationId: createCollection summary: Create a collection description: Creates a new data collection in your workspace. tags: - Collections requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCollectionRequest' responses: '200': description: Collection created successfully. content: application/json: schema: $ref: '#/components/schemas/Collection' '400': description: Bad request. Invalid collection data. '401': description: Unauthorized. Invalid App API key. /api/collections/{collection_id}: get: operationId: getCollection summary: Get a collection description: Returns detailed information about a specific collection. tags: - Collections parameters: - $ref: '#/components/parameters/CollectionId' responses: '200': description: Collection details. content: application/json: schema: $ref: '#/components/schemas/Collection' '401': description: Unauthorized. Invalid App API key. '404': description: Collection not found. put: operationId: updateCollection summary: Update a collection description: Updates the contents or configuration of a data collection. tags: - Collections parameters: - $ref: '#/components/parameters/CollectionId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCollectionRequest' responses: '200': description: Collection updated successfully. content: application/json: schema: $ref: '#/components/schemas/Collection' '400': description: Bad request. Invalid collection data. '401': description: Unauthorized. Invalid App API key. '404': description: Collection not found. delete: operationId: deleteCollection summary: Delete a collection description: Deletes a data collection from your workspace. tags: - Collections parameters: - $ref: '#/components/parameters/CollectionId' responses: '200': description: Collection deleted successfully. '401': description: Unauthorized. Invalid App API key. '404': description: Collection not found. components: parameters: CollectionId: name: collection_id in: path required: true description: The unique identifier for the collection. schema: type: integer schemas: CreateCollectionRequest: type: object required: - name - data description: A request to create or update a data collection. properties: name: type: string description: The collection name. data: type: array description: The collection data as an array of objects. items: type: object url: type: string format: uri description: A URL to fetch collection data from. Used for URL-backed collections. Collection: type: object description: A data collection used in message personalization. properties: id: type: integer description: The unique collection identifier. name: type: string description: The collection name. data_type: type: string description: The type of data in the collection. created_at: type: integer description: UNIX timestamp of when the collection was created. updated_at: type: integer description: UNIX timestamp of when the collection was last updated. 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/