> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spott.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Enroll a recipient in an outreach sequence

> Create a new outreach sequence run, enrolling a candidate (or a client contact tied to a candidate) in the sequence.



## OpenAPI

````yaml /api-reference/openapi.json post /outreach-sequences/{id}/runs
openapi: 3.1.0
info:
  title: Spott API Reference
  version: '0.1'
servers:
  - url: https://api.gospott.com
security: []
tags: []
paths:
  /outreach-sequences/{id}/runs:
    post:
      tags:
        - Outreach Sequences
      summary: Enroll a recipient in an outreach sequence
      description: >-
        Create a new outreach sequence run, enrolling a candidate (or a client
        contact tied to a candidate) in the sequence.
      operationId: createOutreachSequenceRun
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOutreachSequenceRunSingleDto'
      responses:
        '201':
          description: Recipient enrolled successfully. Returns the run ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRecordResponseDto'
        '400':
          description: Bad request - invalid recipient type for the sequence purpose
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ExceptionBaseDto'
                  - type: object
                    properties:
                      statusCode:
                        type: number
                        example: 400
                      message:
                        type: string
                        example: Invalid recipient type for the sequence purpose
                      error:
                        type: string
                        example: Bad Request
        '401':
          description: Unauthorized - invalid or missing authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '403':
          description: >-
            Forbidden - delegated sending is disabled and the requester is not
            the sequence owner
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '404':
          description: Sequence or candidate not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '409':
          description: A run for this recipient already exists in the sequence
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ExceptionBaseDto'
                  - $ref: >-
                      #/components/schemas/OutreachSequenceRunAlreadyExistsErrorDto
        '500':
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
      security:
        - x-api-key: []
components:
  schemas:
    CreateOutreachSequenceRunSingleDto:
      type: object
      properties:
        run:
          $ref: '#/components/schemas/CreateOutreachSequenceRunDto'
          description: The recipient to enroll.
      required:
        - run
      id: PrivateCreateOutreachSequenceRunSingleDto
    CreateRecordResponseDto:
      type: object
      properties:
        id:
          type: string
          minLength: 1
      required:
        - id
      id: CreateRecordResponseDto
    ExceptionBaseDto:
      type: object
      properties:
        status:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        message:
          type: string
        requestId:
          type: string
      required:
        - status
        - message
        - requestId
      id: ExceptionBaseDto
    OutreachSequenceRunAlreadyExistsErrorDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - RUN_ALREADY_EXISTS_FOR_CANDIDATE
          description: Error discriminator.
        existingRun:
          $ref: '#/components/schemas/OutreachSequenceRunMinimalDto'
          description: The run that already exists for the candidate.
      required:
        - type
        - existingRun
      id: PrivateOutreachSequenceRunAlreadyExistsErrorDto
    CreateOutreachSequenceRunDto:
      oneOf:
        - $ref: '#/components/schemas/CreateOutreachSequenceRunCandidateDto'
        - $ref: '#/components/schemas/CreateOutreachSequenceRunClientContactDto'
      id: PrivateCreateOutreachSequenceRunDto
    OutreachSequenceRunMinimalDto:
      type: object
      properties:
        runId:
          type: string
          minLength: 1
          description: ID of the existing run.
        candidateId:
          type: string
          minLength: 1
          description: Candidate the existing run is for.
      required:
        - runId
        - candidateId
      id: PrivateOutreachSequenceRunMinimalDto
    CreateOutreachSequenceRunCandidateDto:
      type: object
      properties:
        candidateId:
          type: string
          minLength: 1
          description: >-
            For a candidate enrollment, the candidate to enroll. For a
            client-contact enrollment, the candidate linked to the client
            contact.
        type:
          type: string
          enum:
            - candidate
          description: Discriminator value for a candidate enrollment.
      required:
        - candidateId
        - type
      id: PrivateCreateOutreachSequenceRunCandidateDto
    CreateOutreachSequenceRunClientContactDto:
      type: object
      properties:
        candidateId:
          type: string
          minLength: 1
          description: >-
            For a candidate enrollment, the candidate to enroll. For a
            client-contact enrollment, the candidate linked to the client
            contact.
        type:
          type: string
          enum:
            - clientContact
          description: Discriminator value for a client-contact enrollment.
        clientContactId:
          type: string
          minLength: 1
          description: ID of the client contact to enroll.
      required:
        - candidateId
        - type
        - clientContactId
      id: PrivateCreateOutreachSequenceRunClientContactDto
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header
      description: >-
        API key for authentication. Get your API key from Settings → API Keys in
        your Spott dashboard.

````