---
title: "Meeting Join"
method: POST
path: "/api/meeting-join/{token}"
tags: ["meeting-join"]
---

# Meeting Join

`POST /api/meeting-join/{token}`

## Request

- Base URL: `https://api.thebetterhire.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.thebetterhire.ai/api/meeting-join/{token}`
- Auth: none declared

Resolve the wrapper token, on-demand-launch the bot, return the real URL.

The read → guard → launch runs inside a transaction holding a per-token
advisory lock, so two near-simultaneous clicks (candidate + interviewer at
the same second) can't both pass the guard and launch duplicate Recall bots:
the winner launches, a concurrent loser sees the winner's bot (or bails on
the lock) and just redirects. The lock key is the token, so different
interviews never block each other.

## Path parameters

- `token` string, required

## Response `200`

Successful Response

- MeetingJoinResult
  - `meeting_url` string, required
  - `bot` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api.md) · [All operations](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/revisions/c8ad03e900ea?raw)
