Course 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)
namestringNo
descriptionstringNo
is_privatebooleanNo
is_activebooleanNo
price_amountnumberNoHow much the course costs
languagesstring[]No
categoriesstring[]No
currencystringNoThe currency code (ISO) of the course price
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
instructorsLmsReference[]No
instructors[].idstringNo
instructors[].namestringNo
studentsLmsReference[]No
students[].idstringNo
students[].namestringNo
content_idsstring[]No
skillsstring[]No
duration_minutesnumberNo
provider_namestringNo
published_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
time_estimate_minutesnumberNo

TypeScript

TypeScript
export type LmsCourse = {
	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)
	name?: string;
	description?: string;
	is_private?: boolean;
	is_active?: boolean;
	price_amount?: number; // How much the course costs
	languages?: string[];
	categories?: string[];
	currency?: string; // The currency code (ISO) of the course price
	media?: [];
	instructors?: [];
	students?: [];
	content_ids?: string[];
	skills?: string[];
	duration_minutes?: number;
	provider_name?: string;
	published_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	time_estimate_minutes?: number;
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodLmsCourse = 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)"),
	name: z.string().optional(),
	description: z.string().optional(),
	is_private: z.boolean().optional(),
	is_active: z.boolean().optional(),
	price_amount: z.number().optional().describe("How much the course costs"),
	languages: z.array().optional(),
	categories: z.array().optional(),
	currency: z.string().optional().describe("The currency code (ISO) of the course price"),
	media: z.array().optional(),
	instructors: z.array().optional(),
	students: z.array().optional(),
	content_ids: z.array().optional(),
	skills: z.array().optional(),
	duration_minutes: z.number().optional(),
	provider_name: z.string().optional(),
	published_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	time_estimate_minutes: z.number().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class LmsCourse:
	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]
	name: Optional[str]
	description: Optional[str]
	is_private: Optional[bool]
	is_active: Optional[bool]
	"""How much the course costs"""
	price_amount: Optional[int]
	languages: Optional[List[List[str]]]
	categories: Optional[List[List[str]]]
	"""The currency code (ISO) of the course price"""
	currency: Optional[str]
	media: Optional[PropertyLmsCourseMedia]
	instructors: Optional[PropertyLmsCourseInstructors]
	students: Optional[PropertyLmsCourseStudents]
	content_ids: Optional[List[List[str]]]
	skills: Optional[List[List[str]]]
	duration_minutes: Optional[int]
	provider_name: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	published_at: Optional[str]
	time_estimate_minutes: Optional[int]
Are we missing anything? Let us know
Was this page helpful?