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

Rules

  • Send exactly one source: topic, documents, or audio.
  • number_of_questions can be at most 10.
  • The counts in question_distribution must add up to number_of_questions.
  • The percentages in difficulty_level_distribution and bloom_taxonomy_distribution must each add up to 100.
  • documents: up to 4 images, .jpg, .jpeg, or .png, 5 MB each. audio: one .mp3, 5 MB.
  • Send the three distribution fields as JSON strings inside the form.
  • The form also accepts a section field, but the API never stores it, so section comes back as null in every worksheet response. Leave it out and keep your own record of the class section. The lesson plan API does store the section it is sent.
Starting a worksheet has a daily limit per account, and rejected requests count toward it. Check the rules above before you call.
With topic, questions are grounded in CrazyGoldFish’s indexed textbook content for the board, grade, and subject. If none exists, the step fails with No content found. Use documents for your own material.

Next step

Get worksheet metadata

Poll until status is Completed, or wait for the worksheet_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"

number_of_questions
integer
required

Total number of questions. Maximum 10.

Required range: 0 <= x <= 10
Example:

5

question_distribution
string
required

JSON object mapping question type to count. The counts must add up to number_of_questions. Question types: mcq_single_answer, mcq_multiple_answer, true_false, fill_in_the_blanks, very_short_answer, short_answer, long_answer, match_the_column.

Example:

"{\"mcq_single_answer\": 3, \"short_answer\": 2}"

difficulty_level_distribution
string
required

JSON object of percentages per difficulty (easy, medium, hard). Must add up to 100.

Example:

"{\"easy\": 40, \"medium\": 40, \"hard\": 20}"

bloom_taxonomy_distribution
string
required

JSON object of percentages per Bloom's level (remember, understand, apply, analyze, evaluate, create). Must add up to 100.

Example:

"{\"remember\": 40, \"understand\": 40, \"apply\": 20}"

topic
string

Topic to build the worksheet 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, .png, 5 MB each). Use this or topic or audio.

audio
file

One .mp3 recording, up to 5 MB. 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 worksheets and usable as a listing filter.

Example:

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

Response

The job was queued. Poll the matching GET endpoint or wait for the webhook.

detail
object[]