curl --request GET \
--url https://app.thinnest.ai/api/v1/sequences/{sequenceId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/sequences/{sequenceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/sequences/{sequenceId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "7c0e4b2a-9d3f-4e61-8a5c-1b7f3e9d2c08",
"name": "After delivery",
"status": "active",
"agent": "ag_2c7e9a14-5b3d-4f8e-a1c6-7d9b0e3f5a21",
"exitOnReply": true,
"triggerTags": [
"delivered"
],
"exitOnTags": [
"refunded"
],
"startOn": [
"order.delivered"
],
"stopOn": [
"order.returned"
],
"steps": [
{
"position": 1,
"delayHours": 2,
"template": {
"name": "delivery_thanks",
"language": "en"
}
},
{
"position": 2,
"delayHours": 48,
"template": {
"name": "review_request",
"language": "en"
}
}
],
"enrolments": {
"active": 37,
"completed": 412,
"exited": 58
},
"createdAt": "2026-09-29T07:45:10.226Z"
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That sequence was not found."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Get Sequence
One sequence with its steps in order, the events that start and stop it, and how many people are in it, finished it or left it.
curl --request GET \
--url https://app.thinnest.ai/api/v1/sequences/{sequenceId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/sequences/{sequenceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/sequences/{sequenceId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "7c0e4b2a-9d3f-4e61-8a5c-1b7f3e9d2c08",
"name": "After delivery",
"status": "active",
"agent": "ag_2c7e9a14-5b3d-4f8e-a1c6-7d9b0e3f5a21",
"exitOnReply": true,
"triggerTags": [
"delivered"
],
"exitOnTags": [
"refunded"
],
"startOn": [
"order.delivered"
],
"stopOn": [
"order.returned"
],
"steps": [
{
"position": 1,
"delayHours": 2,
"template": {
"name": "delivery_thanks",
"language": "en"
}
},
{
"position": 2,
"delayHours": 48,
"template": {
"name": "review_request",
"language": "en"
}
}
],
"enrolments": {
"active": 37,
"completed": 412,
"exited": 58
},
"createdAt": "2026-09-29T07:45:10.226Z"
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That sequence was not found."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Authorizations
Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.
Headers
Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.
"org_3fKq9TzQ1mN8vB2xR7cLpA"
Path Parameters
The sequence's id — a bare uuid.
Response
The sequence.
The sequence's id — a bare uuid.
The sequence's name.
Only active sequences send.
draft, active, paused The agent it belongs to (ag_…).
Whether a reply from the customer takes them out.
Tagging a contact with one of these enrols them.
Tagging someone in it with one of these takes them out.
Event names (Report Event) that enrol the contact.
Event names that take them out.
The messages, in order.
Show child attributes
Show child attributes
How many people are in it now, have finished it, and left it early.
Show child attributes
Show child attributes
When it was created.