Skip to main content
GET
Get interview definition

Authorizations

Authorization
string
header
required

Supabase JWT — Authorization: Bearer <token>.

Query Parameters

position_id
string<uuid>
required

Identifier of either an interview definition (single-stage) or a position definition (multi-stage). The function resolves whichever matches.

Minimum string length: 1
Example:

"00000000-0000-0000-0000-000000000000"

Response

The resolved interview definition.

name
string | null
required

Interview or position name.

created_at
string | null
required
Example:

"2026-01-15T09:30:00.000Z"

updated_at
string | null
required
Example:

"2026-01-20T14:05:00.000Z"

is_multistage
boolean
required

True when the id resolved to a multi-stage position rather than a single interview.

status
enum<string>
required

Lifecycle status of the interview/position.

Available options:
draft,
active,
archived,
deleted,
preparing,
completed
visibility
enum<string>
required

Who can see and access the interview/position.

Available options:
public,
merchant_public,
merchant_invite,
merchant_unlisted,
sub_item
stage
enum<string> | null
required

Hiring-pipeline stage. Null for multi-stage positions.

Available options:
Interest,
Application submitted,
Interview 1st planned,
Interview 1st completed,
Interview 2nd planned,
Interview 2nd completed,
Interview 3rd planned,
Interview 3rd completed,
Offer negotiations,
Hired,
Rejected,
Offer declined,
Other
type
enum<string> | null
required

Interview type. Null for multi-stage positions.

Available options:
coaching,
interview,
persona,
persona_interview,
public_avatar,
assessment
code
string | null
required

Caller-supplied external code/reference.

interview_location
string | null
required

Location (create field location).

cover_image_url
string | null
required

Cover image URL.

merchant_id
string | null
required

Owning merchant id.

interview_template_id
string | null
required

Interview template id. For multi-stage positions this is the first interview step's template.

interview_template_type
enum<string> | null
required

Type of the linked interview template. interactive_elevenlabs is voice-only; the others (interactive_heygen, offline_heygen, offline_elai, offline_synthesia) are avatar-based. Null when the template could not be resolved.

Available options:
offline_elai,
offline_synthesia,
interactive_heygen,
offline_heygen,
interactive_elevenlabs
is_voice_only
boolean | null
required

Convenience flag derived from interview_template_type: true when voice-only (interactive_elevenlabs), false when avatar-based, null when the template type could not be resolved.

knowledge_base_store_id
string | null
required

Linked knowledge base store id. Null for multi-stage positions.

mojito_language_code
string | null
required

Platform (mojito) language code.

Example:

"en"

speech_language_code
string | null
required

Azure speech language code. Null for multi-stage positions.

speech_language_name
string | null
required

Azure speech language display name. Null for multi-stage positions.

recording
enum<string> | null
required

Per-answer recording mode. Null for multi-stage positions.

Available options:
audio_first_5_answers,
audio_all,
video_all,
video_first_5_answers
recording_full_session
enum<string> | null
required

Full-session recording mode. Null for multi-stage positions.

Available options:
audio_first_5_answers,
audio_all,
video_all,
video_first_5_answers
type_credit
enum<string> | null
required

Credit bucket the interview draws from. Null for multi-stage positions.

Available options:
resume_check,
interview_coach_starter,
interview_coach_contributor,
interview_coach_manager,
cover_letter
result_view
enum<string> | null
required

Result view level. Null for multi-stage positions.

Available options:
minimal,
advanced,
full,
full_expand_scores,
minimal_with_score,
none
candidate_video_introduction
enum<string> | null
required

Whether a candidate video introduction is hidden/optional/required. Null for multi-stage positions.

Available options:
hidden,
optional,
required
description
string | null
required

Short description.

interview_description_long
string | null
required

Long description (create/update field description_long).

candidate_expectations
string | null
required

Free-text candidate expectations. Null for multi-stage positions.

interview_department
string | null
required

Department the position belongs to.

Example:

"Engineering"

interview_salary
string | null
required

Salary range shown for the position.

Example:

"$80k - $100k"

interview_available_till
string | null
required

ISO date/time after which the interview is no longer available to candidates. Null means always available.

recruiter_profile_id
string | null
required

Profile id of the recruiter owning this interview/position.

slug
string | null
required

URL slug of the public listing, when one was generated.

tags
string[] | null
required

Free-form tags. Also the coaching-catalogue mapping key: a catalogue directory lists this session when its tags_interview_set_filter is a subset of these tags. Null for multi-stage positions.

Example:
coach_plan
enum<string> | null
required

Coaching-plan stage this session belongs to. Null for multi-stage positions and for sessions outside any plan.

Available options:
demo,
screening,
2nd,
3rd,
closing,
job-specific,
other
interview_conversation_speed
string | null
required

Conversation pace of the AI avatar (slower/normal/faster). Null keeps the template default. Null for multi-stage positions.

max_followups
number | null
required

Maximum number of AI follow-up questions; null uses the template default. Null for multi-stage positions.

max_duration
number | null
required

Live session limit in seconds. Null for multi-stage positions.

questions_random_subset
number | null
required

Fraction of the questions actually asked (0.01-0.9); null asks all of them. Null for multi-stage positions.

required_pronunciation
boolean | null
required

Whether a pronunciation assessment is required. Null for multi-stage positions.

result_enable_edit_transcript
boolean | null
required

Whether the candidate may edit the transcript on the result view. Null for multi-stage positions.

calc_definition_json
any | null

The compiled interview definition JSON (structure varies by interview type).

candidate_expectations_json
any | null

Structured candidate expectations JSON — the scoring rubric. Null for multi-stage positions.

result_scoring
any | null

Resolved result-scoring config (update field custom_scoring; its max_retries is the update field interview_attempts). Null means the platform defaults apply. Null for multi-stage positions.

creation_parameters
any | null

The creation parameters recorded at build time (interview_type, interview_tone, interview_length, additional_context, include_rapport_question, include_closing_prompt, knowledge_base_store_id, seniority_level, hiring_for_company).

pdf_export_auto_config
any | null

Auto-PDF-report options applied when the interview completes; null when auto-export is off. Null for multi-stage positions.