Skip to main content

Channel Metadata

List Channels

Retrieve a list of all available channels.
GET /api/content/channel
curl http://localhost:8080/api/content/channel

Query Parameters

available
boolean
Filter by content availability (true for locally available channels)
contains_exercise
boolean
Filter channels that contain exercises
contains_quiz
boolean
Filter channels that contain quizzes

Response Fields

id
string
Channel unique identifier
name
string
Channel name
description
string
Channel description
tagline
string
Short tagline for the channel
author
string
Channel author/organization
version
integer
Channel version number
thumbnail
string
URL to channel thumbnail image
available
boolean
Whether channel content is locally available
total_resource_count
integer
Total number of resources in the channel
published_size
integer
Total size of channel in bytes
last_updated
string
ISO 8601 timestamp of last update
lang_code
string
Primary language code
included_languages
array
Array of language IDs included in the channel
included_categories
array
Array of content categories

Get Channel

Retrieve details of a specific channel.
GET /api/content/channel/:id
curl http://localhost:8080/api/content/channel/channel-uuid-here

Content Nodes

List Content Nodes

Retrieve content nodes with extensive filtering options.
GET /api/content/contentnode
curl "http://localhost:8080/api/content/contentnode?channel_id=channel-uuid&kind=exercise"

Query Parameters

channel_id
string
Filter by channel UUID
parent
string
Filter by parent node UUID
kind
string
Filter by content kind: topic, exercise, video, audio, document, html5
include_coach_content
boolean
Include coach-only content (default: false)
keywords
string
Search by keywords in title or description
categories
string
Filter by category labels (comma-separated)
grade_levels
string
Filter by grade levels (comma-separated)
learning_activities
string
Filter by learning activities (comma-separated)
accessibility_labels
string
Filter by accessibility labels (comma-separated)
max_results
integer
Maximum number of results for cursor pagination

Response Fields

id
string
Content node unique identifier
title
string
Content title
description
string
Content description
kind
string
Content kind/type
content_id
string
Content identifier (shared across versions)
channel_id
string
Channel UUID
author
string
Content author
available
boolean
Whether content files are locally available
coach_content
boolean
Whether this is coach-only content
parent
string
Parent node UUID
lang
object
Language object with lang_code, lang_name, lang_direction
files
array
Array of file objects with checksum, extension, file_size, storage_url
assessmentmetadata
object
Assessment metadata for exercises (mastery_model, randomize, etc.)
tags
array
Array of tag names
thumbnail
string
URL to thumbnail image
duration
integer
Duration in seconds for time-based content
learning_activities
array
Array of learning activity labels
grade_levels
array
Array of grade level labels
categories
array
Array of category labels

Get Content Node

Retrieve a specific content node by ID.
GET /api/content/contentnode/:id
curl http://localhost:8080/api/content/contentnode/node-uuid-here

Search Content

Search for content nodes by keyword.
GET /api/content/contentnode_search
curl "http://localhost:8080/api/content/contentnode_search?search=mathematics&max_results=20"

Query Parameters

Search query string
max_results
integer
Maximum number of results (default: 30)
channel_id
string
Restrict search to specific channel
kind
string
Filter by content kind

Content Node Tree

Get Content Tree

Retrieve a nested tree structure of content nodes.
GET /api/content/contentnode_tree/:id
curl "http://localhost:8080/api/content/contentnode_tree/node-uuid-here?depth=2"

Query Parameters

depth
integer
Tree depth to return (1 or 2, default: 2)
next__gt
integer
Left position value for pagination

Response Structure

Returns a nested object with:
id
string
Node ID
children
object
Pagination object with results array and more object for pagination
children.results
array
Array of child nodes, which may have their own nested children
children.more
object
Pagination info with id and params for next page

Random Content Nodes

Get random content nodes from the filtered set.
GET /api/content/contentnode/random
curl "http://localhost:8080/api/content/contentnode/random?channel_id=channel-uuid&max_results=5"

Content Recommendations

Get content recommendations similar to a specific node.
GET /api/content/contentnode/:id/recommendations_for
curl http://localhost:8080/api/content/contentnode/node-uuid-here/recommendations_for

Files

Files are embedded within ContentNode responses. Each file object contains:
id
string
File unique identifier
checksum
string
File checksum/hash
extension
string
File extension (e.g., mp4, pdf)
file_size
integer
File size in bytes
storage_url
string
URL to access the file
preset
string
File preset type (e.g., high_res_video, thumbnail)
available
boolean
Whether file is locally available
supplementary
boolean
Whether this is a supplementary file
thumbnail
boolean
Whether this file is a thumbnail

Build docs developers (and LLMs) love