List content actions
Enrollments, status changes, certificate grants and revoked access from the Content Actions Log.
GET https://cotlet.dev/api/v1/thought-industries/content-actions
Reads Reporting > Reports > Learner Actions > Content Actions Log with the same filters as the admin: date range, Panorama, content, learner, type and source. Each row has the learner email, Panorama, content type, content title, type, source and timestamp. type is enrollment, status_change, revoked_access or certificate_grant, and each source belongs to one type, for example course_completed under status_change. Use cursor to read every page.
Parameters
| Name | Type | Description |
|---|---|---|
| since date | date | Only actions on or after this date. |
| until date | date | Only actions on or before this date. |
| type enum | enum | enrollment, status_change, revoked_access or certificate_grant. |
| source string | string | A source value such as course_completed, manager_course_enrollment or auto_enrollment. |
| content string | string | Content title to filter by. |
| learner string | string | Learner email to filter by. |
| panorama string | string | Panorama (client) name to filter by. |
| cursor string | string | Next page cursor from the previous call. |
Request
curl "https://cotlet.dev/api/v1/thought-industries/content-actions?since=2026-10-12&until=2026-10-18&type=status_change&source=course_completed" \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("thought-industries", "list_content_actions", {"since":"2026-10-12","until":"2026-10-18","type":"status_change","source":"course_completed"}) const result = await cotlet.call('thought-industries', 'list_content_actions', {"since":"2026-10-12","until":"2026-10-18","type":"status_change","source":"course_completed"}); cotlet call thought-industries list_content_actions --data '{"since":"2026-10-12","until":"2026-10-18","type":"status_change","source":"course_completed"}' Example response
{
"actions": [
{
"email": "priya.nair@example.com",
"panorama": "Retail",
"content_type": "course",
"content_title": "Safety basics",
"type": "status_change",
"source": "course_completed",
"timestamp": "2026-10-13T14:02:00.000Z"
},
{
"email": "sam.okafor@example.com",
"panorama": "Field",
"content_type": "course",
"content_title": "Safety basics",
"type": "status_change",
"source": "course_completed",
"timestamp": "2026-10-15T09:41:00.000Z"
}
],
"next_cursor": null
}