PATCH /api/v1/sequences/{sequenceId}/versions/{versionId}
Changes the trigger of a draft — the list or the tag that enrols contacts. Send both fields:
the trigger is replaced, never merged.
| Condition | Answer |
|---|---|
| a draft, both fields valid | 200 — the version comes back with its new trigger |
missing field, unknown triggerType, malformed id | 400 — details names the field |
| trigger target of another organization | 404 — like a tag that does not exist |
| the version is not a draft | 400 — published versions are snapshots; open a draft |
Authorization
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Refused — 403 |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
triggerType | string | yes | list_joined or tag_added |
triggerTargetId | string | yes | The list id for list_joined, the tag id for tag_added |
Example
bash
curl -X PATCH -H "x-api-key: $AGENTMAIL_API_KEY" -H "content-type: application/json" \
-d '{"triggerType":"tag_added","triggerTargetId":"'$TAG_ID'"}' \
"https://www.agentsmail.io/api/v1/sequences/$SEQUENCE_ID/versions/$VERSION_ID"Response
200 OK— the call succeeded.401 Unauthorized— missing or invalid key, or its owner left the organization.403 Forbidden— the key's owner is amemberof the organization, not anadmin.404 Not Found— no such resource, or it belongs to another organization. The API never confirms that an id exists to a caller who has no right to it.429 Too Many Requests— over 120 requests in a minute for this key.
Response fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the operation was successful |
data.id | string | Unique identifier for the version |
data.sequenceId | string | The sequence it belongs to |
data.version | number | Its rank, starting at 1 |
data.status | string | draft or published |
data.publishedAt | string | null |
data.triggerType | string | list_joined or tag_added |
data.triggerTargetId | string | The list or tag that enrols contacts |
data.createdAt | string | ISO creation date |
data.updatedAt | string | ISO date of the last change |
Example response
json
{
"success": true,
"data": {
"id": "4d19c0a2",
"sequenceId": "9b3f2d10",
"version": 1,
"status": "subscribed",
"publishedAt": "2026-08-23T10:22:05.000Z",
"triggerType": "list_joined",
"triggerTargetId": "0b7c51e8",
"createdAt": "2026-08-23T10:22:05.000Z",
"updatedAt": "2026-08-23T10:22:05.000Z"
}
}