Customer.io · Authentication Profile

Customer Io Authentication

Authentication

Customer.io secures its APIs with http and oauth2 across 5 declared security schemes, as derived from its OpenAPI definitions.

Behavioral DataBroadcastsCampaignsCDPCustomer DataCustomer Data PlatformData IngestionEmailEvent TrackingMarketing AutomationMessagingPush NotificationsSegmentsSMSTransactional Email
Methods: http, oauth2 Schemes: 5 OAuth flows: API key in:

Security Schemes

Bearer-Auth http
scheme: bearer
ServiceAccount-Auth http
scheme: bearer
Tracking-API-Key http
scheme: basic
Basic-Auth http
scheme: basic
MCP-OAuth oauth2

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://docs.customer.io/integrations/api/customerio-apis.md,
  https://docs.customer.io/ai/cli/get-started.md,
  https://docs.customer.io/ai/mcp/get-started.md and the securitySchemes of the
  published specs at https://docs.customer.io/files/journeys-app.json,
  /files/journeys-track.json and /files/pipelines.json
docs: https://docs.customer.io/accounts/settings/managing-credentials/
provider: Customer.io
providerId: customer-io
summary:
  types:
  - http
  - oauth2
  scheme_count: 5
  note: >-
    Customer.io runs four different credentials across four surfaces, and they
    are not interchangeable. The App API takes a bearer App API Key; the Track
    API takes basic auth of site_id:api_key; the Pipelines/CDP API takes basic
    auth of the CDP API key as the username with a blank password; the CLI takes
    a service account token (sa_live_); and the MCP server uses OAuth 2.1 tied
    to the user's own login. Choosing the wrong one is the most common 401 on
    this platform.
  credentials_page: https://fly.customer.io/settings/api_credentials
schemes:
- name: Bearer-Auth
  type: http
  scheme: bearer
  api: App API
  base_urls:
  - https://api.customer.io
  - https://api-eu.customer.io
  credential: App API Key
  description: >-
    Bearer authorization with an App API Key generated in account settings. Keys
    carry a defined scope set in the UI and are workspace-scoped.
  create_at: https://fly.customer.io/settings/api_credentials?keyType=app
  sources:
  - openapi/_original/customer-io-app-api-openapi.json
- name: ServiceAccount-Auth
  type: http
  scheme: bearer
  bearerFormat: sa_live_
  api: App API (transactional send endpoints) and Customer.io CLI
  applies_to:
  - /v1/send/email
  - /v1/send/push
  - /v1/send/sms
  - /v1/send/in_app
  - /v1/send/inbox_message
  credential: Service account token
  required_header: X-Workspace-Id
  description: >-
    A service-account bearer token prefixed sa_live_. It works across
    workspaces, so the target workspace must be passed as the X-Workspace-Id
    header on every request. Customer.io's own guidance is that these are for
    testing and one-off sends — for example driving the CLI from a coding agent
    to verify a transactional template renders — and that production
    integrations should use a workspace-scoped App API Key instead, because it
    is easier to rotate and has a smaller blast radius.
  token_types:
  - User service account (inherits a person's role; can be made permanently
    read-only)
  - System service account (assigned a role; applies to every workspace)
  create_at: https://fly.customer.io/settings/api_credentials?keyType=service_accounts
  sources:
  - openapi/_original/customer-io-app-api-openapi.json
  - https://docs.customer.io/ai/cli/get-started.md
- name: Tracking-API-Key
  type: http
  scheme: basic
  api: Track API
  base_urls:
  - https://track.customer.io
  - https://track-eu.customer.io
  credential: Site ID + API key
  description: >-
    HTTP basic authentication. The username is the workspace Site ID and the
    password is the Track API key, base64-encoded as site_id:api_key.
  create_at: https://fly.customer.io/settings/api_credentials
  sources:
  - openapi/_original/customer-io-track-api-openapi.json
- name: Basic-Auth
  type: http
  scheme: basic
  api: Pipelines API (CDP)
  base_urls:
  - https://cdp.customer.io/v1
  - https://cdp-eu.customer.io/v1
  credential: CDP API key
  description: >-
    HTTP basic authentication where the CDP API key is the username and the
    password is left blank, base64-encoded as API_key: — the Segment-spec
    convention.
  sources:
  - openapi/_original/customer-io-pipelines-api-openapi.json
- name: MCP-OAuth
  type: oauth2
  flow: authorization_code
  api: Customer.io MCP
  base_urls:
  - https://mcp.customer.io/mcp
  - https://mcp-eu.customer.io/mcp
  description: >-
    OAuth 2.1 authorization code with PKCE. Dynamic client registration is
    supported (RFC 7591), and the metadata is published anonymously at
    /.well-known/oauth-authorization-server and
    /.well-known/oauth-protected-resource. Each user authorizes with their own
    Customer.io login, so a connection can never exceed that person's
    permissions.
  authorization_endpoint: https://mcp.customer.io/oauth2/authorize
  token_endpoint: https://mcp.customer.io/oauth2/token
  registration_endpoint: https://mcp.customer.io/oauth2/register
  revocation_endpoint: https://mcp.customer.io/oauth2/revoke
  code_challenge_methods:
  - S256
  - plain
  scopes: scopes/customer-io-scopes.yml
  sources:
  - well-known/customer-io-oauth-authorization-server.json
  - well-known/customer-io-oauth-protected-resource.json
regions:
  note: >-
    Every surface is regionalised. A US credential does not work against an EU
    host and vice versa. The Track API exposes GET /api/v1/accounts/region
    (operationId getRegion) so a client can discover which region a workspace
    lives in.
  discovery_operation: getRegion
webhook_verification:
  header_timestamp: x-cio-timestamp
  header_signature: x-cio-signature
  algorithm: HMAC-SHA256
  description: >-
    Reporting webhooks are signed. x-cio-signature is an HMAC-SHA256 of the
    request body keyed with the webhook signing key, and x-cio-timestamp carries
    the send time so replays can be rejected.
  source: openapi/_original/customer-io-reporting-webhooks-openapi.json
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com