Generate your first widget in minutes. Obtain an API key from Settings > API Keys, then make a POST request.
curl -X POST https://studio.qiplim.com/api/v1/generate/quiz-interactive \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Quiz on the French Revolution",
"sources": ["The French Revolution began in 1789..."],
"inputs": { "questionCount": 5, "difficulty": "medium" },
"language": "fr"
}'const response = await fetch(
"https://studio.qiplim.com/api/v1/generate/quiz-interactive",
{
method: "POST",
headers: {
"Authorization": "Bearer sk_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Quiz on the French Revolution",
sources: ["The French Revolution began in 1789..."],
inputs: { questionCount: 5, difficulty: "medium" },
language: "fr",
}),
}
);
const { widget, usage, template } = await response.json();
console.log(widget.data); // Structured widget JSON{
"widget": {
"id": "cm...",
"type": "QUIZ",
"title": "Quiz on the French Revolution",
"data": { "questions": [...], "settings": {...} }
},
"usage": {
"inputTokens": 1200,
"outputTokens": 800,
"totalTokens": 2000,
"model": "mistral-large-latest",
"provider": "mistral"
},
"template": {
"id": "qiplim/quiz-interactive",
"version": "2.0.0"
}
}24 widget types available for generation via the API. Each type accepts a title, optional sources, and type-specific inputs.
Multiple-choice quiz with scoring and explanations
quiz-interactiveSet of multiple-choice questions with correction
qcm-evaluationMultiple-choice questions with feedback
multiple-choice-interactiveCollaborative word cloud for key concepts
wordcloud-interactiveBrainstorming with categorized post-its
postit-brainstormRank elements by priority or preference
ranking-prioritizationRoleplay scenario for soft-skills training
roleplay-conversationFront/back flashcards for revision
flashcard-learningOpen-ended question for reflection
opentext-reflectionStructured summary with sections and key points
summary-structuredFAQ extracted from sources
faq-extractionGlossary of terms and definitions
glossary-extractionEvents on a chronological axis
timeline-chronologicalStructured document (synthesis, guide, article)
report-documentStructured data table (columns + rows)
data-table-extractionSingle slide with deterministic JSON rendering
slide-simpleComplete presentation deck from sources
presentation-from-sourcesGenerate an image from a text prompt
image-generationHierarchical mind map from sources
mindmap-extractionVisual infographic with stats and lists
infographic-visualAudio podcast from source content
audio-podcastTraining program with objectives and plan
syllabus-generationDetailed lesson plan with activities
session-plan-generationHigher education program overview
program-overview-generationSecondary class overview with progression
class-overview-generationRESTful JSON API. Base URL: https://studio.qiplim.com/api/v1
All API endpoints require a Bearer token. API keys start with sk_ and can be created in Settings > API Keys.
Authorization: Bearer sk_your_api_keyRate limit: 100 requests/hour per API key. Exceeding returns HTTP 429 with a retryAfter field.
/api/v1/generate/{type}Generate a widget of the given type. Replace {type} with any slug from the widget types list (e.g. quiz-interactive).
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Title of the widget (max 200 chars) |
sources | string[] | No | Raw text sources as context for generation |
inputs | object | No | Type-specific parameters (see input schemas) |
language | string | No | Language for generated content (default: "fr") |
provider | string | No | AI provider: mistral, openai, anthropic, google |
/api/v1/typesList all available widget types with their input schemas. Useful for dynamic UI generation or MCP tool discovery.
{
"types": [
{
"type": "quiz-interactive",
"templateId": "qiplim/quiz-interactive",
"name": "Quiz Interactif",
"version": "2.0.0",
"description": "Quiz with scoring and explanations",
"widgetType": "QUIZ",
"inputSchema": { "type": "object", "properties": {...} }
},
...
]
}/api/v1/openapi.jsonOpenAPI 3.1 specification. No authentication required. Dynamically generated from the template registry.
View OpenAPI SpecQiplim Studio is available as an MCP (Model Context Protocol) server, allowing LLMs like Claude, GPT, or Cursor to generate widgets directly.
For Claude Code, Cursor, Windsurf, and other local MCP clients.
QIPLIM_API_KEY=sk_... npx qiplim-mcpStreamable HTTP for remote or web-based MCP clients.
POST https://studio.qiplim.com/api/mcp
Authorization: Bearer sk_...
Content-Type: application/jsonlist_widget_typesList available widget types and their schemas
generate_widgetGenerate an educational widget from source text
search_sourcesSearch indexed sources within a studio
// .claude/settings.json
{
"mcpServers": {
"qiplim": {
"command": "npx",
"args": ["qiplim-mcp"],
"env": {
"QIPLIM_API_KEY": "sk_your_api_key"
}
}
}
}