Skip to main content
POST
Step 1 of 4 in Build a lesson plan. This call starts an async job and returns the lesson plan id. Save it: every later call uses it.

Rules

  • Send exactly one source: topic, documents, or audio. Sending none or sending two returns 400.
  • duration_minutes must be at least 30 and at most 90.
  • documents: up to 4 images, .jpg, .jpeg, or .png, 5 MB each. audio: one .mp3, 5 MB.
  • Send the fields as multipart/form-data, not JSON.
  • section is stored and returned unchanged. It doesn’t affect the lesson plan.
Starting a lesson plan has a daily limit per account. Requests the API then rejects with 400 still count toward it, so check the rules above before you call. The count resets at 00:01 server time. No other lesson plan call is rate limited.
With topic, the lesson is grounded in CrazyGoldFish’s indexed textbook content for that board, grade, and subject. If none exists, the job fails with No content retrieved. Send documents to use your own material instead.
With audio, the recording is transcribed first, so the metadata step takes noticeably longer to appear. Get lesson plan metadata keeps returning 404 until transcription finishes.

Next step

Get lesson plan metadata

Poll until status is Completed, or wait for the lesson_plan_initialize_metadata webhook.

Authorizations

Authorization
string
header
required

Access token from Get an access token.

Body

multipart/form-data
board
string<uuid>
required

Board ID from List boards.

Example:

"baf36573-d049-4636-9c4b-bc9cda6270fe"

grade
string<uuid>
required

Grade ID from List grades.

Example:

"28820b1a-34e1-4003-b5bd-96455ca2c6d8"

subject
string<uuid>
required

Subject ID from List subjects.

Example:

"6dd7ebda-1bc5-4c01-8649-372579189073"

duration_minutes
integer
required

Length of the lesson in minutes. At least 30 and at most 90.

Required range: 30 <= x <= 90
Example:

45

section
string | null

Class section, for your own records. Returned unchanged.

Example:

"A"

topic
string

Topic to build the lesson on. Use this or documents or audio.

Example:

"Magnetic Effects of Electric Current"

documents
file[]

Up to 4 images of the source material (.jpg, .jpeg, or .png, 5 MB each). Use this or topic or audio.

audio
file

One .mp3 recording, up to 5 MB. The API transcribes it first, so the metadata step takes longer to appear. Use this or topic or documents.

meta_data
string

Optional JSON object with your own reference fields, such as a teacher ID. Returned by List lesson plans and usable as a listing filter.

Example:

"{\"teacher_id\": \"T-1042\"}"

Response

The job was queued. Poll Get lesson plan metadata or wait for the lesson_plan_initialize_metadata webhook.

detail
object[]