---
title: "Start Interview Call"
method: POST
path: "/api/interview/join/{token}/start"
tags: ["interview-join"]
---

# Start Interview Call

`POST /api/interview/join/{token}/start`

## 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/interview/join/{token}/start`
- Auth: none declared

Start an interview for a candidate joining via {token}.

Branches on interviewer_type:
  - "brain"  → start a brain session via core.brain_session_runner and
                return StartBrainResponse. The candidate page then runs
                the text + voice loop against /brain/turn.
  - "human" / null / Vapi screening → return StartCallResponse with the
                Vapi assistant config.

This is a PUBLIC endpoint - no authentication required.

## Path parameters

- `token` string, required

## Request body

- StartConsentRequest: Recording-consent decision captured on the candidate welcome screen (ADR-0034 P5): recording_consent = {audio: bool, video: bool, agreed_at: ISO}. Optional so the existing no-body /start callers keep working.
  - `recording_consent` object, nullable

## Response `200`

Successful Response

- unknown

## 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)
