Resources
Content API Overview

Content API Overview

Connect an external content system to TutorFlow: expand your own source JSON into TutorFlow content, and create, read, update, and sync the courses, videos, slides, tests, modules, games, and simulations educators build.

On this page

The TutorFlow Content API connects an external content system, such as a CMS, a curriculum database, or your own app, to the content educators build in TutorFlow. It serves two jobs:

  • Expand your source JSON. Send existing structured content, such as a category, a level, and its lessons, and TutorFlow creates an interactive module, a summary video plan, and an expanded quiz from it. See Source JSON Expansion.
  • Control TutorFlow content. Create, read, update, delete, and sync modules, courses, videos, slides, tests, games, and simulations in a classroom, whether your system or an educator created them. See Resources.

What's new: request ids on every response, updatedSince on every list, key editing and expiry warnings, and an opt-in learners:read scope. See the Changelog.

How it fits together

ConceptWhat it is
Base URLhttps://api.tutorflow.io. Every route is under /v1/content.
Content API keyA bearer token that starts with tf_content_, scoped to one organization. Create it in TutorFlow under Settings > Content API. See Keys and Authentication.
Scopescontent:read, content:write, content:generate (anything that spends AI Credits), and webhooks:manage.
ClassroomEvery resource lives in a classroom. Find ids with GET /v1/content/classrooms. A key can be limited to some classrooms.
AI CreditsReads and writes with content you supply are free. Expansions are free. Game and simulation generation and video rendering spend the organization's AI Credits. See Pricing.
WebhooksSigned events for finished jobs, resource changes, builds, and renders. See Webhooks.

What the API reaches

Content typeCollection path under /v1/content/classrooms/{classroomId}Expansion outputPriced generation
Module: one interactive lesson that educators build and assign/modulesinteractive_moduleThrough expansion
Course: chapters and lessons/coursesNoneNone
Video: an editable scene plan, rendered to mp4 on request/videossummary_videoRendering
Slides: a presentation deck/slidesNoneNone
Test: an assessment with items and scoring/testsexpanded_quizThrough expansion
Game: a playable web page built from a practice objective/gamesNoneBrief, build, revise
Simulation: an interactive model learners explore with controls/simulationsNoneBrief, build, revise

Every route, with its scope and response, is listed once in the API Reference.

  1. Create a test key in Settings > Content API with only the scopes you need. See the Quickstart.
  2. Call GET /v1/content/credits to confirm the key works and to read the balance.
  3. Find the target classroom with GET /v1/content/classrooms.
  4. Create one resource, or submit one small expansion job, with an Idempotency-Key.
  5. Poll the job or run until it finishes, then store the returned TutorFlow ids and the result manifest next to your own ids.
  6. Read and update resources by id if your system must stay in sync.
  7. Register a webhook once polling works, and move to events for completion and change notifications.

Not the Agent Platform

The Content API is for content that people create, review, and manage in TutorFlow classrooms. It uses /v1/content/** and tf_content_ keys, and its resources are scoped to classrooms. The Agent Platform (/v1/platform/**) is a separate API for autonomous AI agent workflows, with its own credentials, workspace-scoped resources, and credit balance. Do not mix the two: a Content API integration never needs a platform key, a workspace id, or a platform URL.

To surface TutorFlow content inside an LMS rather than another content system, see LMS Integration (LTI).

Next steps

Was this page helpful?