Skip to main content
ClassTrack listens to an audio recording of a lesson and reports on the teaching: a score for every criterion in your rubric, observations backed by quotes, and an action plan for the teacher. It takes two API calls. This guide is for developers. For a non-technical overview, see Classroom Observation features.
The first call starts a background job that transcribes the recording and then scores it. How long it takes depends on the length of the recording. The wait_for helper below polls until the result arrives.

Set up

You need an access token. If you don’t have one, follow the Quickstart. You also need a rubric with criteria on it, because its criteria become the categories ClassTrack scores. See Create a rubric.
ClassTrack takes the token without the Bearer prefix. This service reads the whole Authorization header as the token. Sending Bearer YOUR_ACCESS_TOKEN returns 401 Unauthorized User. Every other CrazyGoldFish API expects the prefix, so keep the two headers separate in your code.
The GET endpoint returns 200 while the analysis is still running, and 200 again when it has finished. The helper above branches on the body, not the status code.

Step 1: Start the analysis

Upload the recording to storage of your own first, then send its link with the class details. The link must start with https://, and its path must end with .mp3.
Get BOARD_ID, GRADE_ID, and SUBJECT_ID from List boards, List grades, and List subjects. RUBRIC_ID is a rubric UUID from List rubrics, or its integer ID.
The status code is 200, not 201, and the field is message, not msg. Save id: it is the only way to read the result.

Step 2: Get the analysis

Poll the analysis ID until the result arrives.
Trimmed to one rubric criterion and one insight. A real response has one rubric_evaluation entry per criterion in your rubric.
extracted_transcript is the recognized speech as one string, in lexical form, so it has no punctuation or capitalization.

Good to know

Register a webhook for class_track_analysis, then fetch the analysis when the event arrives. See Async jobs and webhooks.
Payload
id is the analysis ID, and status is Completed or Failed. The event only goes to the API user who started the analysis, so register the webhook with the same user.Keep polling as a fallback. If the recording can’t be transcribed, the analysis is marked Failed without the event being sent.

ClassTrack API reference

Every field, response, and error.

Classroom Observation

What teachers and coaches see, without the code.