Skip to main content
https://.thoughtindustries.com

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.

POSThttps://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

NameTypeRequiredLocationDescription
userIdstringYesbodyLearner to credit.
learningPathIdstringYesbodyLearning path ID.
statusenumNobodyDefaults to completed. One of: not-started, completed, started, not-completed.
completionDateISO 8601 timestampNobodyOnly valid with status: completed.
timeStampDateISO 8601 timestampNobodyOnly 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

FieldTypeDescription
(empty)200On success, returns 200 with an empty body.
errorsstring[]Validation error messages on 400.