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

# Create Participants

> Queue up to 100 invitations. Poll the returned job before listing participants.



## OpenAPI

````yaml /api-reference/openapi.json post /api/public/v1/participants/
openapi: 3.1.0
info:
  title: User Intuition Public API
  description: >-
    ## Public Integration API


    Programmatic access to User Intuition for external integrators: manage
    studies, participants, interviews, reports, and panels.


    ### Authentication


    All endpoints require a Bearer token — either an API key (prefixed `ui_sk_`,
    created in the dashboard) or a dashboard JWT:


    ```

    Authorization: Bearer <ui_sk_… or JWT>

    ```


    ### Base URLs


    - **Production:** `https://api.userintuition.ai`

    - **Staging:** `https://staging.userintuition.ai`


    ### Support


    For API support, contact support@userintuition.ai
  version: 1.0.0
  contact:
    name: User Intuition Support
    email: support@userintuition.ai
servers:
  - url: https://api.userintuition.ai
    description: Production
  - url: https://staging.userintuition.ai
    description: Staging
security:
  - BearerAuth: []
paths:
  /api/public/v1/participants/:
    post:
      tags:
        - public-participants
      summary: Create Participants
      description: >-
        Queue up to 100 invitations. Poll the returned job before listing
        participants.
      operationId: createParticipants
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Idempotency-Key
        - name: X-UI-Organization-ID
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 128
              - type: 'null'
            description: >-
              Platform admins only: choose an organization for scoped reads and
              writes. Required to change another organization's study or use its
              wallet.
            title: X-Ui-Organization-Id
          description: >-
            Platform admins only: choose an organization for scoped reads and
            writes. Required to change another organization's study or use its
            wallet.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicParticipantsCreate'
            examples:
              Emailed and silent:
                summary: Create emailed and silent participants
                description: >-
                  Participant emails must be unique ignoring case. A request may
                  contain 1–100 participants.
                value:
                  study_id: 11111111-2222-3333-4444-555555555555
                  participants:
                    - email: alex@example.com
                      silent: false
                    - email: sam@example.com
                      silent: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJob'
        '422':
          description: Public API error. X-Request-ID matches error.request_id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorResponse'
        default:
          description: Public API error. X-Request-ID matches error.request_id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorResponse'
components:
  schemas:
    PublicParticipantsCreate:
      properties:
        study_id:
          type: string
          title: Study Id
          description: The study to invite these participants to
        participants:
          items:
            $ref: '#/components/schemas/PublicParticipantInviteInput'
          type: array
          maxItems: 100
          minItems: 1
          title: Participants
      additionalProperties: false
      type: object
      required:
        - study_id
        - participants
      title: PublicParticipantsCreate
      description: Create multiple participants for one study.
    PublicJob:
      properties:
        job_id:
          type: string
          title: Job Id
        status:
          type: string
          enum:
            - pending
            - running
            - succeeded
            - failed
          title: Status
        completed:
          type: boolean
          title: Completed
          description: True when work has finished successfully
        result_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Result Url
          description: Fetch the created resource after success
        total_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Count
          description: Requested participant count for a batch
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
          description: A safe failure summary; internal details are never returned
      type: object
      required:
        - job_id
        - status
        - completed
      title: PublicJob
    PublicApiErrorResponse:
      type: object
      required:
        - detail
        - error
      properties:
        detail:
          description: Legacy error detail; may be a string, list, or object.
        error:
          $ref: '#/components/schemas/PublicApiError'
    PublicParticipantInviteInput:
      properties:
        external_id:
          anyOf:
            - type: string
              maxLength: 128
              minLength: 1
            - type: 'null'
          title: External Id
          description: Customer ID, unique among active BYOP invitations in this study
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
          description: Up to 20 scalar CRM fields and 4 KiB total
        email:
          type: string
          format: email
          title: Email
        silent:
          type: boolean
          title: Silent
          description: Create the participant without sending an invitation email
          default: false
      additionalProperties: false
      type: object
      required:
        - email
      title: PublicParticipantInviteInput
      description: One participant in a bulk participant creation request.
    PublicApiError:
      type: object
      required:
        - code
        - message
        - field
        - request_id
        - outcome
        - recovery_action
        - docs_url
      properties:
        code:
          type: string
        message:
          type: string
        field:
          anyOf:
            - type: string
            - type: 'null'
        request_id:
          type: string
          format: uuid
        outcome:
          type: string
          enum:
            - not_started
            - failed
            - unknown
        recovery_action:
          type: string
        docs_url:
          type: string
          format: uri
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate with an API key (prefixed `ui_sk_`) or a JWT token from the
        dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.