Skip to main content
A mock interview is a practice round. It should feel real, but the person can retry as many times as they want and always gets feedback on how to improve. This is the most common setup for self-serve products (think “practice with AI” buttons in a learning app).
You need an API key (iv_live_...) from Developer → API Keys. Use it in the x-api-key header and replace <slug> with your team slug.

Step 1 — Create a realistic interviewer

Real-feeling and challenging, but with improvement feedback turned on.
curl -X POST "https://www.intervyo.ai/api/v1/agent-profiles?accountSlug=<slug>" \
  -H "x-api-key: iv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "FAANG Mock Interviewer",
    "persona": "Jordan, a big-tech interviewer running a practice round.",
    "useCase": "training",
    "evaluationDimensions": [
      { "name": "Problem Solving", "description": "Approach and edge cases", "weight": 60 },
      { "name": "Communication",   "description": "Thinks out loud",         "weight": 40 }
    ],
    "interaction": { "tone": "challenging", "difficulty": "hard", "probingDepth": "high" },
    "output": { "includeImprovementFeedback": true }
  }'
👉 Save the id as AGENT_ID.

Step 2 — Make a practice template

curl -X POST "https://www.intervyo.ai/api/v1/evaluation-templates?accountSlug=<slug>" \
  -H "x-api-key: iv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "template_name": "DSA Mock Interview",
    "use_case": "training",
    "description": "A practice coding interview for new grads.",
    "objective": "Help the candidate feel ready for a real interview.",
    "success_outcome": "pass_fail",
    "default_session_mode": "practice_session",
    "default_duration_minutes": 45
  }'
👉 Save the id as TEMPLATE_ID.

Step 3 — Add one repeatable round

One stage, practice_session type, retakes on.
curl -X POST "https://www.intervyo.ai/api/v1/evaluation-stages?accountSlug=<slug>" \
  -H "x-api-key: iv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "evaluation_template_id": "TEMPLATE_ID",
    "type": "practice",
    "stage_name": "Mock Round",
    "stage_type": "practice_session",
    "stage_order": 0,
    "allow_retake": true,
    "duration_minutes": 45,
    "agent_profile_id": "AGENT_ID"
  }'

Step 4 — Add the practicing user

Use your app’s user ID as external_id so you can match results back.
curl -X POST "https://www.intervyo.ai/api/v1/participants?accountSlug=<slug>" \
  -H "x-api-key: iv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Priya Patel",
    "email": "priya@student.edu",
    "external_id": "user_98213",
    "evaluation_template_id": "TEMPLATE_ID",
    "profile": { "title": "New Grad", "experienceLevel": "entry" }
  }'
👉 Save the id as USER_ID.

Step 5 — Start the mock (again and again)

Each time the user clicks “Practice”, schedule a new session.
curl -X POST "https://www.intervyo.ai/api/v1/sessions?accountSlug=<slug>" \
  -H "x-api-key: iv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "candidate_id": "USER_ID",
    "evaluation_template_id": "TEMPLATE_ID",
    "stage": "practice"
  }'
Because retakes are on, you can do this as many times as the user wants.

Step 6 — Show their improvement

List the user’s sessions to draw a “your scores over time” chart in your app.

List a user's attempts

GET /api/v1/participants/{id}/sessions returns every practice attempt.

Want it inside your own app?

Mock interviews shine when they live right in your product. Embed the live interview with a token-authed widget — no redirect to us.

Embed the widget

Drop the AI interviewer into your app, white-labeled.
For coding mocks, the code execution endpoint runs the candidate’s code against test cases and returns pass/fail per case.
Last modified on June 2, 2026