Assess API · v1
Assessments
Retrieve your assessments to build custom invitation flows or ATS integrations. You can filter by status and search by title.
GET
https://praxicraft.com/api/v1/public/assessments/assessments:readAuth: Bearer ct_live_…
List Assessments
Returns assessments for your organization. Defaults to `active` only. Use the `status` param to list drafts or archived assessments.
Query / Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| status | string | optional | Filter by status: active | draft | archived (default: active) |
| search | string | optional | Case-insensitive substring match on assessment title |
| cursor | string | optional | Opaque pagination cursor — pass the value from `next` to fetch the next page |
| page_size | integer | optional | Results per page, max 100 (default: 20) |
Response Fields
| Field | Type | Description |
|---|---|---|
| id | uuid | Assessment UUID |
| title | string | Assessment title |
| slug | string | URL-safe identifier used in all invite endpoints |
| description | string | Candidate-visible description |
| status | string | active | draft | archived |
| case_count | integer | Number of technical tasks in this assessment |
| time_limit_minutes | integer|null | Per-session time cap, null = no limit |
| passing_score | integer | Minimum percentage required to pass |
| invitation_count | integer | Total candidates invited |
| enforce_fullscreen | boolean | Whether fullscreen mode is enforced during the assessment |
| copy_paste_disabled | boolean | Whether copy/paste is blocked during the assessment |
| created_at | ISO 8601 | When the assessment was created |
| updated_at | ISO 8601 | When the assessment was last modified |
| meta | object | Plan quota info: { plan, invite_limit, invites_used, invites_remaining } |
HTTP
GET /api/v1/public/assessments/?status=active&search=backend Authorization: Bearer ct_live_xxxxxxxxxxxxxxxx
Example Response
JSON
{
"next": "https://app.praxicraft.io/api/v1/public/assessments/?cursor=cD0yMDI1LTA0...",
"previous": null,
"results": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"title": "Senior Backend Engineer Screen",
"slug": "senior-backend-screen",
"description": "A 3-task technical screen covering SQL, Python, and system design.",
"status": "active",
"case_count": 3,
"time_limit_minutes": 90,
"passing_score": 70,
"invitation_count": 12,
"enforce_fullscreen": true,
"copy_paste_disabled": false,
"created_at": "2025-03-01T10:00:00Z",
"updated_at": "2025-03-20T14:30:00Z"
}
],
"meta": {
"plan": "starter",
"invite_limit": 100,
"invites_used": 12,
"invites_remaining": 88
}
}GET
https://praxicraft.com/api/v1/public/assessments/:slug/assessments:readAuth: Bearer ct_live_…
Get Assessment Detail
Retrieves full configuration for a single assessment. This endpoint returns the assessment settings and passing threshold, but excludes the list of tasks which are available via the sub-resource endpoint.
Query / Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Assessment slug from the list endpoint |
Response Fields
| Field | Type | Description |
|---|---|---|
| id | uuid | Assessment UUID |
| slug | string | URL-safe identifier |
| title | string | Assessment title |
| description | string | Candidate-visible description |
| status | string | active | draft | archived |
| time_limit_minutes | integer|null | Session time cap in minutes |
| passing_score | integer | Minimum score percentage to pass |
| case_count | integer | Number of technical tasks |
| invitation_count | integer | Total candidates invited to this assessment |
| enforce_fullscreen | boolean | Whether fullscreen mode is enforced |
| copy_paste_disabled | boolean | Whether copy/paste is blocked |
| created_at | ISO 8601 | Creation timestamp |
| updated_at | ISO 8601 | Last modified timestamp |
HTTP
GET /api/v1/public/assessments/senior-backend-screen/ Authorization: Bearer ct_live_xxxxxxxxxxxxxxxx
Example Response
JSON
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"slug": "senior-backend-screen",
"title": "Senior Backend Engineer Screen",
"description": "A 3-task technical screen covering SQL, Python, and system design.",
"status": "active",
"time_limit_minutes": 90,
"passing_score": 70,
"case_count": 3,
"invitation_count": 12,
"enforce_fullscreen": true,
"copy_paste_disabled": false,
"created_at": "2025-03-01T10:00:00Z",
"updated_at": "2025-03-20T14:30:00Z"
}GET
https://praxicraft.com/api/v1/public/assessments/:slug/cases/assessments:readAuth: Bearer ct_live_…
List Assessment Tasks
Returns the list of platform or custom technical tasks attached to a specific assessment.
Query / Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Assessment slug |
| cursor | string | optional | Opaque pagination cursor — pass the value from `next` to fetch the next page |
| page_size | integer | optional | Results per page, max 100 (default: 20) |
Response Fields
| Field | Type | Description |
|---|---|---|
| id | uuid | Task UUID |
| title | string | Task title |
| description | string | Task description shown to the candidate |
| type | string | platform | org (source of the task) |
| case_type | string | coding | sql | text | mcq |
| difficulty | string | easy | medium | hard |
| order | integer | Display sequence in the assessment |
| points | integer | Score weight of this task |
Example Response
JSON
{
"next": null,
"previous": null,
"results": [
{
"id": "c1...",
"title": "SQL Join Master",
"description": "Write an optimised query using window functions to rank candidates by score.",
"type": "platform",
"case_type": "sql",
"difficulty": "medium",
"order": 0,
"points": 100
}
]
}