Record Learning Path External Activity
Records an external activity completion or progress status against a learning path. Requires the `externalActivity` feature to be enabled
Record an external activity completion or progress status against a learning path.
POST
https://example.thoughtindustries.com/incoming/v2/learningPathExternalActivity:::note
Feature flag: Requires the externalActivity feature to be enabled on the company.
:::
Example request (completion)
curl -X POST "https://example.thoughtindustries.com/incoming/v2/learningPathExternalActivity" \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"userId": "123e4567-e89b-12d3-a456-426614174000",
"learningPathId": "223e4567-e89b-12d3-a456-426614174000",
"status": "completed",
"completionDate": "2026-01-15T00:00:00.000Z"
}'Example request (in-progress)
Record in-progress activity with timeStampDate (only valid for non-completed statuses):
curl -X POST "https://example.thoughtindustries.com/incoming/v2/learningPathExternalActivity" \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"userId": "123e4567-e89b-12d3-a456-426614174000",
"learningPathId": "223e4567-e89b-12d3-a456-426614174000",
"status": "started",
"timeStampDate": "2026-01-10T00:00:00.000Z"
}'Parameters
| Name | Type | Required | Location | Description |
|---|---|---|---|---|
userId | string | Yes | body | Learner to credit. |
learningPathId | string | Yes | body | Learning path ID. |
status | enum | No | body | Defaults to completed. One of: not-started, completed, started, not-completed. |
completionDate | ISO 8601 timestamp | No | body | Only valid with status: completed. |
timeStampDate | ISO 8601 timestamp | No | body | Only valid with a non-completed status. |
Example response
On success the endpoint returns 200:
HTTP/1.1 200 OK
Validation errors
Validation failures return 400:
{
"errors": ["completion date cannot be passed with non-completed status"]
}Other validation messages include:
"invalid status"— status is not one of the allowed values."timestamp date cannot be passed with completed status or no status""invalid completionDate. please use ISO 8601 format""invalid timestampDate. please use ISO 8601 format"
Response fields
| Field | Type | Description |
|---|---|---|
(empty) | 200 | On success, returns 200 with an empty body. |
errors | string[] | Validation error messages on 400. |