API REFERENCE · Published 2026-10-06 · Updated 2026-10-06 · SecureSMTP
Add a contact to a sequence
POST /api/v1/sequences/enroll
POSThttps://securessmtp.com/api/v1/sequences/enroll
Adds one email address to a follow-up sequence. The first step is sent after its delay, then each next step after its own delay.
Headers
- x-securessmtp-api-keystringrequired
- The site’s API key (
qcs_live_…).x-securesmtp-api-keyandx-qcs-api-keyare accepted too. See Sites and API keys. - Content-Typestringrequired
application/json
Body
- sequencestringrequired
- Up to 80 characters. The sequence ID, shown in the “Enroll via API” box on the sequence’s page under Automations. The sequence must belong to the same account as the key’s site.
- emailstringrequired
- The address to enroll. Stored in lowercase.
- dataobjectoptional
- Values for the
{{variables}}in the step templates: keys up to 64 characters, values string, number or boolean.{{unsubscribe_url}}is filled in by us.
Request
curl -X POST https://securessmtp.com/api/v1/sequences/enroll \
-H "x-securessmtp-api-key: $SECURESSMTP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sequence": "0b7e4c2a-9d1f-4e3b-8a6c-5f2d1e0c9b8a",
"email": "[email protected]",
"data": {
"first_name": "Jane",
"plan": "Pro"
}
}'Response
200
{
"ok": true,
"result": "enrolled"
}Response fields
- okbooleanrequired
trueonly whenresultisenrolled.- result'enrolled' | 'exists' | 'no_steps'required
enrolled— added.exists— not added: the address is already active in this sequence. HTTP 200,ok: false.no_steps— not added: the sequence has no steps. HTTP 200,ok: false. Add a step under Automations first.
Errors
Errors have "ok": false and a reason.
| HTTP | Value | Meaning | What to do |
|---|---|---|---|
| 401 | missing_api_key | No key header was sent. | Send the key in the x-securessmtp-api-key header. |
| 401 | invalid_api_key | No site has this key. Keys stop working as soon as they are rotated. | Copy the current key from the dashboard, or rotate it to get a new one. |
| 403 | site_disabled | The site is disabled. | Check GET /blocks/status. See Blocks. |
| 400 | invalid_payload | The body is not valid JSON, or a field is missing or invalid (for example a bad email address). | Send sequence and a valid email. |
| 404 | sequence_not_found | Your account has no sequence with this ID. | Copy the ID from the sequence’s page under Automations. |
Notes
- Steps are sent in relay mode and count toward the monthly email limit.
- Steps are sent only while the sequence is turned on. Enrollments in a paused sequence wait until it is turned on again.
- If the address becomes suppressed, or unsubscribes from the site, the enrollment stops. Each step gets a visible unsubscribe link.