---
title: "Join a live call that is already running in a chatroom."
method: POST
path: "/v1/join_call_session"
tags: ["Live calls"]
---

# Join a live call that is already running in a chatroom.

`POST /v1/join_call_session`

## Request

- Base URL: `https://partner.mindupload.app`
- URL: `https://partner.mindupload.app/v1/join_call_session`
- Auth: API key in header `X-Partner-Key`

Joins a call that is already running, and returns a joining pass for the person making the request. Someone who is already in the call gets a fresh pass instead of appearing twice. Counts against your monthly allowance.

## Request body

- object
  - `preferred_language` string, nullable: BCP-47-ish language code (e.g. 'en', 'zh-cn') for localized messages.
  - `username` string, nullable: The end-user's username.
  - `password` string, nullable: The end-user's password on first sign-in. After login/register, send the returned session token (JWT) here instead — the field accepts either, and reusing the token keeps raw passwords out of your storage.
  - `call_session_id` string, nullable

## Response `200`

Result envelope — check the success field.

- object
  - `success` boolean: Whether the call succeeded.
  - `error_message` string, nullable: Human-readable reason when success is false.
  - `error_code` string
  - `call_session_id` string, nullable
  - `auth_token` string, nullable
  - `participant_id` string, nullable
  - `expires_at` integer, nullable: UNIX timestamp when this resource or capability expires.
  - `is_host` boolean, nullable
  - `call_session` object, nullable: The call you are now in. Carries `call_session_id`, the `mode` and `media_tier` it is actually running in — which is what you got, not necessarily what you asked for when a call was already going — and who is in it.

## Other responses

- `400`: Invalid request payload.
- `401`: Missing or invalid partner key.
- `403`: Partner is not authorized for this operation.
- `409`: This call already holds as many people as it can take. Nothing is wrong with the request — wait for somebody to leave and send it again, or run a second call in another room.
- `429`: Rate limit exceeded — retry later.
- `500`: Internal server error.

---

[API](https://skmtc.dev/mindupload/apis/mind-upload-partner-api.md) · [All operations](https://skmtc.dev/mindupload/apis/mind-upload-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mindupload/apis/mind-upload-partner-api/revisions/0371bdf78533?raw)
