Journeys Track API
Overview
Our Track API provides ways to send real-time customer data to your Customer.io workspace including customer identification and event tracking.
Use our Postman collection
We've generated a Postman collection to help you get started with our APIs.
If you fork this collection, you might want to disable the Watch original collection option. We automatically update our Postman collection whenever we release changes to our documentation, even if we don't change our APIs—which happens daily! Rather than being flooded with Postman notifications, you can check out our Release Notes for updates to our APIs.
NOTE: Postman endpoints default to our US APIs. If you're in our European (EU) region, you'll need to add -eu to the server variables (track_api_url and app_api_url).
Server addresses: US and EU
Customer.io hosts services in the United States (US) and European Union. Select the appropriate server address for your region.
| Region | Server Address |
|---|---|
| US | https://track.customer.io |
| EU | https://track-eu.customer.io |
Note that if your account is in the EU region and you send traffic to our US endpoints, we'll redirect it accordingly but this traffic still passes through US servers and data could be logged in the US.
Authentication
You can find all of your API authentication information in your Account Settings. Our Tracking API uses HTTP basic authorization. The App API uses bearer authorization, and you can generate tokens supporting different scopes. Each operation in this document references the authorization header it requires.
v1 vs v2 APIs
Most of the time, when we talk about The Track API, we're talking about the v1 API because the v2 API isn't used in any of our libraries and rarely used in libraries built by third parties; it's much more common that you'd encounter the v1 API.
If you're integrating with Customer.io using one of our libraries, or a third party customer data platform (CDP) like Segment or Rudderstack, you'll be using the v1 API.
The v2 API is newer and supports two important features that the v1 API doesn't natively support: objects and batching. But, if you're integrating directly with our API, we suggest you use the Pipelines API. The Pipelines API supports both objects, batching, and all of our newest integrations and libraries are based on it.
Rate Limits
The Track API has a rate limit of 1000 requests per second for both active data integrations and historical backfill scripts. This limit applies to both our v1 and v2 APIs.
While this rate is not strictly enforced, consistently exceeding it may lead to throttling or dropped data, especially during periods of high system load. If we detect a sustained high volume that could impact other customers, we may contact you to help adjust your integration or, in rare cases, temporarily block requests.
Rate limits are subject to change. We may adjust these thresholds to ensure stable performance for all customers.
Below are the payload size limits for the Track API. If any of these limits are too restrictive for your needs, contact support to let us know your situation as we may be able to accommodate special circumstances.
Customer limits
These limits apply to people and their attributes, often referred to as "customers" in our APIs.
| Data Type | Limit | Description |
|---|---|---|
| ID | 150 bytes | Max length of a person's ID value |
| Attribute Name | 150 bytes | Max length of each attribute name |
| Attribute Value | 1000 bytes | Max length of attribute values |
| Unique attributes | 300 | Max number of attributes allowed per person or Identify call |
Object and relationship limits
Objects (groups) and relationships between people and objects can have their own attributes. Their limits are similar to people (customers).
| Data Type | Limit | Description |
|---|---|---|
| Object ID | 150 bytes | Max length of a object's ID |
| Attribute Names | 150 bytes | Max length of each attribute name |
| Attribute Values | 1000 bytes | Max length of attribute values |
| Unique attributes | 300 | Max number of attributes allowed per object or relationship |
| Total attribute size | 100 Kilobytes | Max size of all attributes associated with an object or relationship |
Track API Event limits
These limits apply to events that you'll send with the /v1/track call.
| Data Type | Limit | Description |
|---|---|---|
| Event Name | 100 bytes | Max length of each event name |
| Event Data | 100000 bytes | Max length of each event data |
v2 API Limits
The v2 API has two endpoints, both of which have limits on the total size of requests.
-
/entityis limited to requests 32kb or smaller. -
/batchis limited to requests 500kb or smaller.Each of the requests within a batch must also be 32kb or smaller.