Activity 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)
content_idstringNo
course_idstringNoFor providers that track at course level (e.g., Learnupon enrollments) (reference to Course)
student_idstringNo(reference to LmsStudent)
duration_minutesnumberNo
assigned_gradestringNo
is_completedbooleanNo
progress_percentagenumberNo
started_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
completed_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

TypeScript

TypeScript
export type LmsActivity = {
	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)
	content_id?: string;
	course_id?: string; // For providers that track at course level (e.g., Learnupon enrollments) (reference to Course)
	student_id?: string; // (reference to LmsStudent)
	duration_minutes?: number;
	assigned_grade?: string;
	is_completed?: boolean;
	progress_percentage?: number;
	started_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	completed_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodLmsActivity = 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)"),
	content_id: z.string().optional(),
	course_id: z.string().optional().describe("For providers that track at course level (e.g., Learnupon enrollments) (reference to Course)"),
	student_id: z.string().optional().describe("(reference to LmsStudent)"),
	duration_minutes: z.number().optional(),
	assigned_grade: z.string().optional(),
	is_completed: z.boolean().optional(),
	progress_percentage: z.number().optional(),
	started_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	completed_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class LmsActivity:
	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]
	content_id: Optional[str]
	"""For providers that track at course level (e.g., Learnupon enrollments) (reference to Course)"""
	course_id: Optional[str]
	"""(reference to LmsStudent)"""
	student_id: Optional[str]
	duration_minutes: Optional[int]
	assigned_grade: Optional[str]
	is_completed: Optional[bool]
	progress_percentage: Optional[int]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	started_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	completed_at: Optional[str]
Are we missing anything? Let us know
Was this page helpful?