For Agents
Ingest behavioural data into Customer.io: identify people, track events, manage devices, submit forms, suppress profiles, and send batched or v2 entity requests.
Use for: Identify a new signup with their email, name, and plan tier, Track an 'order_completed' event for an identified customer, Register a push device token for a mobile customer, Suppress a customer who has unsubscribed from all messaging
Not supported: Does not handle campaign creation, sending transactional email, or pulling reporting metrics — use for ingesting people, events, devices, and batched data only.
Jentic publishes the only available OpenAPI specification for Customer.io Track API, keeping it validated and agent-ready. The Track API is the data ingestion surface for Customer.io, used to add and update people, record events, manage devices, suppress profiles, submit forms, merge duplicates, and send batched requests. It also includes account region discovery and a v2 entity endpoint for unified ingestion. Authentication uses HTTP Basic with a site ID and tracking API key.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Customer.io Track API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Customer.io Track API.
Add or update people in Customer.io with traits and timestamps via PUT /api/v1/customers/{identifier}
Track named customer events or anonymous events to drive campaign triggers
Register and remove customer devices to enable push delivery
Suppress, unsuppress, or delete people for compliance and lifecycle hygiene
Submit forms, add or remove people from manual segments, and merge duplicate profiles
Send a batched payload of mixed identify, track, and device operations through /api/v2/batch
Patterns agents use Customer.io Track API for, with concrete tasks.
★ Server-Side Event Ingestion
Send identification and event data from a server-side application into Customer.io to drive campaigns. Use PUT /api/v1/customers/{identifier} for upsert, POST /api/v1/customers/{identifier}/events for attributed events, and POST /api/v1/events for anonymous traffic. Suitable for backend services that own the source of truth for user behaviour.
Call PUT /api/v1/customers/{identifier} with traits, then POST /api/v1/customers/{identifier}/events with name='checkout_completed' and properties for the order
Mobile Device Registration for Push
Register and rotate device tokens so Customer.io campaigns can deliver push notifications to mobile customers. Use PUT /api/v1/customers/{identifier}/devices to add or update a token and DELETE /api/v1/customers/{identifier}/devices/{device_id} to revoke it on logout or app uninstall.
Call PUT /api/v1/customers/{identifier}/devices with the FCM or APNs token after a user signs in on a new device
Batched Backfill or Sync
Backfill historical events or sync records from another system using POST /api/v1/segments/{segment_id}/add_customers for segment population, /api/v1/merge_customers for de-duplication, and POST /api/v2/batch for a high-throughput batched payload of mixed operations. Reduces request volume during one-off migrations and nightly syncs.
Construct a /api/v2/batch payload with 200 mixed identify and track requests and POST it in a single call during a nightly sync window
Compliance and Suppression Workflow
Honour unsubscribe, deletion, and data subject requests by suppressing or deleting profiles via the Track API. POST /api/v1/customers/{identifier}/suppress halts messaging, POST /api/v1/customers/{identifier}/unsuppress reverses it, and DELETE /api/v1/customers/{identifier} removes the profile.
Call POST /api/v1/customers/{identifier}/suppress when a customer submits an unsubscribe and DELETE /api/v1/customers/{identifier} on a verified deletion request
AI Agent Track Workflow via Jentic
An AI agent automating ingestion of customer signals uses Jentic to send identify and event payloads directly. The agent searches for 'track customer event', loads the operation, supplies the identifier and event name, and posts the event without bespoke integration glue.
Use Jentic to search 'track customer event' and execute /api/v1/customers/{identifier}/events for each row of an enrichment job's output
16 endpoints — jentic publishes the only available openapi specification for customer.
METHOD
PATH
DESCRIPTION
/api/v1/customers/{identifier}
Add or update a customer
/api/v1/customers/{identifier}/events
Track a customer event
/api/v1/events
Track an anonymous event
/api/v1/customers/{identifier}/devices
Register a customer device
/api/v1/customers/{identifier}/suppress
Suppress a customer profile
/api/v1/merge_customers
Merge duplicate customer profiles
/api/v2/batch
Send a batched payload
/api/v1/accounts/region
Find the workspace region
/api/v1/customers/{identifier}
Add or update a customer
/api/v1/customers/{identifier}/events
Track a customer event
/api/v1/events
Track an anonymous event
/api/v1/customers/{identifier}/devices
Register a customer device
/api/v1/customers/{identifier}/suppress
Suppress a customer profile
/api/v1/merge_customers
Merge duplicate customer profiles
/api/v2/batch
Send a batched payload
/api/v1/accounts/region
Find the workspace region
Three things that make agents converge on Jentic-routed access.
Credential isolation
Customer.io site ID and tracking API key pairs are stored encrypted in the Jentic vault and combined into the Basic auth header at call time. The agent never sees the raw key.
Intent-based discovery
Agents search by intent (e.g. 'identify customer' or 'track event') and Jentic returns the matching Track API operation with its parameter schema.
Time to first call
Direct Track API integration: about 1 day for auth, event schema design, and batch handling. Through Jentic: under 1 hour — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Customer.io Track API through Jentic.
Why is there no official OpenAPI spec for Customer.io Track API?
Customer.io does not publish a complete OpenAPI specification for the Track surface. Jentic generates and maintains this spec so that AI agents and developers can call Customer.io Track API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Customer.io Track API use?
The Track API uses HTTP Basic with a workspace site ID as the username and a tracking API key as the password. Through Jentic both values are held in the encrypted vault and injected into the Authorization header at call time.
Can I send batched events to the Customer.io Track API?
Yes. POST /api/v2/batch accepts an array of mixed identify, track, and device operations in a single request, useful for backfills and nightly syncs.
What are the rate limits for the Customer.io Track API?
Track endpoints accept high event throughput; specific limits depend on the Customer.io plan and are not encoded in the spec. Use /api/v2/batch for bulk loads to stay within per-request limits.
How do I find which region my Customer.io workspace is in through Jentic?
Run pip install jentic, search for 'find account region', load GET /api/v1/accounts/region, and execute it. Jentic returns the region (US or EU) so you can route subsequent calls to the right host.
How do I suppress a customer for GDPR compliance?
Call POST /api/v1/customers/{identifier}/suppress to stop messaging while keeping the profile. For full deletion call DELETE /api/v1/customers/{identifier}, which removes the profile and stops all subsequent processing.
GET STARTED