Build lesson plan content
Send the chosen materials, strategies, and stage durations for a lesson plan, and start writing the teaching script for each stage.
POST
/
lesson-plan
/
v1
/
instructional-framework-builder
/
{lesson_plan_id}
Build lesson plan content
curl --request POST \
--url https://api.crazygoldfish.com/lesson-plan/v1/instructional-framework-builder/{lesson_plan_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"alignment": {
"materials_options": [
{
"ai_recommendations": [
{
"name": "Bar magnets",
"description": "Two bar magnets per group of four students"
},
{
"name": "Iron filings and a sheet of paper",
"description": "To make the field pattern visible"
}
],
"additional_recommendations": [
{
"name": "Plotting compass",
"description": "To trace the direction of the field line by line"
}
]
}
],
"instructional_strategies_options": [
{
"ai_recommendations": [
{
"name": "Hands-on inquiry",
"description": "Students build the field pattern before it is named"
},
{
"name": "Think-pair-share",
"description": "Students compare their field sketches in pairs"
}
],
"additional_recommendations": []
}
],
"instructional_blocks": {
"introduction": {
"component_options": [
{
"name": "Magnet hook",
"description": "Ask why a compass needle moves near a wire"
}
],
"formative_questions": [
"What do you already know about magnets?"
],
"duration": 5
},
"development": {
"component_options": [
{
"name": "Iron filings demonstration",
"description": "Build the field pattern of a bar magnet"
},
{
"name": "Right-hand thumb rule",
"description": "Derive the field direction around a straight wire"
}
],
"formative_questions": [
"Where are the field lines closest together?"
],
"duration": 15
},
"guided_practice": {
"component_options": [
{
"name": "Guided sketching",
"description": "Draw field lines for two magnet arrangements together"
}
],
"formative_questions": [
"Why can two field lines never cross?"
],
"duration": 10
},
"independent_practice": {
"component_options": [
{
"name": "Worksheet task",
"description": "Students predict the field of a solenoid on their own"
}
],
"formative_questions": [
"Which end of the solenoid behaves like a north pole?"
],
"duration": 5
},
"closure": {
"component_options": [
{
"name": "Exit ticket",
"description": "Each student states one property of field lines"
}
],
"formative_questions": [
"What is one thing you would explain to a friend?"
],
"duration": 5
},
"summative_assessment": {
"component_options": [
{
"name": "Short quiz",
"description": "Three questions on field direction and strength"
}
],
"formative_questions": [
"Can you justify your answer with a rule?"
],
"duration": 5
}
}
}
}
'import requests
url = "https://api.crazygoldfish.com/lesson-plan/v1/instructional-framework-builder/{lesson_plan_id}"
payload = { "alignment": {
"materials_options": [
{
"ai_recommendations": [
{
"name": "Bar magnets",
"description": "Two bar magnets per group of four students"
},
{
"name": "Iron filings and a sheet of paper",
"description": "To make the field pattern visible"
}
],
"additional_recommendations": [
{
"name": "Plotting compass",
"description": "To trace the direction of the field line by line"
}
]
}
],
"instructional_strategies_options": [
{
"ai_recommendations": [
{
"name": "Hands-on inquiry",
"description": "Students build the field pattern before it is named"
},
{
"name": "Think-pair-share",
"description": "Students compare their field sketches in pairs"
}
],
"additional_recommendations": []
}
],
"instructional_blocks": {
"introduction": {
"component_options": [
{
"name": "Magnet hook",
"description": "Ask why a compass needle moves near a wire"
}
],
"formative_questions": ["What do you already know about magnets?"],
"duration": 5
},
"development": {
"component_options": [
{
"name": "Iron filings demonstration",
"description": "Build the field pattern of a bar magnet"
},
{
"name": "Right-hand thumb rule",
"description": "Derive the field direction around a straight wire"
}
],
"formative_questions": ["Where are the field lines closest together?"],
"duration": 15
},
"guided_practice": {
"component_options": [
{
"name": "Guided sketching",
"description": "Draw field lines for two magnet arrangements together"
}
],
"formative_questions": ["Why can two field lines never cross?"],
"duration": 10
},
"independent_practice": {
"component_options": [
{
"name": "Worksheet task",
"description": "Students predict the field of a solenoid on their own"
}
],
"formative_questions": ["Which end of the solenoid behaves like a north pole?"],
"duration": 5
},
"closure": {
"component_options": [
{
"name": "Exit ticket",
"description": "Each student states one property of field lines"
}
],
"formative_questions": ["What is one thing you would explain to a friend?"],
"duration": 5
},
"summative_assessment": {
"component_options": [
{
"name": "Short quiz",
"description": "Three questions on field direction and strength"
}
],
"formative_questions": ["Can you justify your answer with a rule?"],
"duration": 5
}
}
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
alignment: {
materials_options: [
{
ai_recommendations: [
{name: 'Bar magnets', description: 'Two bar magnets per group of four students'},
{
name: 'Iron filings and a sheet of paper',
description: 'To make the field pattern visible'
}
],
additional_recommendations: [
{
name: 'Plotting compass',
description: 'To trace the direction of the field line by line'
}
]
}
],
instructional_strategies_options: [
{
ai_recommendations: [
{
name: 'Hands-on inquiry',
description: 'Students build the field pattern before it is named'
},
{
name: 'Think-pair-share',
description: 'Students compare their field sketches in pairs'
}
],
additional_recommendations: []
}
],
instructional_blocks: {
introduction: {
component_options: [
{name: 'Magnet hook', description: 'Ask why a compass needle moves near a wire'}
],
formative_questions: ['What do you already know about magnets?'],
duration: 5
},
development: {
component_options: [
{
name: 'Iron filings demonstration',
description: 'Build the field pattern of a bar magnet'
},
{
name: 'Right-hand thumb rule',
description: 'Derive the field direction around a straight wire'
}
],
formative_questions: ['Where are the field lines closest together?'],
duration: 15
},
guided_practice: {
component_options: [
{
name: 'Guided sketching',
description: 'Draw field lines for two magnet arrangements together'
}
],
formative_questions: ['Why can two field lines never cross?'],
duration: 10
},
independent_practice: {
component_options: [
{
name: 'Worksheet task',
description: 'Students predict the field of a solenoid on their own'
}
],
formative_questions: ['Which end of the solenoid behaves like a north pole?'],
duration: 5
},
closure: {
component_options: [
{
name: 'Exit ticket',
description: 'Each student states one property of field lines'
}
],
formative_questions: ['What is one thing you would explain to a friend?'],
duration: 5
},
summative_assessment: {
component_options: [
{
name: 'Short quiz',
description: 'Three questions on field direction and strength'
}
],
formative_questions: ['Can you justify your answer with a rule?'],
duration: 5
}
}
}
})
};
fetch('https://api.crazygoldfish.com/lesson-plan/v1/instructional-framework-builder/{lesson_plan_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"id": "7d2f1b90-4c6a-4f3e-b1d7-9a5e2c8f0b34",
"message": "Instructional framework builder initiated successfully."
}
]
}
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
alignmentkey:{"alignment": { ... }}. The GET returns it unwrapped, at the top level ofdata. - The
durationvalues of the stages you send must add up to the lesson’sduration_minutesexactly. Otherwise you get400. - Send
materials_optionsandinstructional_strategies_optionsas 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
400unless 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
Access token from Get an access token.
Path Parameters
The lesson plan id returned by Start a lesson plan.
Example:
"7d2f1b90-4c6a-4f3e-b1d7-9a5e2c8f0b34"
Body
application/json
Materials, teaching strategies, and the six-stage timeline for the lesson.
Show child attributes
Show child attributes
Response
The job was queued. Poll Get lesson plan content or wait for the lesson_plan_instructional_framework_builder webhook.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
Build lesson plan content
curl --request POST \
--url https://api.crazygoldfish.com/lesson-plan/v1/instructional-framework-builder/{lesson_plan_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"alignment": {
"materials_options": [
{
"ai_recommendations": [
{
"name": "Bar magnets",
"description": "Two bar magnets per group of four students"
},
{
"name": "Iron filings and a sheet of paper",
"description": "To make the field pattern visible"
}
],
"additional_recommendations": [
{
"name": "Plotting compass",
"description": "To trace the direction of the field line by line"
}
]
}
],
"instructional_strategies_options": [
{
"ai_recommendations": [
{
"name": "Hands-on inquiry",
"description": "Students build the field pattern before it is named"
},
{
"name": "Think-pair-share",
"description": "Students compare their field sketches in pairs"
}
],
"additional_recommendations": []
}
],
"instructional_blocks": {
"introduction": {
"component_options": [
{
"name": "Magnet hook",
"description": "Ask why a compass needle moves near a wire"
}
],
"formative_questions": [
"What do you already know about magnets?"
],
"duration": 5
},
"development": {
"component_options": [
{
"name": "Iron filings demonstration",
"description": "Build the field pattern of a bar magnet"
},
{
"name": "Right-hand thumb rule",
"description": "Derive the field direction around a straight wire"
}
],
"formative_questions": [
"Where are the field lines closest together?"
],
"duration": 15
},
"guided_practice": {
"component_options": [
{
"name": "Guided sketching",
"description": "Draw field lines for two magnet arrangements together"
}
],
"formative_questions": [
"Why can two field lines never cross?"
],
"duration": 10
},
"independent_practice": {
"component_options": [
{
"name": "Worksheet task",
"description": "Students predict the field of a solenoid on their own"
}
],
"formative_questions": [
"Which end of the solenoid behaves like a north pole?"
],
"duration": 5
},
"closure": {
"component_options": [
{
"name": "Exit ticket",
"description": "Each student states one property of field lines"
}
],
"formative_questions": [
"What is one thing you would explain to a friend?"
],
"duration": 5
},
"summative_assessment": {
"component_options": [
{
"name": "Short quiz",
"description": "Three questions on field direction and strength"
}
],
"formative_questions": [
"Can you justify your answer with a rule?"
],
"duration": 5
}
}
}
}
'import requests
url = "https://api.crazygoldfish.com/lesson-plan/v1/instructional-framework-builder/{lesson_plan_id}"
payload = { "alignment": {
"materials_options": [
{
"ai_recommendations": [
{
"name": "Bar magnets",
"description": "Two bar magnets per group of four students"
},
{
"name": "Iron filings and a sheet of paper",
"description": "To make the field pattern visible"
}
],
"additional_recommendations": [
{
"name": "Plotting compass",
"description": "To trace the direction of the field line by line"
}
]
}
],
"instructional_strategies_options": [
{
"ai_recommendations": [
{
"name": "Hands-on inquiry",
"description": "Students build the field pattern before it is named"
},
{
"name": "Think-pair-share",
"description": "Students compare their field sketches in pairs"
}
],
"additional_recommendations": []
}
],
"instructional_blocks": {
"introduction": {
"component_options": [
{
"name": "Magnet hook",
"description": "Ask why a compass needle moves near a wire"
}
],
"formative_questions": ["What do you already know about magnets?"],
"duration": 5
},
"development": {
"component_options": [
{
"name": "Iron filings demonstration",
"description": "Build the field pattern of a bar magnet"
},
{
"name": "Right-hand thumb rule",
"description": "Derive the field direction around a straight wire"
}
],
"formative_questions": ["Where are the field lines closest together?"],
"duration": 15
},
"guided_practice": {
"component_options": [
{
"name": "Guided sketching",
"description": "Draw field lines for two magnet arrangements together"
}
],
"formative_questions": ["Why can two field lines never cross?"],
"duration": 10
},
"independent_practice": {
"component_options": [
{
"name": "Worksheet task",
"description": "Students predict the field of a solenoid on their own"
}
],
"formative_questions": ["Which end of the solenoid behaves like a north pole?"],
"duration": 5
},
"closure": {
"component_options": [
{
"name": "Exit ticket",
"description": "Each student states one property of field lines"
}
],
"formative_questions": ["What is one thing you would explain to a friend?"],
"duration": 5
},
"summative_assessment": {
"component_options": [
{
"name": "Short quiz",
"description": "Three questions on field direction and strength"
}
],
"formative_questions": ["Can you justify your answer with a rule?"],
"duration": 5
}
}
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
alignment: {
materials_options: [
{
ai_recommendations: [
{name: 'Bar magnets', description: 'Two bar magnets per group of four students'},
{
name: 'Iron filings and a sheet of paper',
description: 'To make the field pattern visible'
}
],
additional_recommendations: [
{
name: 'Plotting compass',
description: 'To trace the direction of the field line by line'
}
]
}
],
instructional_strategies_options: [
{
ai_recommendations: [
{
name: 'Hands-on inquiry',
description: 'Students build the field pattern before it is named'
},
{
name: 'Think-pair-share',
description: 'Students compare their field sketches in pairs'
}
],
additional_recommendations: []
}
],
instructional_blocks: {
introduction: {
component_options: [
{name: 'Magnet hook', description: 'Ask why a compass needle moves near a wire'}
],
formative_questions: ['What do you already know about magnets?'],
duration: 5
},
development: {
component_options: [
{
name: 'Iron filings demonstration',
description: 'Build the field pattern of a bar magnet'
},
{
name: 'Right-hand thumb rule',
description: 'Derive the field direction around a straight wire'
}
],
formative_questions: ['Where are the field lines closest together?'],
duration: 15
},
guided_practice: {
component_options: [
{
name: 'Guided sketching',
description: 'Draw field lines for two magnet arrangements together'
}
],
formative_questions: ['Why can two field lines never cross?'],
duration: 10
},
independent_practice: {
component_options: [
{
name: 'Worksheet task',
description: 'Students predict the field of a solenoid on their own'
}
],
formative_questions: ['Which end of the solenoid behaves like a north pole?'],
duration: 5
},
closure: {
component_options: [
{
name: 'Exit ticket',
description: 'Each student states one property of field lines'
}
],
formative_questions: ['What is one thing you would explain to a friend?'],
duration: 5
},
summative_assessment: {
component_options: [
{
name: 'Short quiz',
description: 'Three questions on field direction and strength'
}
],
formative_questions: ['Can you justify your answer with a rule?'],
duration: 5
}
}
}
})
};
fetch('https://api.crazygoldfish.com/lesson-plan/v1/instructional-framework-builder/{lesson_plan_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"id": "7d2f1b90-4c6a-4f3e-b1d7-9a5e2c8f0b34",
"message": "Instructional framework builder initiated successfully."
}
]
}