Send assessment invites, schedule live interviews and read results from your own backend over the Litmus REST API.
REST API
Use the Litmus API to invite candidates, schedule live interviews, and read assessment results from your backend or applicant tracking system.
Base URL: https://litmushiring.com/api/v1
Authenticate with an organization API key in Authorization: Bearer $LITMUS_API_KEY.
Requests and responses use JSON. Include Content-Type: application/json when
sending a request body. See Authentication and scopes.
Choose a workflow
| Your goal | Start here |
|---|---|
| Send a take-home assessment | Invites |
| Let a candidate choose a live interview time | Live interview invitations |
| Have your automation book an interview | Schedule a live interview |
| Use your own calendar and send a Litmus candidate link | External scheduling |
| Keep another system synchronized | Synchronize interview changes |
| Retrieve a candidate's result | Submissions |
An assessment is an exercise delivered as a take-home, live interview, or work trial. An invite gives the candidate access to the flow configured for that assessment. For a live interview, it asks the candidate to choose a time. An interview booking reserves the time your integration selects.
The same key and scopes also work with the MCP server. Each
interface exposes its own operations; REST pipeline reads return rounds,
while MCP get_pipeline_status returns candidate counts by stage.
Endpoints
Send assessments
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /roles | List your roles and cohorts. | roles:read |
GET | /postings/{id}/pipeline | Read a role's rounds and their ids. | roles:read or interviews:read |
POST | /invites | Invite a candidate to an assessment. | invites:write |
Read results
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /submissions/{id} | Read a submission's score and decision. | submissions:read |
Schedule live interviews
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /postings/{id}/interviewers | Read all interviewers for a role. | interviews:read |
PUT | /postings/{id}/interviewers | Replace all interviewers for a role. | interviews:write |
GET | /postings/{id}/slots | Find available interview times. | interviews:read |
POST | /postings/{id}/slots | Add interviewer availability. | interviews:write |
DELETE | /postings/{id}/slots | Remove interviewer availability. | interviews:write |
GET | /interviews | List live interviews. | interviews:read |
POST | /interviews | Book a live interview. | interviews:write |
GET | /interviews/{id} | Read one interview. | interviews:read |
PATCH | /interviews/{id} | Change the assigned interviewer. | interviews:write |
DELETE | /interviews/{id} | Cancel an interview. | interviews:write |
Also see
- Errors and retries: status codes, booking conflicts, retry limits, and API compatibility.
- Synchronize interview changes: poll stored updates and reconcile time-based status changes.
- Audit log: inspect requests made by an integration.
These reference pages are the current public endpoint contract. A machine-readable OpenAPI schema is not published yet.
