Set content status

Mark a learner as not-started, started, completed or not-completed on content.

PUT https://cotlet.dev/api/v1/thought-industries/contents/{content_id}/status

write Confirm

Updates an existing learner through the bulk import with a status column, using the name already on the profile. status is not-started, started, completed or not-completed. completion_date records a date for the content, and the app accepts it only when no completion date exists for that learner and content. The change shows in the Content Actions Log as a status change. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: set_content_status
NameTypeDescription
learner string required string Learner email or learner_id from list_learners.
content_id string required string Course or other content ID from list_courses.
status enum required enum not-started, started, completed or not-completed.
completion_date date date Completion date, only when none is recorded yet.

Request

cURL
curl -X PUT https://cotlet.dev/api/v1/thought-industries/contents/content_8c41d2/status \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"learner":"learner","status":"not-started"}'
Python
result = client.call("thought-industries", "set_content_status", {"learner":"learner","content_id":"content_8c41d2","status":"not-started"})
Node.js
const result = await cotlet.call('thought-industries', 'set_content_status', {"learner":"learner","content_id":"content_8c41d2","status":"not-started"});
CLI
cotlet call thought-industries set_content_status --data '{"learner":"learner","content_id":"content_8c41d2","status":"not-started"}'

Example response

JSON

{
  "learner": "tom.becker@example.com",
  "content": "Safety basics",
  "status": "completed",
  "completion_date": "2026-10-14T00:00:00.000Z"
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.