Skip to main content
GET
/
job-interview-get
Get interview definition
curl --request GET \
  --url https://cool.jobmojito.com/functions/v1/job-interview-get \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://cool.jobmojito.com/functions/v1/job-interview-get"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://cool.jobmojito.com/functions/v1/job-interview-get', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://cool.jobmojito.com/functions/v1/job-interview-get",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://cool.jobmojito.com/functions/v1/job-interview-get"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://cool.jobmojito.com/functions/v1/job-interview-get")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://cool.jobmojito.com/functions/v1/job-interview-get")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "name": "<string>",
  "created_at": "2026-01-15T09:30:00.000Z",
  "updated_at": "2026-01-20T14:05:00.000Z",
  "is_multistage": true,
  "code": "<string>",
  "interview_location": "<string>",
  "cover_image_url": "<string>",
  "merchant_id": "<string>",
  "interview_template_id": "<string>",
  "is_voice_only": true,
  "knowledge_base_store_id": "<string>",
  "mojito_language_code": "en",
  "speech_language_code": "<string>",
  "speech_language_name": "<string>",
  "description": "<string>",
  "interview_description_long": "<string>",
  "candidate_expectations": "<string>",
  "calc_definition_json": "<unknown>",
  "candidate_expectations_json": "<unknown>",
  "result_scoring": "<unknown>",
  "creation_parameters": "<unknown>"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}

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,
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 field description_long).

candidate_expectations
string | null
required

Free-text candidate expectations. 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. Null for multi-stage positions.

result_scoring
any | null

Resolved result-scoring config. 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).