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-key and x-qcs-api-key are 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
true only when result is enrolled.
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.

HTTPValueMeaningWhat to do
401missing_api_keyNo key header was sent.Send the key in the x-securessmtp-api-key header.
401invalid_api_keyNo 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.
403site_disabledThe site is disabled.Check GET /blocks/status. See Blocks.
400invalid_payloadThe body is not valid JSON, or a field is missing or invalid (for example a bad email address).Send sequence and a valid email.
404sequence_not_foundYour 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.

See Follow-up sequences and Templates and variables.