Skip to main content
An interview is a single conversation between an AI interviewer and a respondent. Each interview belongs to a study.

GET /v1/interviews

List interviews for a study. Filter by status, reference ID, or quality score.

Request

Authorization
string
required
Bearer token. See Authentication.
study_id
string
required
Study ID (UUID). Only interviews belonging to this study are returned.
status
string
Filter by status. Common values: "completed", "started".
reference_id
string
Filter by the reference ID you passed via ?reference_id= on the interview link. Use this to find a specific user’s interview.
quality_score
string
Filter by quality: "insightful", "successful", or "unsuccessful".
limit
integer
Number of interviews to return. Default 20, max 100.
starting_after
string
Cursor for pagination. Pass the id of the last interview from the previous page.
curl "https://app.userjourneys.ai/api/v1/interviews?study_id=e5f6a7b8-1234-56cd-ef78-222222222222" \
  -H "Authorization: Bearer uj_live_your_key_here"
{
  "object": "list",
  "data": [
    {
      "id": "a1b2c3d4-5678-90ab-cdef-111111111111",
      "object": "interview",
      "study_id": "e5f6a7b8-1234-56cd-ef78-222222222222",
      "status": "completed",
      "reference_id": "user_12345",
      "respondent_email": null,
      "language": "en",
      "quality_score": "insightful",
      "duration_secs": 580,
      "headline": "User loves the onboarding but struggles with payment",
      "summary": "The respondent had a positive first impression of the product...",
      "started_at": "2026-03-11T14:20:00.000Z",
      "completed_at": "2026-03-11T14:30:00.456Z",
      "created_at": "2026-03-11T14:20:00.000Z"
    }
  ],
  "has_more": false
}
Filter by reference_id to find a specific user’s interview: ?study_id=...&reference_id=user_12345

GET /v1/interviews/:id

Retrieve a single interview with the full transcript and structured question answers.

Request

Authorization
string
required
Bearer token. See Authentication.
id
string
required
Interview ID (UUID). This is the interview_id from the webhook payload.
curl https://app.userjourneys.ai/api/v1/interviews/a1b2c3d4-5678-90ab-cdef-111111111111 \
  -H "Authorization: Bearer uj_live_your_key_here"
{
  "id": "a1b2c3d4-5678-90ab-cdef-111111111111",
  "object": "interview",
  "study_id": "e5f6a7b8-1234-56cd-ef78-222222222222",
  "status": "completed",
  "reference_id": "user_12345",
  "respondent_email": null,
  "language": "es",
  "quality_score": "insightful",
  "duration_secs": 580,
  "headline": "User loves the onboarding but struggles with payment",
  "summary": "The respondent had a positive first impression of the product...",
  "started_at": "2026-03-11T14:20:00.000Z",
  "completed_at": "2026-03-11T14:30:00.456Z",
  "created_at": "2026-03-11T14:20:00.000Z",
  "transcript": [
    {
      "role": "agent",
      "message": "Gracias por unirte hoy. Cuéntame sobre tu experiencia.",
      "translated": "Thanks for joining today. Tell me about your experience.",
      "time_in_call_secs": 0
    },
    {
      "role": "user",
      "message": "El proceso fue bastante sencillo al principio...",
      "translated": "The process was pretty straightforward at first...",
      "time_in_call_secs": 4
    }
  ],
  "question_answers": [
    {
      "question_index": 0,
      "question_text": "What was your first impression of the product?",
      "answer_summary": "Found it intuitive but hit a snag at the payment step",
      "answer_excerpt": [
        { "role": "user", "message": "It was pretty smooth until..." }
      ]
    }
  ]
}
Returns 404 if the interview doesn’t exist or doesn’t belong to your project.

Interview object

id
string
Interview ID (UUID).
object
string
"interview"
study_id
string
The study this interview belongs to.
status
string
"completed", "started", or "processing".
reference_id
string | null
Custom identifier passed via ?reference_id= on the interview link.
respondent_email
string | null
Email entered during or after the interview. null if not collected.
language
string | null
Detected language code (e.g. "en", "es", "de").
quality_score
string | null
"insightful", "successful", or "unsuccessful".
duration_secs
integer | null
Interview length in seconds.
headline
string | null
AI-generated one-line summary.
summary
string | null
AI-generated paragraph summary.
started_at
string
Interview start time (ISO 8601).
completed_at
string | null
Interview end time (ISO 8601).
created_at
string
Record creation time (ISO 8601).

Detail-only fields

These fields are only included in GET /v1/interviews/:id responses:
transcript
object[]
Full conversation transcript, ordered chronologically.
question_answers
object[]
Structured answers extracted from the transcript, one per interview question.