Skip to main content
The Channels API allows you to create, update, and manage educational content channels. Channels are the top-level containers for organizing educational content.

Endpoints

List Channels

curl -H "Authorization: Token YOUR_TOKEN" \
  https://studio.learningequality.org/api/channel
Retrieve a list of channels accessible to the authenticated user.
page_size
integer
Number of results per page (max 1000)
bookmark
boolean
Filter by bookmarked channels
edit
boolean
Filter channels where user has edit permissions
view
boolean
Filter channels where user has view permissions
published
boolean
Filter by published status
public
boolean
Filter by public visibility
languages
string
Filter by language codes (comma-separated)
keywords
string
Search channels by keywords
{
  "results": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Mathematics K-12",
      "description": "Complete mathematics curriculum",
      "language": "en",
      "thumbnail_url": "https://storage.example.com/thumb.jpg",
      "published": true,
      "version": 5,
      "count": 342,
      "modified": "2024-01-15T10:30:00Z",
      "created": "2023-06-01T08:00:00Z",
      "last_published": "2024-01-10T14:20:00Z",
      "root_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "edit": true,
      "view": true
    }
  ],
  "count": 1
}

Create Channel

curl -X POST \
  -H "Authorization: Token YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "New Channel",
    "description": "Channel description",
    "language": "en"
  }' \
  https://studio.learningequality.org/api/channel
Create a new content channel.
name
string
required
Channel name (max 200 characters)
description
string
Channel description (max 400 characters)
language
string
Primary language code (e.g., “en”, “es”, “fr”)
thumbnail
string
Thumbnail file path
thumbnail_encoding
object
Thumbnail encoding options
content_defaults
object
Default content settings for resources in this channel
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "New Channel",
  "description": "Channel description",
  "language": "en",
  "version": 0,
  "published": false,
  "root_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "edit": true,
  "view": true
}

Update Channel

curl -X PATCH \
  -H "Authorization: Token YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Channel Name",
    "description": "Updated description"
  }' \
  https://studio.learningequality.org/api/channel/{id}
Update an existing channel. Only fields included in the request will be updated.
id
string
required
Channel UUID
name
string
Channel name
description
string
Channel description
language
string
Primary language code
thumbnail
string
Thumbnail file path
thumbnail_encoding
object
Thumbnail encoding options
content_defaults
object
Default content settings

Delete Channel

curl -X DELETE \
  -H "Authorization: Token YOUR_TOKEN" \
  https://studio.learningequality.org/api/channel/{id}
Soft delete a channel. The channel is marked as deleted but not permanently removed.
id
string
required
Channel UUID
{
  "status": "success"
}

Get Channel Languages

curl -H "Authorization: Token YOUR_TOKEN" \
  https://studio.learningequality.org/api/channel/{id}/languages
Get all languages present in a channel’s resources.
id
string
required
Channel UUID
{
  "languages": ["en", "es", "fr"]
}

Check Channel Language

curl -H "Authorization: Token YOUR_TOKEN" \
  https://studio.learningequality.org/api/channel/{id}/language_exists
Verify that the language set for a channel is present in at least one of its resources.
id
string
required
Channel UUID
{
  "exists": true
}

Get Version Details

curl -H "Authorization: Token YOUR_TOKEN" \
  https://studio.learningequality.org/api/channel/{id}/version_detail
Get detailed version information for a channel.
id
string
required
Channel UUID
{
  "id": "version-id-123",
  "version": 5,
  "resource_count": 342,
  "kind_count": {
    "video": 120,
    "document": 85,
    "exercise": 137
  },
  "size": 5242880000,
  "date_published": "2024-01-10T14:20:00Z",
  "version_notes": "Added new math exercises",
  "included_languages": ["en", "es"],
  "included_licenses": [1, 2, 8],
  "included_categories": ["mathematics", "algebra"],
  "non_distributable_licenses_included": false
}

Channel Model Fields

id
string
Unique channel identifier (UUID)
name
string
Channel name (max 200 characters)
description
string
Channel description (max 400 characters)
language
string
Primary language code
thumbnail
string
Thumbnail file path
thumbnail_encoding
object
Thumbnail encoding data
thumbnail_url
string
Full URL to thumbnail image
version
integer
Current version number (read-only)
published
boolean
Whether the channel has been published
publishing
boolean
Whether the channel is currently being published
public
boolean
Whether the channel is publicly accessible
count
integer
Number of non-topic resources in the channel
created
string
Channel creation timestamp (ISO 8601)
modified
string
Last modification timestamp (ISO 8601)
last_published
string
Last publication timestamp (ISO 8601)
root_id
string
ID of the channel’s root content node
trash_root_id
string
ID of the channel’s trash tree root node
staging_root_id
string
ID of the channel’s staging tree root node
primary_token
string
Primary channel access token
content_defaults
object
Default settings for content in this channel
edit
boolean
Whether the current user has edit permissions
view
boolean
Whether the current user has view permissions
unpublished_changes
boolean
Whether there are unpublished changes
source_url
string
Original source URL for the channel content
demo_server_url
string
URL to demo server showcasing the channel

Build docs developers (and LLMs) love