Customer.io website screenshot

Customer.io

Customer.io is a customer engagement platform that combines a customer data platform, marketing automation, and messaging delivery to send behavior-triggered email, push, SMS, and in-app messages. Its API surface includes the Track API for sending behavioral data and customer profile updates, the App API for managing workspace resources and sending transactional and broadcast messages, the Pipelines API which is a Segment-spec data ingestion interface, and outbound reporting webhooks that deliver message lifecycle events.

Customer.io publishes 3 APIs on the APIs.io network: Track API, App API, and Pipelines API. Tagged areas include Behavioral Data, Broadcasts, Campaigns, CDP, and Customer Data.

The Customer.io catalog on APIs.io includes 1 event-driven AsyncAPI specification, 1 JSON-LD context, and 3 Spectral governance rulesets.

Customer.io’s developer surface includes authentication, documentation, and 16 more developer resources.

51.8/100 developing ▬ flat Agent 54/100 agent ready Full breakdown ↓
scored 2026-07-21 · rubric v0.4
3 APIs 0 Features
Behavioral DataBroadcastsCampaignsCDPCustomer DataCustomer Data PlatformData IngestionEmailEvent TrackingMarketing AutomationMessagingPush NotificationsSegmentsSMSTransactional Email

API Rating

API Evangelist API Evangelist Rating How this is scored →
scored 2026-07-21 · rubric v0.4
Composite quality — 51.8/100 · developing
Contract Quality 19.5 / 25
Developer Ergonomics 3.9 / 20
Commercial Clarity 9.5 / 20
Operational Transparency 4.8 / 13
Governance 7.9 / 12
Discoverability 6.3 / 10
Agent readiness — 54/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 6 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/customer-io: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs

Customer.io Track API

The Customer.io Track API allows developers to send behavioral data and customer profile information into Customer.io. It provides endpoints for identifying customers, tracking ...

Customer.io App API

The Customer.io App API enables developers to manage workspace resources and send messages programmatically. It provides endpoints for sending transactional messages, triggering...

Customer.io Pipelines API

The Customer.io Pipelines API is the newer data ingestion interface for getting customer and event data into Customer.io. It follows the Segment spec and supports identify, trac...

Collections

GraphQL

Customer.io GraphQL Schema

This conceptual GraphQL schema represents the Customer.io messaging and marketing automation platform. Customer.io provides APIs for tracking behavioral data, managing customer ...

GRAPHQL

Pricing Plans

Rate Limits

Customer Io Rate Limits

4 limits

RATE LIMITS

FinOps

Event Specifications

Customer.io Reporting Webhooks

Customer.io Reporting Webhooks send real-time message activity events as JSON payloads via HTTP POST to a configured endpoint. These events include message sends, deliveries, op...

ASYNCAPI

Semantic Vocabularies

Customer Io Context

0 classes · 11 properties

JSON-LD

API Governance Rules

Customer.io API Rules

8 rules · 1 errors 7 warnings

SPECTRAL

Customer.io API Rules

6 rules · 5 warnings 1 info

SPECTRAL

Customer.io API Rules

6 rules · 3 errors 3 warnings

SPECTRAL

Resources

Documentation 5

Reference material describing how the API behaves

Agent Surfaces 2

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 3

Pagination, idempotency, versioning, errors, and events

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 4

Authentication, authorization, and security posture

Company 2

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Customer.io Track API
  version: 1.0.0
request:
  auth:
    type: basic
    username: '{{username}}'
    password: '{{password}}'
items:
- info:
    name: Customers
    type: folder
  items:
  - info:
      name: Identify a customer
      type: http
    http:
      method: PUT
      url: https://track.customer.io/api/v1/customers/:identifier
      params:
      - name: identifier
        value: ''
        type: path
        description: The unique identifier for the customer. This can be an id or email address depending on your workspace
          identity configuration.
      body:
        type: json
        data: '{}'
    docs: Creates or updates a customer profile in Customer.io. If the customer does not exist, a new profile is created.
      If the customer already exists, the profile is updated with the provided attributes. The identifier can be an id or
      email address depending on your workspace configuration.
  - info:
      name: Delete a customer
      type: http
    http:
      method: DELETE
      url: https://track.customer.io/api/v1/customers/:identifier
      params:
      - name: identifier
        value: ''
        type: path
        description: The unique identifier for the customer. This can be an id or email address depending on your workspace
          identity configuration.
    docs: Deletes a customer profile from Customer.io. This removes the person and their associated data from your workspace.
      This action cannot be undone.
  - info:
      name: Suppress a customer
      type: http
    http:
      method: POST
      url: https://track.customer.io/api/v1/customers/:identifier/suppress
      params:
      - name: identifier
        value: ''
        type: path
        description: The unique identifier for the customer. This can be an id or email address depending on your workspace
          identity configuration.
    docs: Suppresses a customer profile, preventing Customer.io from sending messages to the person. The customer is deleted
      and their identifier is added to a suppression list so they cannot be re-added.
  - info:
      name: Unsuppress a customer
      type: http
    http:
      method: POST
      url: https://track.customer.io/api/v1/customers/:identifier/unsuppress
      params:
      - name: identifier
        value: ''
        type: path
        description: The unique identifier for the customer. This can be an id or email address depending on your workspace
          identity configuration.
    docs: Removes a customer from the suppression list, allowing them to be re-added to your workspace and receive messages
      again.
- info:
    name: Events
    type: folder
  items:
  - info:
      name: Track a customer event
      type: http
    http:
      method: POST
      url: https://track.customer.io/api/v1/customers/:identifier/events
      params:
      - name: identifier
        value: ''
        type: path
        description: The unique identifier for the customer. This can be an id or email address depending on your workspace
          identity configuration.
      body:
        type: json
        data: '{}'
    docs: Records an event associated with a specific customer. Events are used to trigger campaigns, track user behavior,
      and segment your audience. The event name is required and custom data can be passed in the data object.
  - info:
      name: Track an anonymous event
      type: http
    http:
      method: POST
      url: https://track.customer.io/api/v1/events
      body:
        type: json
        data: '{}'
    docs: Records an event that is not associated with a known customer profile. Anonymous events can be merged with a customer
      profile later when the person is identified, if event merging is enabled in your workspace. Anonymous events recorded
      within the last 30 days can be associated with a person when their anonymous_id matches.
- info:
    name: Devices
    type: folder
  items:
  - info:
      name: Add a customer device
      type: http
    http:
      method: PUT
      url: https://track.customer.io/api/v1/customers/:identifier/devices
      params:
      - name: identifier
        value: ''
        type: path
        description: The unique identifier for the customer. This can be an id or email address depending on your workspace
          identity configuration.
      body:
        type: json
        data: '{}'
    docs: Adds or updates a device associated with a customer for push notifications. The device token and platform are required.
      This endpoint is used to register mobile devices so Customer.io can send push notifications to the customer.
  - info:
      name: Delete a customer device
      type: http
    http:
      method: DELETE
      url: https://track.customer.io/api/v1/customers/:identifier/devices/:device_id
      params:
      - name: identifier
        value: ''
        type: path
        description: The unique identifier for the customer. This can be an id or email address depending on your workspace
          identity configuration.
      - name: device_id
        value: ''
        type: path
        description: The unique identifier for the device to remove.
    docs: Removes a device from a customer profile. The customer will no longer receive push notifications on this device.
- info:
    name: Merge
    type: folder
  items:
  - info:
      name: Merge customer profiles
      type: http
    http:
      method: POST
      url: https://track.customer.io/api/v1/merge
      body:
        type: json
        data: '{}'
    docs: Merges two customer profiles into one. The primary profile is kept and the secondary profile is deleted. Events,
      attributes, and devices from the secondary profile are merged into the primary profile.
- info:
    name: Entity
    type: folder
  items:
  - info:
      name: Track a single entity
      type: http
    http:
      method: POST
      url: https://track.customer.io/api/v1../v2/entity
      body:
        type: json
        data: '{}'
    docs: The v2 entity endpoint provides a unified way to create, update, and track events for people and objects. The request
      body specifies the entity type, action, identifiers, and attributes or event data. This endpoint determines what to
      do based on the type and action in the payload.
- info:
    name: Batch
    type: folder
  items:
  - info:
      name: Batch entity operations
      type: http
    http:
      method: POST
      url: https://track.customer.io/api/v1../v2/batch
      body:
        type: json
        data: '{}'
    docs: 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.
bundled: true