---
title: "Choose Sequence Related Record And Enroll"
method: POST
path: "/sequences/{sequence_id}/related-records/enroll"
tags: ["Sequences"]
---

# Choose Sequence Related Record And Enroll

`POST /sequences/{sequence_id}/related-records/enroll`

## Request

- Base URL: `https://be.graph8.com/api/v1`
- URL: `https://be.graph8.com/api/v1/sequences/{sequence_id}/related-records/enroll`
- Auth: HTTP bearer

Choose the record (as `PUT`), then enrol exactly this contact in the sequence.

ENROLLING STARTS THE CONTACT'S SENDS once the sequence is live, so it needs the launch access that running the
sequence needs and the `run` tier. Only this contact is enrolled: nobody else on the sequence's list is. Safe to
retry: an enrolled contact reports `already_enrolled`; `not_enrolled` carries the reason.

NOTE: STARTING a sequence (`POST /sequences/{id}/run`) enrols its WHOLE associated list, every contact on it, not
just contacts you chose. To enrol a single contact, use this route on a sequence that is already live.

## Path parameters

- `sequence_id` string, required: Sequence id.

## Headers

- `Authorization` string, nullable
- `X-Target-Org-Id` string, nullable

## Request body

- ChooseRelatedRecordRequest
  - `contact_id` integer, required
  - `definition_id` string, uuid, required: The relationship definition the record is linked through.
  - `record_id` string, uuid, required: The linked custom-object record whose fields personalise this contact's sends.

## Response `200`

Successful Response

- ApiResponseSequenceRelatedRecordsPayload
  - `data` SequenceRelatedRecordsPayload, required: Related-record variables, pins or an enrolment result for a sequence.
  - `pagination` PaginationMeta
    - `page` integer, required: Current page number (1-indexed)
    - `limit` integer, required: Items per page
    - `total` integer, required: Total number of items
    - `has_next` boolean, required: Whether there are more pages
    - `next_cursor` string, nullable: Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers.
    - `total_available` integer, nullable: Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search.
    - `total_is_lower_bound` boolean, nullable: Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search.
    - `notes` string[], nullable: Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/graph8/apis/graph8-developer-api.md) · [All operations](https://skmtc.dev/graph8/apis/graph8-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/graph8/apis/graph8-developer-api/revisions/89fc11143b70?raw)
