Skip to main content
GET
Get lesson plan content
Step 3 of 4 in Build a lesson plan. Poll every 5 seconds until status is Completed.
Unlike the other lesson plan GET endpoints, this one returns HTTP 200 when the step failed, with data.status set to Failed. Always read data.status, and stop polling on Failed instead of waiting for a 400.

Reading the response

content_generation holds one entry per stage. The six stages are written in parallel, so entries appear one by one while status is still In Progress. Each entry has a components list. A component is one activity, with component_name, duration_minutes, materials_used, implementation_script (what the teacher says and does), formative_questions, expected_responses, and teacher_notes. A stage you left out of step 3 comes back as {}.
alignment comes back with materials_options and instructional_strategies_options wrapped in one extra array, because the API wraps the list you sent again. Read alignment.materials_options[0][0] here, but alignment.materials_options[0] in Get lesson plan alignment. instructional_blocks is unchanged.
A 404 saying Instructional framework builder step not found for this lesson plan. means no worker has picked the job up yet. Keep polling.

Next step

Add lesson plan enrichment blocks

Optional: add sections such as differentiation or real-life connections.

Send lesson plan feedback

Optional: record what the teacher thought of the lesson plan.

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"

Response

The step is In Progress, Completed, or Failed. Stages fill in one by one, so check status before reading content_generation.

data
object