Explore the platform
Every area of the API, grouped the way you'll use it.
Get Started
Mint a key, make your first call, and render a full video in four requests.
Authentication
Bearer API keys (cs_live_…), the Pro, Studio and Enterprise plans, and per-key isolation.
Courses & Lessons
Create courses, autogen structure, and manage lessons programmatically.
Sources & Grounding
Ingest URLs, text, YouTube, and GitHub repos into grounded lessons.
Generation
Script generation across every format family, plan gate included.
Storyboard & Scenes
Read and edit scripts scene-by-scene: rewrite, remap, reorder, boost.
Videos & Pipeline
The end-to-end pipeline: script → TTS → timeline → rendered MP4.
Outputs & Exports
Quizzes (12 export formats), PPTX decks, PDF handouts and syllabi.
Jobs & Webhooks
One job resource over every async family — poll, stream, or get pushed.
AI Agents (MCP)
Let Claude, Cursor, or VS Code drive the API conversationally — 17 tools.
Quickstart — topic to video in 4 calls
Create a key at Settings → API Keys, then run these in order — the URLs below already point at this deployment's API.
Create a lesson
post/v1/lessons/standaloneA standalone lesson is the unit everything hangs off — no course required.
curl -X POST "https://api.coursesmith.ai/v1/lessons/standalone" \
-H "Authorization: Bearer cs_live_..." \
-H "Content-Type: application/json" \
-d '{"title": "Binary Search Trees", "subject_domain": "programming"}'
# → { "course_id": "...", "topic_id": "...", "subtopic_id": "<lesson_id>" }Kick off the end-to-end pipeline
post/v1/lessons/{lesson_id}/videosOne call runs script generation → per-scene TTS → timeline build → final MP4, unattended. Add "video_orientation": "portrait" to generate for a NATIVE 9:16 video (1080x1920, every scene authored tall — not a crop); GET /v1/options lists the orientations and sizes.
curl -X POST "https://api.coursesmith.ai/v1/lessons/<lesson_id>/videos" \
-H "Authorization: Bearer cs_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: bst-video-001" \
-d '{"generate": {"lecture_style": "short", "video_orientation": "portrait"}, "resolution": "1080p"}'
# video_orientation: landscape (default, 1920x1080) | portrait (native 9:16, 1080x1920)
# → 202 { "job_id": "pipe_...", "status": "queued" }Poll the job (or stream it)
get/v1/jobs/{job_id}Status is always queued | processing | succeeded | failed | cancelled. SSE stream available too.
curl "https://api.coursesmith.ai/v1/jobs/pipe_..." \
-H "Authorization: Bearer cs_live_..."
# → { "status": "succeeded", "video_id": "<video_id>", "video_url": "https://..." }Download the MP4
get/v1/videos/{video_id}/downloadA 302 redirect straight to the rendered file — pipe it wherever you need it.
curl -L "https://api.coursesmith.ai/v1/videos/<video_id>/download" \
-H "Authorization: Bearer cs_live_..." \
-o lecture.mp4How the platform works
Six concepts cover every integration — read them left to right.
Authentication
Bearer keys, Studio plan, isolation
Create a key at Settings → API Keys (shown once, stored hashed, max 5 active). Send it on every request:
Authorization: Bearer cs_live_...The developer API is part of the Pro, Studio and Enterprise plans — creating a key needs one of them. An account that moves to a plan without the API gets 402 tier_upgrade_required. Every request acts as the key's owner; one user can never see another's data.
SDKs & raw spec
Runnable examples + the single-file Python SDK live in our public GitHub repo: create a video, edit scenes, ground a course in a URL or repo, verify webhook signatures, export quizzes. For TypeScript, generate types from the OpenAPI document with openapi-typescript.
Connect an AI agent (MCP)
The CourseSmith MCP server gives Claude, Cursor, VS Code Copilot, and Windsurf 17 tools over this API — create lessons, edit storyboard scenes, and render videos by just asking. One command in Claude Code: claude mcp add coursesmith …