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.