Skip to main content
POST
Create and assign interviews

Authorizations

Authorization
string
header
required

Use Authorization: Bearer

Path Parameters

project_id
string<uuid>
required

UUID of the project

Body

application/json
assignee_ids
string<uuid>[]

UUIDs of existing project members to interview (must be tech/contributor members).

invite_emails
string<email>[]

Email addresses of people to invite on the fly as non-admin Contributors and assign an interview.

topic
string

The interview focus. Used to auto-name the interview and seed its first question.

write_scope
enum<string>
default:local

Whether interview edits stay local to the conversation or write to the shared knowledge store.

Available options:
local,
global
campaign_id
string<uuid> | null

Existing campaign to group the created interviews under (must belong to the project). Wins over campaign_name when both are sent.

campaign_name
string

Campaign to group the created interviews under, by name: reuses the project's campaign with that name (case-insensitive) or creates it.

Response

Interviews created and assigned

id
string<uuid>
read-only
name
string | null

Interview title (auto-generated from the topic when not provided).

created_by
string<uuid>
read-only

UUID of the user who created the interview.

created_by_email
string<email> | null
read-only

Email of the user who created the interview (the importer, for imported interviews).

type
string

Conversation type: "interview" (standard), "guided-interview" (multi-topic), or "imported-interview" (a read-only transcript of an interview recorded outside the platform, created via the import-transcript endpoint).

type_additional_parameters
object

Free-form parameters associated with the conversation type.

chat_history
object[]

Ordered list of transcript entries (messages, tool calls, etc.).

chat_memory
object

Assistant memory state accumulated over the conversation.

local_documents
string<uuid>[]
read-only

UUIDs of documents scoped locally to this interview.

assigned_to
string<uuid> | null
read-only

UUID of the assigned user (null while a pending invite has not yet joined).

assigned_by
string<uuid> | null
read-only

UUID of the user who created the assignment.

assigned_to_email
string<email> | null
read-only

Assignee email, falling back to the invite email for not-yet-joined invitees.

assigned_by_email
string<email> | null
read-only
is_pending_invite
boolean
read-only

True when assigned to someone who has not yet joined the project.

topics
object[]
read-only

Guided interviews only: the ordered topic agenda seeded at assign time, with per-topic progress. Empty for every other interview type.

campaign
object | null

Campaign this interview belongs to; null for ad hoc interviews.

import_info
object | null

Parse-pipeline state of an imported external transcript (interviews of type "imported-interview"). Null on every other interview type. The raw submitted transcript is never returned — the parsed chat_history is the transcript.

status
enum<string> | null
read-only

Null for imported interviews until their transcript parse completes.

Available options:
pending,
in_progress,
completed
write_scope
enum<string>

Whether edits stay local to the conversation or write to the shared knowledge store.

Available options:
local,
global
created_at
string<date-time>
read-only
updated_at
string<date-time>
read-only