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

# Add enrollments



## OpenAPI

````yaml /openapi/multichannel-publicapi.json post /multichannel/workspaces/{workspaceID}/sequences/{sequenceID}/enrollments
openapi: 3.1.0
info:
  description: >-
    Returns the current state of a LinkedIn account. Useful while polling a
    connection that is waiting on OTP.
  title: Multichannel Public API
  version: '1.0'
servers:
  - url: /public
security:
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
  - ApiKeyAuth: []
externalDocs:
  description: ''
  url: ''
paths:
  /multichannel/workspaces/{workspaceID}/sequences/{sequenceID}/enrollments:
    post:
      tags:
        - multichannel
      summary: Add enrollments
      parameters:
        - description: Workspace ID
          in: path
          name: workspaceID
          required: true
          schema:
            type: string
        - description: Sequence ID
          in: path
          name: sequenceID
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                - $ref: '#/components/schemas/requests.AddEnrollmentsRequest'
                  summary: request
                  description: >-
                    Add enrollments request. Use `filters` to define matching
                    leads. `limit` caps how many matching leads are enrolled.
        description: >-
          Add enrollments request. Use `filters` to define matching leads.
          `limit` caps how many matching leads are enrolled.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.AddEnrollmentsResponse'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
          description: Internal Server Error
      security:
        - ApiKeyAuth: []
components:
  schemas:
    requests.AddEnrollmentsRequest:
      properties:
        filters:
          $ref: '#/components/schemas/requests.EnrollmentFiltersRequest'
        limit:
          description: >-
            Limit controls the maximum number of contacts added after applying
            filters.
          type: integer
      type: object
    responses.AddEnrollmentsResponse:
      properties:
        leadIds:
          items:
            type: string
          type: array
          uniqueItems: false
      type: object
    responses.ErrorResponse:
      properties:
        data: {}
        message:
          type: string
      type: object
    requests.EnrollmentFiltersRequest:
      description: >-
        Filters optional at bind time; handler requires at least one filter via
        HasAtLeastOneFilter.
      properties:
        esps:
          items:
            type: string
          type: array
          uniqueItems: false
        hasEmail:
          type: boolean
        hasValidLinkedIn:
          type: boolean
        leadIds:
          items:
            type: string
          type: array
          uniqueItems: false
        tagIds:
          items:
            type: string
          type: array
          uniqueItems: false
        validationRunId:
          type: string
        validationStatuses:
          items:
            enum:
              - safe
              - invalid
              - disabled
              - disposable
              - inbox_full
              - catch_all
              - role_account
              - spamtrap
              - unknown
              - unvalidated
              - linkedin_only
            type: string
          type: array
          uniqueItems: false
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: Authorization
      type: apiKey

````