curl --request POST \
--url https://app.thinnest.ai/api/v1/sequences/{sequenceId}/activate \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/sequences/{sequenceId}/activate', 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}/activate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(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": 0,
"completed": 0,
"exited": 0
},
"createdAt": "2026-10-06T10:00:04.512Z"
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "This API key is read-only: it can read everything but change nothing."
}{
"error": "That sequence was not found."
}{
"error": "Add at least one message before turning it on."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Activate Sequence
Turns a draft or paused sequence on: messages that fall due start going out, and its tags and events start enrolling people. Refused for a sequence with no steps, which would take people in and send nothing. Needs a full key.
curl --request POST \
--url https://app.thinnest.ai/api/v1/sequences/{sequenceId}/activate \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/sequences/{sequenceId}/activate', 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}/activate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(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": 0,
"completed": 0,
"exited": 0
},
"createdAt": "2026-10-06T10:00:04.512Z"
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "This API key is read-only: it can read everything but change nothing."
}{
"error": "That sequence was not found."
}{
"error": "Add at least one message before turning it on."
}{
"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, now active.
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.