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

# Join third party meeting platform

> Have your LemonSlice avatar join a third party meeting platform (Zoom, Google Meet, Microsoft Teams, or Webex)

<Tip>
  This feature works only with LiveKit-based self-managed sessions. We recommend using our [LiveKit plugin](/livekit) rather than calling this endpoint directly.
</Tip>

<Note>
  This endpoint should only be used to join third party meeting platforms. Do not use it for regular LiveKit sessions.
</Note>



## OpenAPI

````yaml /openapi.json post /liveai/sessions/{session_id}/join-meeting
openapi: 3.1.0
info:
  title: LemonSlice
  description: An API that gives access to a LemonSlice agent via a Daily room.
  license:
    name: MIT
    identifier: MIT
  version: 1.0.0
servers:
  - url: https://lemonslice.com/api
security:
  - apiKeyAuth: []
paths:
  /liveai/sessions/{session_id}/join-meeting:
    post:
      summary: Join third party meeting platform
      description: >-
        Have your LemonSlice avatar join a third party meeting platform (Zoom,
        Google Meet, Microsoft Teams, or Webex)


        <Tip>
          This feature works only with LiveKit-based self-managed sessions. We recommend using our [LiveKit plugin](/livekit) rather than calling this endpoint directly.
        </Tip>


        <Note>
          This endpoint should only be used to join third party meeting platforms. Do not use it for regular LiveKit sessions.
        </Note>
      operationId: joinMeeting
      parameters:
        - name: session_id
          in: path
          description: >-
            The ID of the active LemonSlice session whose avatar should join the
            third party meeting platform.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JoinMeetingInput'
            example:
              meeting_url: https://meet.google.com/abc-defg-hij
              livekit_url: wss://lemonslice-pb123.livekit.cloud
              broadcast_token: <LIVEKIT_BROADCAST_TOKEN>
              bot_name: LemonSlice Avatar
      responses:
        '200':
          description: Avatar is joining the third party meeting platform.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JoinMeetingResponse'
              example:
                meeting_bot_id: meeting-bot-abc123
                websocket_url: wss://example.com/agent-audio/session-id?token=...
        '400':
          description: >-
            Invalid request (e.g. unrecognized meeting URL or invalid LiveKit
            token)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: >-
                  Unrecognized meeting link — paste a Zoom, Google Meet,
                  Microsoft Teams, or Webex URL.
        '401':
          description: Authentication denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: Invalid API key
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
              example:
                detail: Failed to join meeting
        '502':
          description: Could not join the meeting
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: >-
                  Could not join the meeting — check the meeting link and try
                  again.
        '503':
          description: Meeting service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: Meeting audio tunnel failed to start
        '504':
          description: Request timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: Request timed out
components:
  schemas:
    JoinMeetingInput:
      type: object
      required:
        - meeting_url
        - livekit_url
        - broadcast_token
      properties:
        meeting_url:
          type: string
          description: >-
            HTTPS URL for the third party meeting platform. Supported platforms:
            Zoom, Google Meet, Microsoft Teams, and Webex. For platforms that
            support it (e.g. Zoom), include the meeting password in the URL.
          example: https://meet.google.com/abc-defg-hij
        livekit_url:
          type: string
          description: The LiveKit server URL (wss://) for the session.
          example: wss://lemonslice-pb123.livekit.cloud
        broadcast_token:
          type: string
          description: >-
            A LiveKit JWT with room permissions used to publish the avatar video
            stream to the third party meeting platform.
          example: <LIVEKIT_BROADCAST_TOKEN>
        bot_name:
          type: string
          description: >-
            Optional display name for the avatar in the third party meeting
            platform.
          example: LemonSlice Avatar
    JoinMeetingResponse:
      type: object
      required:
        - meeting_bot_id
        - websocket_url
      properties:
        meeting_bot_id:
          type: string
          description: >-
            ID for the joined third party meeting platform. Pass this to the
            leave-meeting endpoint when removing the avatar from the third party
            meeting platform.
          example: meeting-bot-abc123
        websocket_url:
          type: string
          description: >-
            WebSocket URL for receiving agent audio from the third party meeting
            platform.
          example: wss://example.com/agent-audio/session-id?token=...
    Error:
      type: object
      properties:
        detail:
          type: string
    ServerError:
      type: object
      properties:
        detail:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your LemonSlice API token.

````