Skip to content
Developers

Courses and content

Fields, lessons, office hours and sections for creating courses and content through the API.

Use these fields to publish courses and content (articles, videos and downloads) for your account or a community you manage. Both kinds use the shared operations in Events, courses, content, quests and jobs: list, create, get, update and archive on /api/v1/courses and /api/v1/content, with the same scopes, owner selector, visibility rules, Idempotency-Key header and limits. To enroll learners or track lesson progress, see Participation workflows.

The examples read the key from HIVE_API_KEY. Some field names still say community or person; both identify accounts.

#Course fields

Courses store the whole body in data. Responses add lessons, status and visibility.

FieldTypeNotes
titlestringRequired.
descriptionstringCourse summary.
lessonsarrayLesson objects. Each lesson needs a string id so learners can complete it through Participation workflows. Lessons grouped in sections[].lessons take precedence for progress.
officeHoursobjectOptional schedule. type is none, virtual or metaverse; other types need timezone and 1 to 7 blocks of { "daysOfWeek": [1, 3], "startTime": "10:00", "endTime": "11:00" }. virtual needs an http(s) url; metaverse needs a worldId. An invalid schedule returns 400 (Invalid office hours: …).
statusstringDefault published.
maxCapacityintegerEnrollment limit; a full course rejects enrollments.
visibility, subscriptionId, badgesAs in Shared behavior.
imageUrl, heroImage, imageStorageId, heroImageStorageIdstringCover images (thumbnailUrl, bannerImageUrl also work).
bash
curl -X POST https://app.hive3.tech/api/v1/courses \
  -H "Authorization: Bearer $HIVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Intro to Hive3","description":"Learn the basics.","lessons":[{"id":"lesson-1","title":"Welcome"}]}'

Returns 201 with type: "course", status: "published", the lessons array and a data object that echoes the body.

#Content fields

Content stores the whole body in data. Responses add contentType, headline, sections and tags.

FieldTypeNotes
titlestringRequired.
descriptionstringSummary.
contentTypestringFree text, default article. The app treats video specially.
headlinestringDefaults to the description.
sectionsarrayPage sections: { "sectionType": "text", "seqNr": 1, "items": [{ "seqNr": 1, "title": "…", "headline": "…", "content": "…", "image": "" }] }. Stored as sent.
tagsarrayTags.
attachmentUrl, attachmentStorageIdstringA linked or uploaded document (documentUrl also works).
visibility, subscriptionId, badgesAs in Shared behavior.
imageUrl, heroImage, imageStorageId, heroImageStorageIdstringCover images.
bash
curl -X POST https://app.hive3.tech/api/v1/content \
  -H "Authorization: Bearer $HIVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Release notes","contentType":"article","headline":"What changed in October","tags":["release"]}'

Returns 201 with type: "content", the contentType, headline, sections, tags and a data object that echoes the body.