Skip to main content

Courses

A course represents an academic program — a degree, diploma, professional course, or training program. It connects modules into a structured curriculum and provides the academic context for certificates.

The course object

{
  "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "code": "BCS-2024",
  "name": "Bachelor of Computer Science",
  "description": "A 4-year undergraduate program in computer science.",
  "workload_hours": 3200,
  "area": "Technology",
  "version": "2024.1",
  "status": "active",
  "institution": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Federal University of Technology"
  },
  "organization": null,
  "created_at": "2024-01-15T10:00:00.000000Z"
}
FieldTypeDescription
uuidstringUnique identifier
codestringInternal course code
namestringCourse name (max 255 chars)
descriptionstringDescription of the program
workload_hoursintegerTotal program hours
areastringKnowledge area (e.g., Technology, Health)
versionstringCurriculum version
statusenumdraft, active, archived
institutionobjectParent institution
organizationobject|nullOptional sub-unit (faculty/department)

List courses

GET /courses
curl "https://api.dokstamp.eu/courses?where[status]=active&sort[column]=name" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "X-Tenant: {TENANT}"

Create a course

POST /courses
ParameterTypeRequiredDescription
namestringYesCourse name
institution_uuidstringYesParent institution UUID
codestringNoInternal code
descriptionstringNoProgram description
workload_hoursintegerNoTotal program hours
areastringNoKnowledge area
versionstringNoCurriculum version
statusenumNodraft (default), active, archived
organization_uuidstringNoSub-unit (faculty/department) UUID
curl -X POST https://api.dokstamp.eu/courses \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{
    "name": "Bachelor of Computer Science",
    "code": "BCS-2024",
    "institution_uuid": "550e8400-e29b-41d4-a716-446655440000",
    "workload_hours": 3200,
    "area": "Technology",
    "version": "2024.1",
    "status": "active"
  }'
Response 201:
{
  "data": {
    "uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "name": "Bachelor of Computer Science",
    "status": "active",
    ...
  }
}

Get, update, delete

GET    /courses/{uuid}
PATCH  /courses/{uuid}
PUT    /courses/{uuid}
DELETE /courses/{uuid}
DELETE /courses/batch/destroy

Status transitions

StatusMeaning
draftCourse is being configured — not yet accepting enrollments
activeCourse is live — certificates can be issued
archivedCourse is no longer offered — historical records remain

Next steps for courses

After creating a course:
  1. Attach modulesCourse Modules
  2. Create module groupsModule Groups
  3. Create cohortsCohorts
  4. Issue certificatesCertificates