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

# Start a published workflow

> Requires workflows:run. Launches a specific published revision and returns a session connection. The revision defines voice, face, instructions, and tools; overrides are not accepted.



## OpenAPI

````yaml /openapi/public-api.json post /v1/workflow-runs
openapi: 3.1.0
info:
  title: LiveFaces Session API
  version: 0.1.0
  description: >-
    Customer-facing session launch and lifecycle reference. Send API keys only
    from trusted server code.
servers:
  - url: https://api.livefaces.ai
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Authentication
  - name: Sessions
  - name: Workflow runs
paths:
  /v1/workflow-runs:
    post:
      tags:
        - Workflow runs
      summary: Start a published workflow
      description: >-
        Requires workflows:run. Launches a specific published revision and
        returns a session connection. The revision defines voice, face,
        instructions, and tools; overrides are not accepted.
      operationId: startWorkflowRun
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          description: >-
            Unique ID for one intended launch. Reuse this key and the identical
            body when retrying that launch.
          schema:
            type: string
            minLength: 1
            maxLength: 200
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRunCreate'
      responses:
        '201':
          description: Successful response
          headers:
            X-Request-ID:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Session'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '500':
          $ref: '#/components/responses/Error500'
        '503':
          $ref: '#/components/responses/Error503'
components:
  schemas:
    WorkflowRunCreate:
      type: object
      properties:
        workflow_revision_id:
          type: string
          description: >-
            Published workflow revision UUID, not a working-copy ID or version
            number.
          format: uuid
        inputs:
          type: object
          additionalProperties: true
          description: Values matching the published workflow input fields.
          default: {}
        participant_identity:
          type: string
          description: Identity for the participant joining the room.
          default: browser
          minLength: 1
          maxLength: 100
        tags:
          type: array
          maxItems: 20
          items:
            type: string
          description: Application labels.
        metadata:
          type: object
          additionalProperties: true
          description: Application context; exclude secrets.
      required:
        - workflow_revision_id
      additionalProperties: false
    Session:
      type: object
      properties:
        id:
          type: string
          description: >-
            Use this session ID for status, token refresh, end, and transcript
            requests.
          format: uuid
        workflow_run_id:
          anyOf:
            - type: string
              description: Present for a workflow session; identifies its workflow run.
              format: uuid
            - type: 'null'
        status:
          type: string
          enum:
            - created
            - active
            - completed
            - failed
            - cancelled
        room_name:
          type: string
          description: Room name for the connection.
        livekit_url:
          type: string
          description: LiveKit connection URL returned by the service.
          format: uri
        participant_token:
          type:
            - string
            - 'null'
          description: >-
            Short-lived participant credential, or null after the session
            becomes terminal.
        created_at:
          type: string
          format: date-time
        started_at:
          type:
            - string
            - 'null'
          format: date-time
        ended_at:
          type:
            - string
            - 'null'
          format: date-time
      required:
        - id
        - status
        - room_name
        - livekit_url
        - participant_token
        - created_at
        - started_at
        - ended_at
      additionalProperties: false
    ApiError:
      type: object
      properties:
        code:
          type: string
          description: Application error code.
        detail:
          description: Error description or structured validation details.
        request_id:
          type: string
          description: Request identifier for support.
      required:
        - code
        - detail
        - request_id
      additionalProperties: true
  headers:
    RequestId:
      description: Identifier for diagnosing this request.
      schema:
        type: string
  responses:
    Error401:
      description: Invalid, expired, or revoked API key.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Error403:
      description: Missing required scope or access.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Error404:
      description: Resource does not exist or is not accessible with this key.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Error409:
      description: Request conflicts with current state or idempotency use.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Error422:
      description: Invalid request fields, identifiers, or required headers.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Error500:
      description: Unexpected service error.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    Error503:
      description: Session service is currently unavailable.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Organization API key. Keep it on your server.

````

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