For Agents
Identify and track customers, send transactional email, manage devices, list campaigns and segments, and export delivery and customer data through Customer.io.
Use for: Identify a customer with their email and traits after signup, Track a 'subscription_renewed' event on a customer, Send a transactional password reset email through Customer.io, List all active campaigns and their performance metrics
Not supported: Does not handle SMS sending, push notification delivery payloads, or in-app messages — use for customer identification, event tracking, transactional email, and campaign metrics only.
Jentic publishes the only available OpenAPI specification for Customer.io API, keeping it validated and agent-ready. Customer.io is a marketing automation platform that combines behavioural messaging, segmentation, and transactional email into a single workflow tool. This API surface covers customer identification and lifecycle, event tracking, device management, segment and campaign listing, newsletter metrics, customer and delivery exports, and transactional email sending. Authentication uses HTTP Basic with a site ID and API key pair.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Customer.io 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 API.
Identify and update customer profiles by customer_id with traits and timestamps
Track named events for an identified customer or anonymously to drive campaign triggers
Send transactional email through the /send/email endpoint with template and recipient data
List campaigns and retrieve campaign metrics, actions, and newsletter performance
Suppress, unsuppress, or delete customer profiles for compliance and lifecycle hygiene
Export customer and delivery datasets for downstream analytics and audit
Patterns agents use Customer.io API for, with concrete tasks.
★ Behavioural Email Automation
Drive lifecycle email campaigns from product behaviour by identifying customers and tracking events that match Customer.io campaign triggers. Use PUT /customers/{customer_id} to maintain the profile and POST /customers/{customer_id}/events to record actions like 'cart_abandoned' or 'trial_expired'. Integration takes a day or two compared with hand-rolling a behavioural messaging stack.
Call PUT /customers/{customer_id} with the user's email and signup_date, then POST /customers/{customer_id}/events with name='trial_started' to enrol them in the trial nurture campaign
Transactional Email Sending
Send transactional emails such as receipts, password resets, and confirmations through Customer.io's transactional API. POST /send/email accepts a transactional message ID, recipient, and template variables, so product teams can use the same provider for both lifecycle and transactional traffic.
Call POST /send/email with transactional_message_id for the password reset template, the user email, and a reset link variable
Campaign Performance Reporting
Pull campaign and newsletter metrics into a reporting dashboard or warehouse. GET /campaigns lists active campaigns, GET /campaigns/{campaign_id}/metrics returns send, open, click, and conversion counts, and GET /newsletters/{newsletter_id}/metrics covers one-off sends. Suitable for marketing analysts who want Customer.io performance alongside other channel metrics.
Call GET /campaigns to list campaign IDs, then GET /campaigns/{campaign_id}/metrics for each to populate a weekly performance dashboard
Customer Data Export
Export customer and delivery datasets for warehouse load, audit, or migration. POST /exports/customers and POST /exports/deliveries kick off async export jobs that return downloadable archives. Used by data teams running daily syncs or by ops teams preparing GDPR data subject access responses.
Call POST /exports/customers with the desired filter to start an export job, then poll GET /activities to confirm completion before downloading
AI Agent Messaging via Jentic
An AI agent automating customer communications uses Jentic to call Customer.io directly without bespoke integration code. The agent searches for 'send transactional email' or 'track customer event', loads the schema, supplies the parameters, and triggers the action.
Use Jentic to search 'send transactional email' and execute /send/email with the password reset template after a user requests a reset
21 endpoints — jentic publishes the only available openapi specification for customer.
METHOD
PATH
DESCRIPTION
/customers/{customer_id}
Identify or update a customer
/customers/{customer_id}/events
Track a customer event
/send/email
Send a transactional email
/campaigns
List campaigns
/campaigns/{campaign_id}/metrics
Get campaign metrics
/exports/customers
Start a customer export job
/customers/{customer_id}/suppress
Suppress a customer
/segments
List segments
/customers/{customer_id}
Identify or update a customer
/customers/{customer_id}/events
Track a customer event
/send/email
Send a transactional email
/campaigns
List campaigns
/campaigns/{campaign_id}/metrics
Get campaign metrics
/exports/customers
Start a customer export job
/customers/{customer_id}/suppress
Suppress a customer
/segments
List segments
Three things that make agents converge on Jentic-routed access.
Credential isolation
Customer.io site ID and 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. 'send transactional email' or 'track customer event') and Jentic returns the matching Customer.io operation with its parameter schema.
Time to first call
Direct Customer.io integration: 1-2 days for auth, event schema design, and export polling. Through Jentic: under 1 hour — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Customer.io API through Jentic.
Why is there no official OpenAPI spec for Customer.io API?
Customer.io does not publish a single canonical OpenAPI specification covering this surface. Jentic generates and maintains this spec so that AI agents and developers can call Customer.io 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 API use?
The API uses HTTP Basic authentication with a workspace site ID as the username and an 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 transactional email with the Customer.io API?
Yes. Call POST /send/email with a transactional_message_id, the recipient email, and any template variables. The endpoint is suitable for receipts, password resets, and one-off notifications.
What are the rate limits for the Customer.io API?
Rate limits depend on the Customer.io plan and the specific endpoint family; tracking endpoints generally accept higher throughput than App API endpoints. The spec does not encode exact numbers; check your workspace settings for current limits.
How do I track a customer event through Jentic?
Run pip install jentic, search for 'track customer event', load POST /customers/{customer_id}/events, and execute it with the event name and any properties. Jentic posts the event so it can drive campaign triggers.
How do I export delivery data from Customer.io?
Call POST /exports/deliveries to start an async export job. The response includes a job ID; poll GET /activities or use the deliveries export status to confirm completion before downloading the resulting archive.
GET STARTED