Skip to main content
POST
/
agents
/
{agentId}
/
schedule
/
sequences
Enroll multiple contacts
curl --request POST \
  --url https://julian.11x.ai/api/v1/agents/{agentId}/schedule/sequences \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "contacts": [
    {
      "name": "John Doe",
      "phoneNumber": "+15551234567",
      "phoneNumberExt": "<string>",
      "timezone": "<string>",
      "scheduledAt": "2023-11-07T05:31:56Z",
      "toEmailAddress": "[email protected]"
    }
  ]
}
'
{
  "batchId": "550e8400-e29b-41d4-a716-446655440000",
  "total": 100,
  "accepted": 98,
  "rejected": [
    {
      "index": 3,
      "phoneNumber": "+15551234567",
      "error": "Missing custom input variables: account_id."
    }
  ]
}

Authorizations

x-api-key
string
header
required

Organization API key. Get it from the 11x team or from the platform.

Headers

Idempotency-Key
string

Optional, max 255 characters. Retries with the same key won't re-schedule the same batch. The key dedupes on the key alone, not payload content — to resubmit fixed rows after a partial 202, use a new key.

Maximum string length: 255

Path Parameters

agentId
string
required

ID of the agent, e.g. agent.abc123.

Body

application/json
contacts
object[]
required

Contacts to enroll (1–1,000).

Required array length: 1 - 1000 elements
timezone
string

Default IANA timezone applied to contacts that don't supply their own. If omitted, falls back to the agent's first configured timezone.

Example:

"America/New_York"

groupByField
string

Group contacts by the value of a custom variable for contact chaining. Only the first valid contact per group is scheduled immediately. Cannot be combined with allowDuplicates.

Example:

"account_id"

normalizeFields
string[]

Custom variable names to title-case before scheduling (e.g. "JOHN""John"). Only applied for organizations in the normalization allowlist.

allowDuplicates
boolean
default:false

Allow duplicate phone numbers within the batch. Cannot be combined with groupByField.

Response

Batch accepted for asynchronous processing. Check rejected[] for per-contact validation failures — valid contacts are scheduled even when others fail.

batchId
string<uuid>
required
Example:

"550e8400-e29b-41d4-a716-446655440000"

total
integer
required

Total contacts submitted.

Example:

100

accepted
integer
required

Contacts that passed validation and will be scheduled.

Example:

98

rejected
object[]
required

Per-contact validation failures (empty when all passed).