Base URL
https://cool.jobmojito.com/functions/v1/job-interview-create.
Conventions
- Method: all endpoints use
POST. - Auth: every request needs
Authorization: Bearer <token>- see Authentication. - Request body:
application/json(one endpoint, the binary resume upload, usesmultipart/form-data). - Response body:
application/json. - IDs: resources are identified by UUIDs.
Environments
Resources (interviews, results, webhooks) are scoped to an environment so you can keep test data separate from live data. Your token determines the environment it operates in. Webhooks are also configured per environment, so a staging endpoint never receives production events. Talk to your account contact if you need a separate test environment.Errors
When a request fails, you get a non-2xx status and a JSON error envelope:error- a human-readable message.name- present for field-level validation problems; the name of the offending field.
Status codes
| Status | Meaning |
|---|---|
200 | Success. |
401 | Missing or invalid authentication. |
403 | Authenticated but not permitted. |
404 | Resource not found. |
409 | Conflict - the request can’t be applied in the current state. |
422 | Validation error (a field is missing or invalid). |
500 | Unexpected server error. |
Batch endpoints return per-row results
Endpoints that act on a list -invite-users and job-interview-register-users - process each row independently and always return HTTP 200 with a results array. A bad row doesn’t fail the whole request; instead that row carries an error while the others succeed:
result field rather than relying on the HTTP status alone.
Credits
Some actions consume your account’s credits - for example creating an interview, running a pre-screen, or generating a PDF report. A few options add cost on top (e.g. translating a report to another language, or enabling full-session recording). Your current balance and usage are visible in the admin. See How credits work for per-action costs, plans and top-ups.OpenAPI specification & MCP
The entire API is described by a machine-readable OpenAPI 3.1 document, which powers this reference and can be imported into your own tooling:Endpoints
Interviews & assessments
| Endpoint | Purpose |
|---|---|
POST /job-interview-create | Create a new interview (AI-generated questions from a job description). |
POST /job-interview-create-from-array | Create an interview from your own array of questions. |
POST /job-interview-create-for-candidate-with-token | Create an interview for a candidate and get a ready-to-use access URL. |
POST /job-interview-get | Fetch an interview definition. |
POST /job-interview-set-state | Change an interview’s lifecycle state and/or manage its iframe embed key. |
POST /job-interview-token | Generate a signed interview URL. |
POST /job-interview-result-request-another-attempt | Allow a candidate another attempt. |
Candidates & invitations
| Endpoint | Purpose |
|---|---|
POST /invite-users | Invite users / candidates (batch, per-row results). |
POST /job-interview-register-users | Register candidates for an interview and get their links (batch, per-row results). |
Results & reports
| Endpoint | Purpose |
|---|---|
POST /job-interview-details | Get an interview result with full transcript and AI analysis. |
POST /job-interview-pdf | Generate a branded PDF / HTML / JSON interview report. |
Pre-screening
| Endpoint | Purpose |
|---|---|
POST /pre-screening-create | Create or update a pre-screening position. |
POST /job-interview-pre-screening-api-resume-text | Pre-screen a candidate from a plaintext resume. |
POST /job-interview-pre-screening-api-resume-binary | Pre-screen a candidate from an uploaded resume file. |
Knowledge base
| Endpoint | Purpose |
|---|---|
POST /knowledge-base-document-upload | Upload a document the AI can draw questions/context from. |