API v1

API & Developers

Integrate AI-powered educational content generation into your applications. 24 widget types, structured JSON output, multi-provider AI.

Quick Start

Generate your first widget in minutes. Obtain an API key from Settings > API Keys, then make a POST request.

cURL

bash
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"
  }'

TypeScript / fetch

typescript
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

Response

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"
  }
}

Widget Types

24 widget types available for generation via the API. Each type accepts a title, optional sources, and type-specific inputs.

Quizinteractive

Multiple-choice quiz with scoring and explanations

quiz-interactive
QCM Evaluationinteractive

Set of multiple-choice questions with correction

qcm-evaluation
Multiple Choiceinteractive

Multiple-choice questions with feedback

multiple-choice-interactive
Word Cloudinteractive

Collaborative word cloud for key concepts

wordcloud-interactive
Post-it Brainstorminteractive

Brainstorming with categorized post-its

postit-brainstorm
Rankinginteractive

Rank elements by priority or preference

ranking-prioritization
Roleplayinteractive

Roleplay scenario for soft-skills training

roleplay-conversation
Flashcardsinteractive

Front/back flashcards for revision

flashcard-learning
Open Textinteractive

Open-ended question for reflection

opentext-reflection
Summarystatic

Structured summary with sections and key points

summary-structured
FAQstatic

FAQ extracted from sources

faq-extraction
Glossarystatic

Glossary of terms and definitions

glossary-extraction
Timelinestatic

Events on a chronological axis

timeline-chronological
Reportstatic

Structured document (synthesis, guide, article)

report-document
Data Tablestatic

Structured data table (columns + rows)

data-table-extraction
Slidemedia

Single slide with deterministic JSON rendering

slide-simple
Presentationmedia

Complete presentation deck from sources

presentation-from-sources
Imagemedia

Generate an image from a text prompt

image-generation
Mind Mapmedia

Hierarchical mind map from sources

mindmap-extraction
Infographicmedia

Visual infographic with stats and lists

infographic-visual
Audio Podcastmedia

Audio podcast from source content

audio-podcast
Syllabuspedagogical

Training program with objectives and plan

syllabus-generation
Session Planpedagogical

Detailed lesson plan with activities

session-plan-generation
Program Overviewpedagogical

Higher education program overview

program-overview-generation
Class Overviewpedagogical

Secondary class overview with progression

class-overview-generation

API Reference

RESTful JSON API. Base URL: https://studio.qiplim.com/api/v1

Authentication

All API endpoints require a Bearer token. API keys start with sk_ and can be created in Settings > API Keys.

http
Authorization: Bearer sk_your_api_key

Rate limit: 100 requests/hour per API key. Exceeding returns HTTP 429 with a retryAfter field.

POST/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).

Request Body

FieldTypeRequiredDescription
titlestringYesTitle of the widget (max 200 chars)
sourcesstring[]NoRaw text sources as context for generation
inputsobjectNoType-specific parameters (see input schemas)
languagestringNoLanguage for generated content (default: "fr")
providerstringNoAI provider: mistral, openai, anthropic, google

Responses

200Widget generated successfully (widget, usage, template)
400Invalid request (bad type, missing title, invalid inputs)
401Missing or invalid API key
429Rate limit exceeded (100 req/hour)
GET/api/v1/types

List all available widget types with their input schemas. Useful for dynamic UI generation or MCP tool discovery.

Response

json
{
  "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": {...} }
    },
    ...
  ]
}
GET/api/v1/openapi.json

OpenAPI 3.1 specification. No authentication required. Dynamically generated from the template registry.

View OpenAPI Spec

MCP Server

Qiplim Studio is available as an MCP (Model Context Protocol) server, allowing LLMs like Claude, GPT, or Cursor to generate widgets directly.

Stdio Transport

For Claude Code, Cursor, Windsurf, and other local MCP clients.

bash
QIPLIM_API_KEY=sk_... npx qiplim-mcp

HTTP Transport

Streamable HTTP for remote or web-based MCP clients.

http
POST https://studio.qiplim.com/api/mcp
Authorization: Bearer sk_...
Content-Type: application/json

Available Tools

list_widget_types

List available widget types and their schemas

generate_widget

Generate an educational widget from source text

search_sources

Search indexed sources within a studio

Claude Code Configuration

json
// .claude/settings.json
{
  "mcpServers": {
    "qiplim": {
      "command": "npx",
      "args": ["qiplim-mcp"],
      "env": {
        "QIPLIM_API_KEY": "sk_your_api_key"
      }
    }
  }
}

llms.txt

Qiplim Studio provides a /llms.txt file following the llms.txt standard. This Markdown file gives LLMs all the context they need to interact with the API: endpoints, widget types, authentication, and MCP configuration.

Developpeurs — Qiplim Studio