Curriculum
Read-only metadata about the training catalog your company sees: the topic and subtopic tree, and every published lesson with its OSHA standard citations. Use it to mirror the catalog into an LMS, map lessons to your own compliance matrix, or label completion data from the reporting API. Results cover the global curated library plus any content your company authored itself.
# Base URL (all paths below are relative to it) https://toolboxminute.com/api Authorization: Bearer tbm_live_•••• # or X-Api-Key: tbm_live_••••
Topics
The curriculum is organized as topics (broad subject areas) containing subtopics. Each subtopic is a one-week block of daily lessons; completing all of a subtopic's lessons earns the employee that subtopic's badge.
| Query parameter | Type | Default | Notes |
|---|---|---|---|
language | string | "en" | BCP-47 language of the tree to return, e.g. en or es. |
GET /api/v1/curriculum/topics?language=en Host: toolboxminute.com X-Api-Key: tbm_test_wWlSr6q-BPXUN67BPbzyVhR703QGmSlk34EEWGqRBtA # 200 OK (array of topics, ordered by sortOrder) [ { "id": "4a7d9c2e-1f68-4b35-8e0a-c9d2417b6f83", "name": "Powered Equipment", "language": "en", "sortOrder": 3, "subTopics": [ { "id": "b81c5f0a-6d24-49e7-a3b9-5e78d0c14f26", "name": "Forklift Pedestrian Safety", "expectedLessonCount": 5, "sortOrder": 1 }, { "id": "7e3a92d4-0c51-4f68-b7ad-19f4c6e28b05", "name": "Pallet Jack Basics", "expectedLessonCount": 5, "sortOrder": 2 } ] } ]
| Field | Type | Notes |
|---|---|---|
id | uuid | Use as the topicId / subTopicId filter on the lessons endpoint. |
name | string | |
language | string | Topic level only. |
sortOrder | integer | Display order within the tree. |
subTopics | array | The topic's one-week blocks, ordered by sortOrder. |
expectedLessonCount | integer | Subtopic level only: how many lessons the week is expected to contain (the badge denominator). |
Lessons
The published lesson catalog. Only published lessons appear: drafts and lessons awaiting a video never show up here, so the catalog always matches what employees can actually be scheduled to watch.
| Query parameter | Type | Default | Notes |
|---|---|---|---|
topicId | uuid | Limit to one topic (from the topics endpoint). | |
subTopicId | uuid | Limit to one subtopic week. | |
language | string | all languages | e.g. en or es; omit to get every language. |
page | integer | 1 | 1-based page number. |
pageSize | integer | 100 | Capped at 500. |
GET /api/v1/curriculum/lessons?subTopicId=b81c5f0a-6d24-49e7-a3b9-5e78d0c14f26&language=en Host: toolboxminute.com X-Api-Key: tbm_test_wWlSr6q-BPXUN67BPbzyVhR703QGmSlk34EEWGqRBtA # 200 OK { "items": [ { "id": "d2c81f4b-935e-47a0-8b6d-0e517a9c3f42", "title": "Sharing Aisles With Forklifts", "description": "Where pedestrians get hit, and the three habits that keep you out of a truck's blind spots.", "language": "en", "contentKind": "DailyMinute", "videoDurationSeconds": 78, "topic": "Powered Equipment", "subTopic": "Forklift Pedestrian Safety", "standards": [ { "code": "29 CFR 1910.178(l)", "title": "Powered industrial trucks - operator training" } ], "tags": ["forklift", "pedestrians", "warehouse"] } ], "page": 1, "pageSize": 100, "total": 5 }
| Field | Type | Notes |
|---|---|---|
id | uuid | Stable lesson id; matches the lesson ids used elsewhere in the platform. |
title | string | |
description | string or null | The lesson's catalog blurb. |
language | string | BCP-47, e.g. "en", "es". |
contentKind | string | "DailyMinute", "ResourceVideo", or "Reference". |
videoDurationSeconds | integer or null | null when the lesson has no published video version yet. |
topic | string or null | Topic name (plain names, no ids). |
subTopic | string or null | Subtopic name. |
standards | array | OSHA/regulatory citations the lesson teaches to; see below. |
tags | array of strings | Free-form search facets. |
Standard citations
Each entry in standards is one regulatory citation with a code
(e.g. "29 CFR 1910.178(l)") and an optional human-readable title.
Codes are the natural join key against your own compliance matrix: group completions by
standard to show coverage of the OSHA subparts you care about.
Translated lessons
Spanish lessons are first-class catalog entries translated from an English original. They
inherit the topic and subTopic placement of the English lesson they
came from, and the topicId/subTopicId filters follow that same
mapping, so filtering a subtopic returns its lessons in every requested language.
Try it in the sandbox
The public sandbox key
(tbm_test_wWlSr6q-BPXUN67BPbzyVhR703QGmSlk34EEWGqRBtA, company "Acme Logistics")
sees the same global curated library as a real company, so both endpoints return live catalog
data without any setup. The sandbox key is limited to 60 requests/minute per IP.