---
title: "Complete Interview"
method: POST
path: "/v1/interviews/{interview_id}/complete"
tags: ["interviews"]
---

# Complete Interview

`POST /v1/interviews/{interview_id}/complete`

Manually finish a campaign (operator override).

Flips an active or paused campaign to completed, triggering the same report
synthesis and ``campaign.completed`` webhook as an automatic threshold
completion. Use when enough interviews are in and you want to close the
campaign and generate the report without waiting for the completion
threshold, or to unstick a campaign whose interviews finished but never
rolled up. Idempotent for already-completed campaigns.

## Path parameters

- `interview_id` string, uuid, required

## Headers

- `X-API-Key` string, nullable

## Response `200`

Successful Response

- InterviewOut
  - `id` string, uuid, required
  - `workspace_id` string, uuid, required
  - `is_shared` boolean
  - `shared_from_workspace_name` string, nullable
  - `share_scope` string
  - `share_link_enabled` boolean
  - `join_link_delivery` boolean
  - `name` string, required
  - `description` string, nullable, required
  - `goal` string, nullable, required
  - `agent_behavior` string, nullable, required
  - `status` string, required
  - `channel` string, required
  - `completion_threshold` integer, required
  - `timeframe_start` string, date-time, nullable, required
  - `timeframe_end` string, date-time, nullable, required
  - `interview_order` string, required
  - `interview_duration_minutes` integer, required
  - `timezone` string, nullable
  - `start_immediately` boolean
  - `scheduling_mode` string
  - `quick_mode_hours` integer, nullable
  - `weekly_availability` object, nullable
  - `project_context` string, nullable
  - `success_criteria` string, nullable
  - `interview_context_for_employee` string, nullable
  - `invitation_email_message` string, nullable
  - `teams_invitation_message` string, nullable
  - `agent_profile_id` string, uuid, nullable
  - `agent_profile_snapshot` object, nullable
  - `draft_guide` unknown[], nullable
    - unknown
  - `interview_type` string, nullable
  - `default_language` string, nullable
  - `voice_id` string, nullable
  - `voice_provider` string, nullable
  - `voice_language` string, nullable
  - `voice_speed` number
  - `participant_voice_selection_enabled` boolean
  - `participant_mode_selection_enabled` boolean
  - `participant_language_selection_enabled` boolean
  - `participant_selectable_languages` string[]
  - `participant_anonymity_selection_enabled` boolean
  - `participant_review_enabled` boolean
  - `result_summary_enabled` boolean
  - `result_summary_recipient_count` integer
  - `welcome_screen` string, nullable
  - `closing_message` string, nullable
  - `folder` string, nullable
  - `recurring_interval` string, nullable
  - `followup_enabled` boolean
  - `followup_strategy` string, nullable
  - `followup_intervals_hours` integer[], nullable
  - `followup_deadline_days` integer[], nullable
  - `followup_message` string, nullable
  - `report_floor_count` integer, nullable
  - `incremental_update_every_n` integer, nullable
  - `use_agentic_synthesis` boolean
  - `is_anonymous` boolean
  - `anonymity_level` string
  - `contact_count` integer
  - `completed_count` integer
  - `scheduled_count` integer
  - `created_by` string, nullable, required
  - `created_by_email` string, nullable
  - `created_by_name` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ontora/apis/ontora-api.md) · [All operations](https://skmtc.dev/ontora/apis/ontora-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ontora/ontora-api/revisions/7f57037fd94b/schema)
