Generate a single content item
POST /api/v1/generate/single
Generate exactly one content item for a specific skill.
Request Body required
Section titled “Request Body required ”object
Skill slug to generate for
Grade slug filter
Seed for deterministic generation
Responses
Section titled “ Responses ”Single generated content item
object
object
Universal content item — the type field determines the shape of content.
object
Skill slug this item was generated for
Grade order (0=K, 1-8)
object
Example
3.OA.C.7Example
CCSS-MATHobject
Depth of Knowledge level
Bloom’s taxonomy level
Grade-equivalent difficulty
Normalized complexity score (0-100)
object
object
The question text
object
object
Text with blank indicated by ___
Example
The capital of France is ___.object
object
object
object
object
object
The ‘right’ values in shuffled order for the student
object
Items in correct order
Items in shuffled order for the student
object
2D character grid
object
object
object
What to count (e.g. ‘apples’, ‘stars’)
object
object
Human-readable display of the answer
Unit of measurement if applicable
Explanation of why this is the answer
Alternative acceptable answers
Optional presentation hints for consumers rendering the content.
object
object
object
object
SVG markup for diagrams
object
object
Human-readable answer display
object
Invalid JSON
RFC 7807 Problem Details
object
Seconds to wait before retrying (present on 429 responses)
Skill not found
RFC 7807 Problem Details
object
Seconds to wait before retrying (present on 429 responses)
Missing skill field
RFC 7807 Problem Details
object
Seconds to wait before retrying (present on 429 responses)
Rate limit exceeded
RFC 7807 Problem Details
object
Seconds to wait before retrying (present on 429 responses)
Example
{ "type": "https://api.studyplug.org/errors/rate-limited", "title": "Rate Limit Exceeded", "status": 429, "detail": "You have exceeded 20 requests per minute. Please wait before retrying.", "instance": "/api/v1/skills", "retryAfter": 12}Headers
Section titled “Headers ”Seconds until rate limit resets
Max requests per window
Always 0 when rate limited