Skip to main content
POST
Build lesson plan content
Step 3 of 4 in Build a lesson plan. This call starts an async job.

Rules

  • Call this after Get lesson plan alignment returns status: "Completed".
  • Wrap the object in an alignment key: {"alignment": { ... }}. The GET returns it unwrapped, at the top level of data.
  • The duration values of the stages you send must add up to the lesson’s duration_minutes exactly. Otherwise you get 400.
  • Send materials_options and instructional_strategies_options as lists, the same way you received them. Keep only the items the teacher chose.
  • This step runs once per lesson plan. A second call returns 400 unless the first one failed.
The duration check runs before the API checks that step 2 finished. If your durations are wrong you get the duration error first, even when the lesson plan isn’t ready for this step at all.
To drop a stage, leave its key out of instructional_blocks, or send null for it. Its minutes then don’t count toward the total, and no content is written for it: its block comes back as {} in step 3’s response. Sending {} for a stage returns 422, because component_options and duration are required once the key is present.

Next step

Get lesson plan content

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

Authorizations

Authorization
string
header
required

Access token from Get an access token.

Path Parameters

lesson_plan_id
string<uuid>
required

The lesson plan id returned by Start a lesson plan.

Example:

"7d2f1b90-4c6a-4f3e-b1d7-9a5e2c8f0b34"

Body

application/json
alignment
object
required

Materials, teaching strategies, and the six-stage timeline for the lesson.

Response

The job was queued. Poll Get lesson plan content or wait for the lesson_plan_instructional_framework_builder webhook.

detail
object[]