Appearance
Customer.io Track API
Identify people, track events and attributes, manage push notification devices, suppress/unsuppress contacts, and batch multiple operations via the Customer.io Track API.
| Detail | Value |
|---|---|
| Category | Analytics |
| Base URL | https://track.customer.io/api/v1 |
| Authentication | Bearer Token |
| Endpoints | 10 |
| Connector key | customer-io-track-api |
Using Customer.io Track API in a workflow
- Go to Connections and click New Connection.
- Pick Customer.io Track API from the marketplace.
- Enter your credentials (see Authentication above for what's expected).
- In a workflow, drop an API Call node and select this connection.
- Pick the operation you need from the Operation dropdown — the full list is below.
Available endpoints
| Endpoint | Summary |
|---|---|
PUT /customers/{id} | Create or update a person |
DELETE /customers/{id} | Delete a person |
POST /customers/{id}/events | Track an event for a person |
POST /events | Track an anonymous event |
PUT /customers/{id}/devices/{device_id} | Create or update a device |
DELETE /customers/{id}/devices/{device_id} | Delete a device |
POST /customers/{id}/suppress | Suppress a person |
POST /customers/{id}/unsuppress | Unsuppress a person |
POST /batch | Batch multiple operations |
POST /merge_customers | Merge two people |
Each endpoint is documented in full below. Use the outline on the right to jump to one.
PUT /customers/{id}
Create or update a person
| Detail | Value |
|---|---|
| Operation ID | customers.identify |
| Method | PUT |
| Path | /customers/{id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
id | path | string | Yes |
Request Body
| Field | Type |
|---|---|
email | string |
created_at | integer |
anonymous_id | string |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.identify. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
DELETE /customers/{id}
Delete a person
| Detail | Value |
|---|---|
| Operation ID | customers.delete |
| Method | DELETE |
| Path | /customers/{id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.delete. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
POST /customers/{id}/events
Track an event for a person
| Detail | Value |
|---|---|
| Operation ID | customers.trackEvent |
| Method | POST |
| Path | /customers/{id}/events |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
id | path | string | Yes |
Request Body
| Field | Type |
|---|---|
name | string |
type | string |
timestamp | integer |
data | object |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.trackEvent. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
POST /events
Track an anonymous event
| Detail | Value |
|---|---|
| Operation ID | events.trackAnonymous |
| Method | POST |
| Path | /events |
Parameters
No parameters.
Request Body
| Field | Type |
|---|---|
name | string |
anonymous_id | string |
data | object |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
events.trackAnonymous. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
PUT /customers/{id}/devices/{device_id}
Create or update a device
| Detail | Value |
|---|---|
| Operation ID | customers.upsertDevice |
| Method | PUT |
| Path | /customers/{id}/devices/{device_id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
id | path | string | Yes |
device_id | path | string | Yes |
Request Body
| Field | Type |
|---|---|
device | object |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.upsertDevice. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
DELETE /customers/{id}/devices/{device_id}
Delete a device
| Detail | Value |
|---|---|
| Operation ID | customers.deleteDevice |
| Method | DELETE |
| Path | /customers/{id}/devices/{device_id} |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
id | path | string | Yes |
device_id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.deleteDevice. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
POST /customers/{id}/suppress
Suppress a person
| Detail | Value |
|---|---|
| Operation ID | customers.suppress |
| Method | POST |
| Path | /customers/{id}/suppress |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.suppress. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
POST /customers/{id}/unsuppress
Unsuppress a person
| Detail | Value |
|---|---|
| Operation ID | customers.unsuppress |
| Method | POST |
| Path | /customers/{id}/unsuppress |
Parameters
| Name | Location | Type | Required |
|---|---|---|---|
id | path | string | Yes |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.unsuppress. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
POST /batch
Batch multiple operations
| Detail | Value |
|---|---|
| Operation ID | batch.send |
| Method | POST |
| Path | /batch |
Parameters
No parameters.
Request Body
| Field | Type |
|---|---|
batch | array |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
batch.send. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.
POST /merge_customers
Merge two people
| Detail | Value |
|---|---|
| Operation ID | customers.merge |
| Method | POST |
| Path | /merge_customers |
Parameters
No parameters.
Request Body
| Field | Type |
|---|---|
primary | object |
secondary | object |
Using this endpoint in a workflow
- Add an API Call node to your workflow.
- Pick your Customer.io Track API connection from the Connection dropdown.
- In the Operation dropdown, select
customers.merge. - Fill in the parameter fields that appear. Use
{{...}}to reference upstream values.
Required fields are marked — fill them or the call will fail at runtime.
What it returns
The API Call node writes the response to the workflow context:
{
status: 200,
success: true,
data: { ...response body from the API... },
latencyMs: 142
}Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Customer.io Track API API reference.