/v1/partner/assessment. When candidates take assessments, you can receive webhooks for interview lifecycle events (start, scoring completed, end, and errors)—see Assessment and interview events in Webhooks.
List Assessments
Get a paginated list of AI interview assessments (voice and video) for your company.GET /assessment
Authentication
Requires API key viaAuthorization: Bearer YOUR_API_KEY header.
Query Parameters
Example Request
Example Response
Error Responses
Invalid perPage (400):Create Assessment (Voice Interview)
Create a new voice-based interview assessment. You can optionally link it to a job. Your account must have sufficient credits to create an assessment.POST /assessment/audio-interviews
Request Body
Request Body Example
Example Request
Example Response
Error Responses
- 404 – Company or job (if provided) not found.
code:NOT_FOUND. - 402 – Insufficient credits.
code:INSUFFICIENT_CREDITS,errorMessage: “Insufficient credits to create assessment”. - 400 – Validation error (e.g.
maxResumeCountmissing whenresumeAllowedistrue).code:INVALID_REQUEST.
Get Assessment
Retrieve a single assessment and its user-added questions. The response includes full assessment metadata (resumeAllowed, maxResumeCount, buckets, and other settings) plus question objects as stored in the system.
assessmentType is returned as AI_AUDIO_INTERVIEW for voice interviews or AI_VIDEO_INTERVIEW for video interviews.
GET /assessment/:assessmentId
Path Parameters
Example Request
Example Response
contextForAI for the evaluation instructions you pass as systemInstruction when adding or updating a question.
Error Responses
- 404 – Assessment not found.
code:NOT_FOUND. - 403 – Not allowed to access this assessment.
code:ACCESS_DENIED.
Update Assessment
Update an assessment’s title, duration, language, skills, or purpose. At least one field must be provided.PUT /assessment/:assessmentId
Path Parameters
Request Body (all optional; at least one required)
Example Request
Example Response
Error Responses
- 400 – No fields provided or validation error.
code:INVALID_REQUEST. - 404 – Assessment not found.
code:NOT_FOUND. - 403 – Not allowed to modify this assessment.
code:ACCESS_DENIED.
Add Question
Add a single question to an assessment.POST /assessment/:assessmentId/questions
Path Parameters
Request Body
Request Body Example
Example Request
Example Response
Error Responses
- 400 – Validation error (e.g. question too short).
code:INVALID_REQUEST. - 404 – Assessment not found.
code:NOT_FOUND. - 403 – Not allowed to modify this assessment.
code:ACCESS_DENIED.
Update Question
Update an existing question on an assessment.PUT /assessment/:assessmentId/questions/:questionId
Path Parameters
Request Body
Example Request
Example Response
Error Responses
- 404 – Assessment or question not found, or question not in this assessment.
code:NOT_FOUND. - 403 – Not allowed to modify this assessment.
code:ACCESS_DENIED.
Delete Question
Remove a question from an assessment.DELETE /assessment/:assessmentId/questions/:questionId
Path Parameters
Example Request
Example Response
Error Responses
- 404 – Question not found in this assessment.
code:NOT_FOUND. - 403 – Not allowed to modify this assessment.
code:ACCESS_DENIED.
Auto-Generate Assessment
Create an AI interview assessment and generate its setup and questions automatically from a job or from role/purpose text. How it works- TapTalent uses AI to generate the assessment setup (title, duration, language, skills, evaluation buckets, and CEFR settings) from the role, purpose, and optional job details.
- The assessment is created immediately and returned with
questionCount: 0. - Question generation runs in the background. The number of questions is derived from the interview duration and inferred seniority level:
JUNIOR_MIDroles (entry through mid-level IC): about 3 minutes per questionSENIOR_LEADERSHIProles (senior, lead, manager, director, executive): about 5 minutes per question
- A webhook is sent when questions are ready (see Assessment events).
POST /assessment/auto-generate
Request Body
Provide at least one ofjobId or purpose. When jobId is supplied, role and purpose can be taken from the job if omitted.
*At least one of
jobId or purpose is required.
AI-generated setup
The following fields are determined automatically and included in the response. You do not send them in the request.
Question count (background step) is computed as
round(duration ÷ minutesPerQuestion) with a minimum of 1, using the seniority level inferred during setup.
Request Body Example (from job)
Request Body Example (from role and purpose)
Example Request (from job)
Example Request (from role and purpose)
Example Response
Returns 201 Created immediately. Questions are still being generated in the background.GET /assessment/:assessmentId or wait for the assessment.ready webhook. For a 30-minute junior/mid-level role, expect about 10 questions; for the same duration at senior/leadership level, expect about 6 questions.
Error Responses
- 400 – Neither
jobIdnorpurposeprovided, or validation error (e.g.durationoutside 5–60).code:INVALID_REQUEST. - 404 – Job not found or not owned by your company (when
jobIdis provided).code:NOT_FOUND. - 402 – Insufficient credits.
code:INSUFFICIENT_CREDITS,errorMessage: “Insufficient credits”. - 500 – AI setup or question generation failed.
code:AI_GENERATION_FAILED(when applicable).
Generate Questions for an Assessment
Generate questions for an existing assessment based on job description and skills. Your account must have sufficient credits. A webhook is sent when generation completes (see Assessment events).POST /assessment/:assessmentId/generate-questions
Path Parameters
Request Body
Request Body Example
Example Request
Example Response
Error Responses
- 402 – Insufficient credits.
code:INSUFFICIENT_CREDITS,errorMessage: “Insufficient credits to generate questions”. - 403 – Assessment not found or access denied.
code:ACCESS_DENIED. - 500 – Question generation failed or returned no questions.
code:AI_GENERATION_FAILEDorAI_GENERATION_EMPTY.
Invite Candidate to Assessment
Send an assessment invitation to a candidate by email. You can provide candidate details directly or reference an existing job candidate byjobCandidateId; if you use jobCandidateId, name and email can be filled from the candidate record.
POST /assessment/:assessmentId/invite
Path Parameters
Request Body
*If
jobCandidateId is omitted, firstName, lastName, and emailAddress are all required.
Request Body Example (by email and name)
Request Body Example (by job candidate)
Example Request (by email and name)
Example Request (by job candidate)
Example Response
Error Responses
- 400 – Missing email/name (when not using
jobCandidateId), or invalid/dummy email.code:INVALID_REQUEST. - 400 – Candidate or reviewer already invited.
code:DUPLICATE_INVITE,errorMessage: “Candidate is already invited!” or “Reviewer is already invited!”. - 404 – Assessment or candidate (when
jobCandidateIdused) not found.code:NOT_FOUND. - 403 – Not allowed to invite for this assessment.
code:ACCESS_DENIED.
Bulk Invite Candidates
Invite up to 5,000 candidates to an assessment in a single request. The request is validated and accepted synchronously; invitation emails are then sent in the background. Use the returnedbatchId with Get Bulk Invite Status to fetch per-candidate outcomes, or listen for the assessment.bulk_invite.completed webhook.
Each entry accepts the same fields as Invite Candidate to Assessment, plus an optional externalRef for correlating results with records in your ATS or HRIS—see External reference correlation. To attach an externalRef to a single candidate, send a batch with one entry.
POST /assessment/:assessmentId/invite/bulk
Path Parameters
Request Body
*If
jobCandidateId is omitted, firstName, lastName, and emailAddress are all required for that entry.
Request Body Example
Example Request
Example Response
Returns 202 Accepted. Invitation emails are sent in the background.totalCount is the number of accepted entries; it matches totalCount in Get Bulk Invite Status and the assessment.bulk_invite.completed webhook payload.
Processing semantics
- The request is accepted if the payload is well-formed; individual entries succeed or fail independently (partial success is normal).
- Entries whose candidate is already invited are skipped with
DUPLICATE_INVITE—they do not fail the batch, and no second email is sent. The same applies when the same email appears twice within one request (the first entry wins). - Interview links are emailed to candidates; they are never returned by the API (same as single invite).
- Fetch per-entry outcomes from Get Bulk Invite Status, or wait for the
assessment.bulk_invite.completedwebhook.
Error Responses
- 400 –
candidatesmissing, empty, more than 5,000 entries, or an entry is structurally invalid (e.g. nojobCandidateIdand missing name/email).code:INVALID_REQUEST. No invites are queued. - 404 – Assessment not found.
code:NOT_FOUND. - 403 – Not allowed to invite for this assessment.
code:ACCESS_DENIED.
Get Bulk Invite Status
Retrieve the processing status and per-candidate results for a bulk invite batch.GET /assessment/:assessmentId/invite/bulk/:batchId
Path Parameters
Query Parameters
Example Request
Example Response
Entries are returned in request order.
Error Responses
- 404 – Assessment or batch not found, or batch belongs to another assessment.
code:NOT_FOUND. - 403 – Not allowed to access this assessment.
code:ACCESS_DENIED.
List Assessment Candidates
Get a paginated list of candidates who have taken the assessment (submitted or timed out), with scores and response details.GET /assessment/:assessmentId/candidates
Path Parameters
Query Parameters
Example Request
Example Response
externalRef echoes the reference supplied when the candidate was invited via Bulk Invite Candidates; it is null when none was provided. See External reference correlation.
Error Responses
- 403 – Assessment not found or access denied.
code:ACCESS_DENIED.
Get Result Report (PDF)
Retrieve a download URL for the PDF result report of a completed submission. The report becomes available once scoring has finished for the submission. Recommended flow: listen for theinterview.scoring_completed webhook (it carries the submissionId and your externalRef), then call this endpoint and download the PDF from reportUrl.
GET /assessment/:assessmentId/submissions/:submissionId/report
Path Parameters
Example Request
Example Response
Error Responses
- 409 – Scoring has not completed for this submission yet.
code:REPORT_NOT_READY. Retry after receivinginterview.scoring_completed. - 404 – Assessment or submission not found.
code:NOT_FOUND. - 403 – Not allowed to access this assessment.
code:ACCESS_DENIED.
Get Public Result Link
Retrieve the shareable, public URL for a submission’s result page. Anyone with the link can open it without a TapTalent account. Which sections the page shows (candidate details, AI analysis, interview recording, screening Q&A, proctoring data) is controlled by the assessment’s share configuration, managed in the TapTalent dashboard. Share configuration is not available through this API.GET /assessment/:assessmentId/submissions/:submissionId/share-link
Path Parameters
Example Request
Example Response
interview.scoring_completed.
If no share configuration has been saved for the assessment, the public page shows all sections. Review the assessment’s share configuration in the dashboard before distributing links.
Error Responses
- 404 – Assessment or submission not found.
code:NOT_FOUND. - 403 – Not allowed to access this assessment.
code:ACCESS_DENIED.
Notes
Interview resume behavior
Configure interview resume withresumeAllowed and maxResumeCount when creating or updating an assessment, or when using auto-generate.
Interview closure due to network issues, tab closure, or accidental navigation
- If interview resume is enabled (
resumeAllowed: true), the candidate can resume the interview from the point where they left off. - A candidate can resume only up to the maximum resume count configured in the assessment settings (
maxResumeCount, 1–5 attempts). - If interview resume is disabled (
resumeAllowed: false), scoring is processed immediately once the interview is closed, regardless of the reason. - If interview resume is enabled and the candidate loses network connectivity or closes the tab, scoring is not processed until the candidate either resumes and submits the interview or exhausts the allowed resume attempts.
interview.scoring_completed and interview.ended webhooks are deferred until scoring runs (after the candidate finishes or uses all resume attempts).
External reference correlation
externalRef is an opaque string (max 255 characters) you can attach to each entry when inviting candidates via Bulk Invite Candidates. TapTalent stores it with the invite and echoes it, unmodified, in:
- each entry of Get Bulk Invite Status
- each candidate in List Assessment Candidates
- every
interview.*webhook event for that candidate’s submission
externalRef to a single candidate, send a bulk invite with one entry.
Webhooks
To receive real-time notifications for assessments, configure a webhook URL in your partner settings. Once configured, TapTalent will send POST requests to your endpoint for the following events:
Each webhook payload includes
event, timestamp, companyId, and a data object with event-specific fields (e.g. assessmentId, submissionId, interviewStatus). Respond with a 2xx status so TapTalent does not retry the delivery. For payload details, headers, and retry behavior, see Webhook events..png?fit=max&auto=format&n=lKy84_BssSCy2hcz&q=85&s=ac7c949427cc2893306f6036415f087e)