POST - Generate Worksheet Metadata
Generates metadata for a worksheet based on provided inputs such as board, grade, subject, section, number of questions, and optional resources (documents or audio). The request also accepts distributions for question types, difficulty levels, and Bloom’s taxonomy levels.
How to Use:
- Call
POST /worksheet/v1/metadatawith required fields (board,grade,subject,number_of_questions, and distributions) and optionally providetopic,section,documents, oraudio. - On success, the request is queued for background processing to generate worksheet metadata. You’ll receive a unique
idand confirmation message in the response. - If inputs are invalid (e.g., number of questions exceeds allowed limits or malformed JSON distributions), a
400error is returned. - If processing starts successfully, a
200response is returned with the request ID. - If an unexpected error occurs during submission, a
500error is returned.
Question Type Distribution:
{
"mcq_single_answer": 2,
"mcq_multiple_answer": 3,
"true_false": 1,
"fill_in_the_blanks": 0,
"very_short_answer": 1,
"short_answer": 1,
"long_answer": 2,
"match_the_column": 0
}
The sum of question_type_distribution must equal number_of_questions.
Difficulty Level Distribution (%)
{
"easy": 30,
"medium": 50,
"hard": 20
}
Bloom’s Taxonomy Distribution (%)
{
"remember": 30,
"understand": 30,
"apply": 30,
"analyze": 10,
"evaluate": 0,
"create": 0
}
The sum of difficulty_level_distribution and bloom_taxonomy_distribution must each equal 100.
curl --request POST \
--url https://api-staging.crazygoldfish.com/worksheet/v1/metadata \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form board=087c80b0-ac25-40ee-8657-28b694882ba8 \
--form grade=65955148-e106-461b-a9a6-e0c3294f6734 \
--form subject=5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea \
--form number_of_questions=10 \
--form 'question_distribution={"mcq_single_answer": 2, "mcq_multiple_answer": 3, "true_false": 1, "fill_in_the_blanks": 0, "very_short_answer": 1, "short_answer": 1, "long_answer": 2, "match_the_column": 0}' \
--form 'difficulty_level_distribution={"easy": 30, "medium": 50, "hard": 20}' \
--form 'bloom_taxonomy_distribution={"remember": 30, "understand": 30, "apply": 30, "analyze": 10, "evaluate": 0, "create": 0}' \
--form section=A \
--form topic=Magnet \
--form 'documents=<string>' \
--form 'audio=<string>' \
--form 'meta_data={"teacher_id": 199}' \
--form documents.0='@example-file' \
--form documents.1='@example-file' \
--form audio.0='@example-file' \
--form audio.1='@example-file'import requests
url = "https://api-staging.crazygoldfish.com/worksheet/v1/metadata"
files = {
"documents.0": ("example-file", open("example-file", "rb")),
"documents.1": ("example-file", open("example-file", "rb")),
"audio.0": ("example-file", open("example-file", "rb")),
"audio.1": ("example-file", open("example-file", "rb"))
}
payload = {
"board": "087c80b0-ac25-40ee-8657-28b694882ba8",
"grade": "65955148-e106-461b-a9a6-e0c3294f6734",
"subject": "5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea",
"number_of_questions": "10",
"question_distribution": "{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}",
"difficulty_level_distribution": "{\"easy\": 30, \"medium\": 50, \"hard\": 20}",
"bloom_taxonomy_distribution": "{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}",
"section": "A",
"topic": "Magnet",
"documents": "<string>",
"audio": "<string>",
"meta_data": "{\"teacher_id\": 199}"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('board', '087c80b0-ac25-40ee-8657-28b694882ba8');
form.append('grade', '65955148-e106-461b-a9a6-e0c3294f6734');
form.append('subject', '5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea');
form.append('number_of_questions', '10');
form.append('question_distribution', '{"mcq_single_answer": 2, "mcq_multiple_answer": 3, "true_false": 1, "fill_in_the_blanks": 0, "very_short_answer": 1, "short_answer": 1, "long_answer": 2, "match_the_column": 0}');
form.append('difficulty_level_distribution', '{"easy": 30, "medium": 50, "hard": 20}');
form.append('bloom_taxonomy_distribution', '{"remember": 30, "understand": 30, "apply": 30, "analyze": 10, "evaluate": 0, "create": 0}');
form.append('section', 'A');
form.append('topic', 'Magnet');
form.append('documents', '<string>');
form.append('audio', '<string>');
form.append('meta_data', '{"teacher_id": 199}');
form.append('documents.0', '{
"fileName": "example-file"
}');
form.append('documents.1', '{
"fileName": "example-file"
}');
form.append('audio.0', '{
"fileName": "example-file"
}');
form.append('audio.1', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api-staging.crazygoldfish.com/worksheet/v1/metadata', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-staging.crazygoldfish.com/worksheet/v1/metadata",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-staging.crazygoldfish.com/worksheet/v1/metadata"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-staging.crazygoldfish.com/worksheet/v1/metadata")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.crazygoldfish.com/worksheet/v1/metadata")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"detail": [
{
"id": "84dad129-76dc-44b6-84ad-4f55fd451891",
"msg": "Worksheet metadata processing started successfully."
}
]
}{
"detail": [
{
"msg": "Total questions in distribution must equal number_of_questions."
}
]
}{
"detail": [
{
"msg": "Invalid JSON format of difficulty_level_distribution"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
"087c80b0-ac25-40ee-8657-28b694882ba8"
"65955148-e106-461b-a9a6-e0c3294f6734"
"5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea"
10
JSON string representing question type distribution
"{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}"
JSON string representing difficulty distribution
"{\"easy\": 30, \"medium\": 50, \"hard\": 20}"
JSON string representing Bloom taxonomy distribution
"{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}"
"A"
"Magnet"
Array of document files
Audio file for question generation
JSON string representing the metadata of the worksheet
"{\"teacher_id\": 199}"
Was this page helpful?
curl --request POST \
--url https://api-staging.crazygoldfish.com/worksheet/v1/metadata \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form board=087c80b0-ac25-40ee-8657-28b694882ba8 \
--form grade=65955148-e106-461b-a9a6-e0c3294f6734 \
--form subject=5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea \
--form number_of_questions=10 \
--form 'question_distribution={"mcq_single_answer": 2, "mcq_multiple_answer": 3, "true_false": 1, "fill_in_the_blanks": 0, "very_short_answer": 1, "short_answer": 1, "long_answer": 2, "match_the_column": 0}' \
--form 'difficulty_level_distribution={"easy": 30, "medium": 50, "hard": 20}' \
--form 'bloom_taxonomy_distribution={"remember": 30, "understand": 30, "apply": 30, "analyze": 10, "evaluate": 0, "create": 0}' \
--form section=A \
--form topic=Magnet \
--form 'documents=<string>' \
--form 'audio=<string>' \
--form 'meta_data={"teacher_id": 199}' \
--form documents.0='@example-file' \
--form documents.1='@example-file' \
--form audio.0='@example-file' \
--form audio.1='@example-file'import requests
url = "https://api-staging.crazygoldfish.com/worksheet/v1/metadata"
files = {
"documents.0": ("example-file", open("example-file", "rb")),
"documents.1": ("example-file", open("example-file", "rb")),
"audio.0": ("example-file", open("example-file", "rb")),
"audio.1": ("example-file", open("example-file", "rb"))
}
payload = {
"board": "087c80b0-ac25-40ee-8657-28b694882ba8",
"grade": "65955148-e106-461b-a9a6-e0c3294f6734",
"subject": "5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea",
"number_of_questions": "10",
"question_distribution": "{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}",
"difficulty_level_distribution": "{\"easy\": 30, \"medium\": 50, \"hard\": 20}",
"bloom_taxonomy_distribution": "{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}",
"section": "A",
"topic": "Magnet",
"documents": "<string>",
"audio": "<string>",
"meta_data": "{\"teacher_id\": 199}"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('board', '087c80b0-ac25-40ee-8657-28b694882ba8');
form.append('grade', '65955148-e106-461b-a9a6-e0c3294f6734');
form.append('subject', '5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea');
form.append('number_of_questions', '10');
form.append('question_distribution', '{"mcq_single_answer": 2, "mcq_multiple_answer": 3, "true_false": 1, "fill_in_the_blanks": 0, "very_short_answer": 1, "short_answer": 1, "long_answer": 2, "match_the_column": 0}');
form.append('difficulty_level_distribution', '{"easy": 30, "medium": 50, "hard": 20}');
form.append('bloom_taxonomy_distribution', '{"remember": 30, "understand": 30, "apply": 30, "analyze": 10, "evaluate": 0, "create": 0}');
form.append('section', 'A');
form.append('topic', 'Magnet');
form.append('documents', '<string>');
form.append('audio', '<string>');
form.append('meta_data', '{"teacher_id": 199}');
form.append('documents.0', '{
"fileName": "example-file"
}');
form.append('documents.1', '{
"fileName": "example-file"
}');
form.append('audio.0', '{
"fileName": "example-file"
}');
form.append('audio.1', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api-staging.crazygoldfish.com/worksheet/v1/metadata', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-staging.crazygoldfish.com/worksheet/v1/metadata",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-staging.crazygoldfish.com/worksheet/v1/metadata"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-staging.crazygoldfish.com/worksheet/v1/metadata")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.crazygoldfish.com/worksheet/v1/metadata")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"board\"\r\n\r\n087c80b0-ac25-40ee-8657-28b694882ba8\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"grade\"\r\n\r\n65955148-e106-461b-a9a6-e0c3294f6734\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\n5dcc9bab-e2ac-4c65-a3d0-e272ac4bc5ea\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"number_of_questions\"\r\n\r\n10\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"question_distribution\"\r\n\r\n{\"mcq_single_answer\": 2, \"mcq_multiple_answer\": 3, \"true_false\": 1, \"fill_in_the_blanks\": 0, \"very_short_answer\": 1, \"short_answer\": 1, \"long_answer\": 2, \"match_the_column\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"difficulty_level_distribution\"\r\n\r\n{\"easy\": 30, \"medium\": 50, \"hard\": 20}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bloom_taxonomy_distribution\"\r\n\r\n{\"remember\": 30, \"understand\": 30, \"apply\": 30, \"analyze\": 10, \"evaluate\": 0, \"create\": 0}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"section\"\r\n\r\nA\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"topic\"\r\n\r\nMagnet\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"meta_data\"\r\n\r\n{\"teacher_id\": 199}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"documents.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.0\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"audio.1\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"detail": [
{
"id": "84dad129-76dc-44b6-84ad-4f55fd451891",
"msg": "Worksheet metadata processing started successfully."
}
]
}{
"detail": [
{
"msg": "Total questions in distribution must equal number_of_questions."
}
]
}{
"detail": [
{
"msg": "Invalid JSON format of difficulty_level_distribution"
}
]
}