---
title: "Enroll contacts in a journey"
method: POST
path: "/api/v1/journeys/{id}/enroll"
tags: ["journeys"]
---

# Enroll contacts in a journey

`POST /api/v1/journeys/{id}/enroll`

## Request

- Base URL: `https://app.blueticked.com`
- URL: `https://app.blueticked.com/api/v1/journeys/{id}/enroll`
- Auth: HTTP bearer

Put contacts onto an active journey. They start receiving its programme from step one.

Send-class on purpose: enrolment starts messages over days, so `journeys:enroll` sits outside the agent Prepare profile the way every send scope does.

A journey that is not active answers 409 `journey_not_active`. Activation is a human act in the dashboard.

Up to 500 contact_ids per call; `skipped` counts contacts already on the journey, `capped` counts ids beyond the per-call limit that were not attempted.

For an organization-wide key, missing, deleted or other-business contacts count as `failed`; eligible contacts still enroll. Sandbox keys report eligibility counts without inserting or sending. Business-restricted keys retain whole-request contact authority checks.

`unavailable_contact_ids` lists the requested ids that were not eligible, deduplicated in request order, in both live and sandbox responses. It is empty when every requested contact is eligible. It does not expose why an id was unavailable or any contact data.

## Path parameters

- `id` string, required

## Request body

- object
  - `contact_ids` string[], required

## Response `200`

Success

- object
  - `ok` boolean, required
  - `enrolled` number, required
  - `skipped` number, required
  - `failed` number, required
  - `capped` number, required
  - `unavailable_contact_ids` string[], required

## Other responses

- `400`: Validation failed
- `401`: Unauthorized: missing or invalid API key
- `402`: Insufficient wallet balance
- `403`: Forbidden: scope, plan limit, or suspension
- `404`: Not found
- `409`: Conflict (idempotency-key reuse or resource in use)
- `413`: Request body above the endpoint's size limit
- `422`: Understood but refused: the request is well-formed, the action is not permitted for this resource
- `429`: Rate limited
- `500`: Internal error
- `502`: An upstream provider refused or failed the request
- `503`: Channel or send queue unavailable

---

[API](https://skmtc.dev/blueticked/apis/blueticked-api.md) · [All operations](https://skmtc.dev/blueticked/apis/blueticked-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blueticked/apis/blueticked-api/revisions/07132284f4ff?raw)
