---
title: "Reschedule Interview Endpoint"
method: POST
path: "/api/interviews/{interview_id}/reschedule"
tags: ["Interviews"]
---

# Reschedule Interview Endpoint

`POST /api/interviews/{interview_id}/reschedule`

## 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/interviews/{interview_id}/reschedule`
- Auth: HTTP bearer

Move an interview in place (ADR 0005, Phase 2). Thin wrapper — all
business logic lives in core.interview_reschedule (CLAUDE.md §3).

## Path parameters

- `interview_id` string, uuid, required

## Request body

- InterviewRescheduleRequest: In-place reschedule (ADR 0005, Phase 2). Editable set: date/time (+ its display timezone), duration, and an optional fresh meeting URL (reschedules often come with a newly-created Zoom/Teams link). Interviewer swap is out of scope — that's closer to a new interview. Only `scheduled_at` is required; the rest default to the current values so the recruiter changes only what moved.
  - `scheduled_at` string, date-time, required
  - `scheduled_timezone` string, nullable
  - `duration_minutes` integer, nullable
  - `meeting_url` string, nullable

## Response `200`

Successful Response

- InterviewRescheduleResponse
  - `interview_id` string, required
  - `scheduled_at` string, date-time, required
  - `scheduled_timezone` string, nullable
  - `duration_minutes` integer, required
  - `meeting_url` string, nullable
  - `reschedule_count` integer, required
  - `calendar_sync` 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)
