Skip to main content
POST
/
v3
/
sequences
/
{id}
/
contact-links
/
bulk
Bulk add contacts to sequence
curl --request POST \
  --url https://api.reply.io/v3/sequences/{id}/contact-links/bulk \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "contactIds": [
    123
  ],
  "removeFromExisting": false,
  "startStepId": 123,
  "ignoreStepDelay": false,
  "startFrom": "2023-11-07T05:31:56Z"
}
'
{
  "added": [
    123
  ],
  "notProcessed": {}
}

Documentation Index

Fetch the complete documentation index at: https://docs.reply.io/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Authenticate every request with a Bearer token. Pass your Reply API key in the Authorization header:

Authorization: Bearer <your-api-key>

Get your API key from the Reply dashboard: Settings → API Key.

Path Parameters

id
integer
required

Sequence ID

Body

application/json
contactIds
integer[]
required

Array of contact IDs to add

removeFromExisting
boolean
default:false

If true, contacts will be removed from their current sequences before being added to this one

startStepId
integer | null

Optional step ID to start from

ignoreStepDelay
boolean
default:false

If true, skip the configured delay before the first step and start processing immediately

startFrom
string<date-time> | null

Optional date when contact processing should begin. If not provided, processing starts immediately.

Response

Contacts added to sequence.

Per-item failures use the SequenceContactError enum. Common per-item slugs:

SlugMeaning
invalidInputGeneric validation failure for this contact
contactLimitExceededPlan limit reached
contactAlreadyInSequenceContact is already enrolled
contactNotFoundContact does not exist
forbiddenCaller lacks permission for this contact
added
integer[]

IDs of successfully added contacts

notProcessed
object

Contacts that could not be added, keyed by contact ID