Skip to content

You are viewing documentation for Instruqt 2.0 Labs which is in Beta currently. Official release date - 29 September, 2026. For Tracks documentation, please visit docs.instruqt.com.

Payloads


FieldAlways?TypeDescription
typestringThe event type, for example lab.session_ready
session_idstringThe lab session. The same id appears on the session’s sandbox events, so every event in a session joins on this field
team_idstringThe Instruqt team the session belongs to
user_idstringThe user running the session
lab_idstringThe lab being run
timestampstringRFC 3339. When Instruqt received the event, not when the transition happened. Do not compute durations from it
hot_startbooleanWhether the sandbox came from a pre-provisioned pool. A session with hot_start set to true sends no sandbox provisioning events
lab_slugstringThe lab’s URL identifier. Left out when the lab’s slug cannot be resolved
user_typestringHow the actor is classified: instruqt, member, developer, external, or platform. Fixed at session start and not updated afterwards
modestringWhere the session runs: embed or platform. Self-reported by the client, so descriptive only — never use it for billing or as a trust signal
invite_idstringThe invite the session came from, if any. Matches invite_id on invite.claimed
custom_parametersobjectYour own runtime parameters for this session, forwarded as key/value strings. Left out when there are none
EventAddsNotes
lab.session_stoppedreasonstring, optional. Why the session ended: user, idle, or expired
lab.session_failederrorstring, optional. Human-readable detail, for diagnostics rather than branching
lab.sandbox_failederror, error_typeBoth string, both optional. See the error_type glossary
lab.sandbox_provisionedcpus, memoryBoth number. The sandbox’s vCPU count, and its memory in megabytes
FieldOnAlways?TypeDescription
chapter_idAll progress eventsstringThe chapter, stable across sessions of the same lab version
page_idPage, task, and quiz eventsstringThe page, stable across sessions of the same lab version
activity_idTask and quiz eventsstringThe task or quiz, as addressed in the lab definition
activity_typeTask and quiz eventsstringtask or quiz — which kind of activity activity_id names
chapter_indexAll progress eventsnumberPosition of the chapter in the lab, starting at 1
total_chaptersAll progress eventsnumberHow many chapters the lab has
chapter_titleAll progress eventsstringThe chapter’s title, as its author wrote it
page_indexPage, task, and quiz eventsnumberPosition of the page within its chapter, starting at 1
total_pagesPage, task, and quiz eventsnumberHow many pages that chapter has
page_titlePage, task, and quiz eventsstringThe page’s title, as its author wrote it
activity_indexTask and quiz eventsnumberPosition of the activity among all the lab’s activities, counting tasks and quizzes together, starting at 1
total_activitiesTask and quiz eventsnumberHow many activities the lab has in total, tasks and quizzes together
ValueMeaning
sandbox_error_type_creation_failedThe sandbox itself could not be created or started — its compute, cloud accounts, or secrets. This value does not separate an Instruqt infrastructure fault from a lab configuration that cannot produce a working sandbox, so read error rather than branching on it
sandbox_error_type_parsing_failedThe lab’s configuration could not be parsed
sandbox_error_type_initialization_failedThe sandbox was created but could not be initialised
sandbox_error_type_resource_creation_failedA resource inside the sandbox — a container, a VM, a Terraform run — failed to be created
sandbox_error_type_download_failedSomething the sandbox had to download could not be fetched
sandbox_error_type_resource_destruction_failedA resource inside the sandbox failed to be torn down
sandbox_error_type_unspecifiedThe failure was not classified
FieldAlways?TypeDescription
typestringinvite.claimed
invite_idstringThe invite that was claimed
claim_idstringThis particular claim of the invite
user_idstringThe user who claimed it
team_idstringThe team the invite belongs to
team_slugstringThat team’s URL identifier
timestampstringRFC 3339
custom_parametersobjectThe invite’s custom parameters. Left out when there are none
  • Draft and workspace sessions
  • Automated lab test runs
{
"type": "lab.session_ready",
"session_id": "cs-8f2a41d0",
"team_id": "instruqt-demo",
"user_id": "u-91ab77",
"user_type": "external",
"lab_id": "6b1f0c2e-4a77-4c19-9b3e-2d51aa0f7c88",
"lab_slug": "kubernetes-basics",
"mode": "platform",
"invite_id": "inv-4c81ab",
"custom_parameters": { "cohort": "spring-2026" },
"hot_start": false,
"timestamp": "2026-08-25T09:14:03Z"
}
{
"type": "lab.sandbox_provisioned",
"session_id": "cs-8f2a41d0",
"team_id": "instruqt-demo",
"user_id": "u-91ab77",
"lab_id": "6b1f0c2e-4a77-4c19-9b3e-2d51aa0f7c88",
"lab_slug": "kubernetes-basics",
"cpus": 4,
"memory": 8192,
"hot_start": false,
"timestamp": "2026-08-25T09:13:58Z"
}
{
"type": "lab.sandbox_failed",
"session_id": "cs-3b7e0c11",
"team_id": "instruqt-demo",
"user_id": "u-91ab77",
"lab_id": "6b1f0c2e-4a77-4c19-9b3e-2d51aa0f7c88",
"lab_slug": "kubernetes-basics",
"error": "sandbox creation timed out",
"error_type": "sandbox_error_type_creation_failed",
"hot_start": false,
"timestamp": "2026-08-25T09:16:22Z"
}
{
"type": "lab.task_completed",
"session_id": "cs-8f2a41d0",
"team_id": "instruqt-demo",
"user_id": "u-91ab77",
"lab_id": "6b1f0c2e-4a77-4c19-9b3e-2d51aa0f7c88",
"lab_slug": "kubernetes-basics",
"activity_id": "resource.task.deploy_the_app",
"activity_type": "task",
"activity_index": 3,
"total_activities": 12,
"page_id": "deploy-the-app",
"page_index": 2,
"total_pages": 4,
"page_title": "Deploy the app",
"chapter_id": "introduction",
"chapter_index": 1,
"total_chapters": 3,
"chapter_title": "Introduction",
"hot_start": false,
"timestamp": "2026-08-25T09:22:41Z"
}
{
"type": "lab.session_completed",
"session_id": "cs-8f2a41d0",
"team_id": "instruqt-demo",
"user_id": "u-91ab77",
"lab_id": "6b1f0c2e-4a77-4c19-9b3e-2d51aa0f7c88",
"lab_slug": "kubernetes-basics",
"hot_start": false,
"timestamp": "2026-08-25T09:41:07Z"
}
{
"type": "invite.claimed",
"invite_id": "inv-4c81ab",
"claim_id": "clm-77d0e2",
"user_id": "u-91ab77",
"team_id": "instruqt-demo",
"team_slug": "instruqt-demo",
"custom_parameters": { "cohort": "spring-2026" },
"timestamp": "2026-08-25T09:13:44Z"
}