Skip to main content
A student action plan is created in two calls. The first call starts the work and returns straight away. The plan is written in the background, and the second call reads it. Everything starts from an answer sheet that has already been marked.
1

Evaluate the answer sheet

The student’s paper is marked first, through exam evaluation. Marking saves two things the plan depends on: the marks for each answer, and the feedback comments explaining what was wrong.What you need after this step: the answer sheet ID.
2

Ask for a plan

Your platform sends the answer sheet ID. The reply comes back immediately, with that same ID and a message confirming the plan was started. The plan is saved at once with the status In Progress.
3

The service collects the evidence

It finds every answer marked below the marks available and groups those answers under their numbered question. For each question it gives the AI the question as printed, the stored model answer, what the student wrote, the marks it got, and the feedback comments recorded at marking. A question the student was allowed to skip is not held against them.Questions answered for full marks get no advice of their own. The AI is told which ones they were, and the student’s total, so it can say what went well. The student’s ID and name are not sent to the AI.
4

The AI writes the plan

The AI returns a summary for the paper, an action type, the advice for the student, a skill focus, a confidence tip, and one entry per question. The plan is saved and the status changes to Completed.
5

Read the plan

Your platform asks for the plan by answer sheet ID and gets the plan, its status, the student ID and name, and the time it was created. If you registered the student_action_plan webhook, the service calls your URL with the status as soon as the work ends, so you do not have to keep checking.

What do the statuses mean?

What happens if something fails?

If the work fails, or is stopped for any reason, the plan gets the status Failed and the reason is saved with it. Your webhook, if you registered one and it is enabled, is called with Failed. Ask for a new plan for the same answer sheet when the cause is fixed. Two checks happen before any work starts. An answer sheet ID that does not belong to a real answer sheet is rejected, and no plan is created. Going over the daily limit on plan requests is rejected with 429.

Frequently asked questions

Usually under a minute. It depends on how many questions lost marks and how long the answers are. The service stops work on a plan that has not finished within 10 minutes and marks it Failed, and you can ask for a new one.
You can, but the plan will only cover the answers marked so far. Wait until evaluation is complete for the answer sheet.
The plan has no per-question entries, because advice is written only for questions with marks deducted. The overall parts are still written from the student’s total and the questions they got right.
Yes. Each request creates a new plan, and reading the plan returns the newest one. The older plan is no longer returned.
Only the API user that created it. The read is matched on the user, not the account, so a second API user on the same account gets nothing back for that answer sheet. If several of your services need the plan, create it with the same API user, or store the result on your side.
Your developers register the student_action_plan event once, with an HTTPS URL of yours, using the webhook API. The call your URL receives carries the answer sheet ID, the event name, and the status. It does not carry the plan itself, so read the plan afterwards. If the event is not in the list your account can subscribe to, contact CrazyGoldFish.

Next steps

Use cases

How schools and platforms use student action plans.

Developer guide

Create student and teacher action plans with the API, step by step.