API reference

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_••••
Endpoints
GET/v1/curriculum/topics
The topic tree for one language: topics with their subtopic weeks.
GET/v1/curriculum/lessons
The published lesson catalog, filterable by topic, subtopic, and language (paged).

Topics

GET/v1/curriculum/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 parameterTypeDefaultNotes
languagestring"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
      }
    ]
  }
]
FieldTypeNotes
iduuidUse as the topicId / subTopicId filter on the lessons endpoint.
namestring
languagestringTopic level only.
sortOrderintegerDisplay order within the tree.
subTopicsarrayThe topic's one-week blocks, ordered by sortOrder.
expectedLessonCountintegerSubtopic level only: how many lessons the week is expected to contain (the badge denominator).

Lessons

GET/v1/curriculum/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 parameterTypeDefaultNotes
topicIduuidLimit to one topic (from the topics endpoint).
subTopicIduuidLimit to one subtopic week.
languagestringall languagese.g. en or es; omit to get every language.
pageinteger11-based page number.
pageSizeinteger100Capped 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
}
FieldTypeNotes
iduuidStable lesson id; matches the lesson ids used elsewhere in the platform.
titlestring
descriptionstring or nullThe lesson's catalog blurb.
languagestringBCP-47, e.g. "en", "es".
contentKindstring"DailyMinute", "ResourceVideo", or "Reference".
videoDurationSecondsinteger or nullnull when the lesson has no published video version yet.
topicstring or nullTopic name (plain names, no ids).
subTopicstring or nullSubtopic name.
standardsarrayOSHA/regulatory citations the lesson teaches to; see below.
tagsarray of stringsFree-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.