Content data model

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
external_referencestringNo
course_idsstring[]No
namestringNo
descriptionstringNo
languagesstring[]No
mediaLmsMedia[]No
media[].urlstringNo
media[].namestringNo
media[].descriptionstringNo
media[].typeenumNoValues: IMAGE, HEADSHOT, VIDEO, WEB, DOCUMENT, TEXT, HTML, OTHER
media[].thumbnail_urlstringNo
media[].contentstringNoInline text/HTML/markdown content (use when url is empty or for embedded content)
media[].languagesstring[]NoISO 2-digit language codes
is_activebooleanNo
duration_minutesnumberNo
categoriesstring[]No
subjectsLmsSubject[]NoTopic taxonomy as {name, rank} pairs carrying the full ancestor chain (rank = depth, 0 = top level)
subjects[].namestringNo
subjects[].ranknumberNoDepth of this subject in the provider's topic hierarchy (0 = top level)
skillsstring[]No
tagsstring[]No
difficultystringNoDifficulty or level of the content (e.g. Beginner, Intermediate, Advanced)
sort_ordernumberNo
provider_namestringNo
short_descriptionstringNo
localizationsLmsContentLocalization[]No
localizations[].namestringNo
localizations[].descriptionstringNo
localizations[].languagestringNo
collection_idsstring[]No(reference to CommerceCollection)
instructorsLmsReference[]No
instructors[].idstringNo
instructors[].namestringNo
published_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

TypeScript

TypeScript
export type LmsContent = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	external_reference?: string;
	course_ids?: string[];
	name?: string;
	description?: string;
	languages?: string[];
	media?: [];
	is_active?: boolean;
	duration_minutes?: number;
	categories?: string[];
	subjects?: []; // Topic taxonomy as {name, rank} pairs carrying the full ancestor chain (rank = depth, 0 = top level)
	skills?: string[];
	tags?: string[];
	difficulty?: string; // Difficulty or level of the content (e.g. Beginner, Intermediate, Advanced)
	sort_order?: number;
	provider_name?: string;
	short_description?: string;
	localizations?: [];
	collection_ids?: string[]; // (reference to CommerceCollection)
	instructors?: [];
	published_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodLmsContent = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	external_reference: z.string().optional(),
	course_ids: z.array().optional(),
	name: z.string().optional(),
	description: z.string().optional(),
	languages: z.array().optional(),
	media: z.array().optional(),
	is_active: z.boolean().optional(),
	duration_minutes: z.number().optional(),
	categories: z.array().optional(),
	subjects: z.array().optional().describe("Topic taxonomy as {name, rank} pairs carrying the full ancestor chain (rank = depth, 0 = top level)"),
	skills: z.array().optional(),
	tags: z.array().optional(),
	difficulty: z.string().optional().describe("Difficulty or level of the content (e.g. Beginner, Intermediate, Advanced)"),
	sort_order: z.number().optional(),
	provider_name: z.string().optional(),
	short_description: z.string().optional(),
	localizations: z.array().optional(),
	collection_ids: z.array().optional().describe("(reference to CommerceCollection)"),
	instructors: z.array().optional(),
	published_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class LmsContent:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	external_reference: Optional[str]
	course_ids: Optional[List[List[str]]]
	name: Optional[str]
	description: Optional[str]
	languages: Optional[List[List[str]]]
	media: Optional[PropertyLmsContentMedia]
	is_active: Optional[bool]
	duration_minutes: Optional[int]
	categories: Optional[List[List[str]]]
	"""Topic taxonomy as {name, rank} pairs carrying the full ancestor chain (rank = depth, 0 = top level)"""
	subjects: Optional[PropertyLmsContentSubjects]
	skills: Optional[List[List[str]]]
	tags: Optional[List[List[str]]]
	"""Difficulty or level of the content (e.g. Beginner, Intermediate, Advanced)"""
	difficulty: Optional[str]
	sort_order: Optional[int]
	provider_name: Optional[str]
	short_description: Optional[str]
	localizations: Optional[PropertyLmsContentLocalizations]
	"""(reference to CommerceCollection)"""
	collection_ids: Optional[List[List[str]]]
	instructors: Optional[PropertyLmsContentInstructors]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	published_at: Optional[str]
Are we missing anything? Let us know
Was this page helpful?