MCP-Server

HiveLearn

io.github.williamechevarria/hivelearn-mcp
Bildung Wissen & Dokumentation Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Creates and manages courses, lessons, quizzes, enrollments, learning tracks, events, certificates, resources, progress, and community learning content.

hivelearn_add_member_tag
Assign a tag to a member. Idempotent: returns the existing assignment if already tagged.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'tag_id'], 'properties': {'tag_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Tag uuid from list_member_tags'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': "Member's user (profile) uuid, not the membership row id"}}}
hivelearn_add_track_course
Add a course to a track at a given position. sort_order sets the order within the track. Set unlock_after_course_id to a prerequisite course that must be completed first (omit/null for no gate). is_required defaults to true.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['track_id', 'course_id', 'sort_order'], 'properties': {'track_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'sort_order': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Position within the track'}, 'is_required': {'type': 'boolean', 'description': 'Defaults to true'}, 'unlock_after_course_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Prerequisite course id, or null for no gate'}}}
hivelearn_create_certificate
Issue a certificate of completion to a user for a course. Normally the platform auto-issues on course completion — use this tool for bulk backfill or manual awards.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'course_id'], 'properties': {'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'expires_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'ISO timestamp; omit or null for no expiry'}, 'final_score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'completion_date': {'type': 'string', 'description': 'ISO timestamp; defaults to now'}, 'instructor_name': {'type': 'string'}}}
hivelearn_create_course
Create an empty course (no modules/lessons). Prefer hivelearn_create_course_outline when you already know the structure — it scaffolds course + modules + lesson placeholders in one call.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1}, 'difficulty': {'anyOf': [{'enum': ['beginner', 'intermediate', 'advanced'], 'type': 'string'}, {'type': 'null'}]}, 'visibility': {'enum': ['all_members', 'admin_only'], 'type': 'string', 'description': 'Defaults to all_members'}, 'description': {'type': 'string'}, 'thumbnail_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'instructor_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}, 'instructor_avatar_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}}}
hivelearn_create_course_outline
Scaffold an entire course in one call: course + modules + lesson placeholders (title/description only, no content yet). After this, loop over the returned lesson ids with hivelearn_update_lesson_content to fill in video/document URLs. This is the preferred first step when authoring a new course from a plan.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'modules'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1}, 'modules': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'minLength': 1}, 'lessons': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'minLength': 1}, 'description': {'type': 'string'}}}}}}, 'minItems': 1, 'description': 'Ordered list of modules; each with optional lesson placeholders'}, 'difficulty': {'anyOf': [{'enum': ['beginner', 'intermediate', 'advanced'], 'type': 'string'}, {'type': 'null'}]}, 'visibility': {'enum': ['all_members', 'admin_only'], 'type': 'string'}, 'description': {'type': 'string'}, 'thumbnail_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'instructor_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}, 'instructor_avatar_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}}}
hivelearn_create_discussion
Start a discussion as the API key's owner. It is published and visible to all members immediately, and notifies every member who has new-discussion notifications on.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Tag list'}, 'title': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Discussion title'}, 'content': {'type': 'string', 'maxLength': 20000, 'description': 'Plain-text/markdown body. Required unless content_json is given.'}, 'category': {'type': 'string', 'description': 'Category label, default "General"'}, 'content_json': {'description': 'Tiptap JSON body (alternative to content)'}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string', 'description': "Defaults to 'tiptap_json' with content_json, else 'markdown'"}}}
hivelearn_create_discussion_reply
Reply to a discussion as the API key's owner. The reply is visible to all members immediately and notifies the discussion author. Fails with 409 if the discussion is locked. Set parent_reply_id to nest under another reply.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Discussion uuid'}, 'content': {'type': 'string', 'maxLength': 20000, 'description': 'Plain-text/markdown body. Required unless content_json is given.'}, 'content_json': {'description': 'Tiptap JSON body (alternative to content)'}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string', 'description': "Defaults to 'tiptap_json' with content_json, else 'markdown'"}, 'parent_reply_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Reply uuid in the same discussion to nest under'}}}
hivelearn_create_enrollment
Enroll a user in a course. Both user_id and course_id must belong to the authenticated community. Duplicate enrollments are rejected.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'course_id'], 'properties': {'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_create_event
Create a calendar event. Dates are ISO 8601 strings in UTC. For virtual events set meeting_url; for in-person set location. event_type controls which field the UI shows.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'event_type', 'start_date', 'end_date'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string', 'minLength': 1}, 'end_date': {'type': 'string', 'description': 'ISO 8601 timestamp'}, 'location': {'type': 'string'}, 'timezone': {'type': 'string', 'description': 'IANA tz, e.g. "America/New_York"'}, 'event_type': {'enum': ['virtual', 'in-person', 'hybrid'], 'type': 'string'}, 'start_date': {'type': 'string', 'description': 'ISO 8601 timestamp'}, 'description': {'type': 'string'}, 'meeting_url': {'type': 'string', 'format': 'uri'}, 'max_attendees': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'cover_image_url': {'type': 'string', 'format': 'uri'}, 'description_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}}}
hivelearn_create_lesson
Add a lesson to a course. content_type must match content_url (e.g. youtube URL → content_type:youtube). Set module_id=null to leave the lesson unassigned; otherwise pass a module uuid from list_course_modules.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['course_id', 'title', 'content_url'], 'properties': {'title': {'type': 'string', 'minLength': 1}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'module_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'is_preview': {'type': 'boolean', 'description': 'If true, visible to non-enrolled users'}, 'sort_order': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'content_url': {'type': 'string', 'format': 'uri'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'content_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'content_type': {'enum': ['youtube', 'google_drive', 'video', 'image', 'document', 'pitch'], 'type': 'string'}, 'is_published': {'type': 'boolean'}, 'thumbnail_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}, 'duration_seconds': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}
hivelearn_create_member_note
Add a private admin note to a member. The author is the API key's creator.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'note'], 'properties': {'note': {'type': 'string', 'maxLength': 10000, 'minLength': 1, 'description': 'Note text'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': "Member's user (profile) uuid, not the membership row id"}}}
hivelearn_create_member_tag
Create a member tag. Names are unique per community (409 on duplicate).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Tag name'}, 'color': {'type': 'string', 'pattern': '^#[0-9a-fA-F]{6}$', 'description': 'Hex color, e.g. #4361EE'}}}
hivelearn_create_module
Add a module to a course. sort_order is optional — server auto-appends if omitted.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['course_id', 'title'], 'properties': {'title': {'type': 'string', 'minLength': 1}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'sort_order': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}
hivelearn_create_post
Publish a new post to the community feed. Either content (markdown) or content_json (tiptap) is required. content_format must match which field you sent. category is optional — omit for default "general".
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'content': {'type': 'string', 'description': 'Markdown body (use when content_format=markdown)'}, 'category': {'type': 'string'}, 'content_json': {'type': 'object', 'description': 'Tiptap JSON doc (use when content_format=tiptap_json)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string', 'description': 'Defaults to markdown'}}}
hivelearn_create_post_comment
Comment on a feed post as the API key's owner. The comment is visible to all members immediately, notifies the post author, and awards comment points. Set parent_comment_id to reply to another comment on the same post.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['post_id'], 'properties': {'content': {'type': 'string', 'maxLength': 20000, 'description': 'Plain-text/markdown body. Required unless content_json is given.'}, 'post_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Post uuid (from list_posts)'}, 'content_json': {'description': 'Tiptap JSON body (alternative to content)'}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string', 'description': "Defaults to 'tiptap_json' with content_json, else 'markdown'"}, 'parent_comment_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Comment uuid on the same post to reply to'}}}
hivelearn_create_question_bank
Create an empty question bank. Add questions with hivelearn_create_question_bank_item.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 5000}, {'type': 'null'}]}}}
hivelearn_create_question_bank_item
Add a question to a bank. Supports all 6 types; supply the answer field for the type: options (multiple_choice / multi_select), correct_answer (true_false), accepted_answers (fill_in_blank), pairs (matching), items (ordering).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bank_id', 'question_text', 'question_type'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'position': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}}, 'description': 'ordering only; correct order is position 1..n, or array order if positions are omitted'}, 'pairs': {'type': 'array', 'items': {'type': 'object', 'required': ['left', 'right'], 'properties': {'id': {'type': 'string'}, 'left': {'type': 'string', 'minLength': 1}, 'right': {'type': 'string', 'minLength': 1}}}, 'description': 'matching only; at least 2 pairs'}, 'points': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Defaults to 1', 'exclusiveMinimum': 0}, 'bank_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'is_correct': {'type': 'boolean'}}}, 'description': 'multiple_choice (exactly one is_correct:true) or multi_select (one or more). 2-12 entries.'}, 'explanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'question_text': {'type': 'string', 'minLength': 1}, 'question_type': {'enum': ['multiple_choice', 'true_false', 'fill_in_blank', 'multi_select', 'matching', 'ordering'], 'type': 'string'}, 'correct_answer': {'type': 'boolean', 'description': 'true_false only'}, 'accepted_answers': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'description': 'fill_in_blank only; matched case-insensitively'}}}
hivelearn_create_quiz
Create a quiz attached to a lesson. passing_score is 0-100 (percent). Omit time_limit_seconds or max_attempts for unlimited.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lesson_id', 'title'], 'properties': {'title': {'type': 'string', 'minLength': 1}, 'lesson_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'max_attempts': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'passing_score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'shuffle_questions': {'type': 'boolean'}, 'time_limit_seconds': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}}}
hivelearn_create_quiz_question
Add a question to a quiz. Supply the answer field for the type: multiple_choice → options [{text, is_correct}] with exactly one is_correct:true; multi_select → options with one or more correct; true_false → correct_answer (boolean); fill_in_blank → accepted_answers; matching → pairs [{left, right}]; ordering → items [{text}] in correct order (or with position 1..n).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['quiz_id', 'question_text', 'question_type'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'position': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}}, 'description': 'ordering only; correct order is position 1..n, or array order if positions are omitted'}, 'pairs': {'type': 'array', 'items': {'type': 'object', 'required': ['left', 'right'], 'properties': {'id': {'type': 'string'}, 'left': {'type': 'string', 'minLength': 1}, 'right': {'type': 'string', 'minLength': 1}}}, 'description': 'matching only; at least 2 pairs'}, 'points': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Defaults to 1', 'exclusiveMinimum': 0}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'is_correct': {'type': 'boolean'}}}, 'description': 'multiple_choice (exactly one is_correct:true) or multi_select (one or more). 2-12 entries.'}, 'quiz_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'sort_order': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'explanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'question_text': {'type': 'string', 'minLength': 1}, 'question_type': {'enum': ['multiple_choice', 'true_false', 'fill_in_blank', 'multi_select', 'matching', 'ordering'], 'type': 'string'}, 'correct_answer': {'type': 'boolean', 'description': 'true_false only'}, 'accepted_answers': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'description': 'fill_in_blank only; matched case-insensitively'}}}
hivelearn_create_resource
Add a resource to the community library. Supply either resource_url (external link) or file_url (already-uploaded file) — at least one is required. price must be > 0 if set (omit for free). access_level defaults to public.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20}, 'price': {'type': 'number', 'description': 'One-time price (> 0); omit for free', 'exclusiveMinimum': 0}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'file_url': {'type': 'string', 'format': 'uri', 'description': 'For already-uploaded file resources'}, 'folder_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'is_premium': {'type': 'boolean'}, 'description': {'type': 'string', 'maxLength': 20000}, 'access_level': {'enum': ['public', 'members', 'premium'], 'type': 'string', 'description': 'Defaults to public'}, 'is_published': {'type': 'boolean', 'description': 'Defaults to true'}, 'resource_url': {'type': 'string', 'format': 'uri', 'description': 'For external-link resources'}, 'resource_type': {'enum': ['guide', 'toolkit', 'course', 'checklist', 'template', 'other'], 'type': 'string', 'description': 'Defaults to "guide"'}, 'cover_image_url': {'type': 'string', 'format': 'uri'}}}
hivelearn_create_resource_folder
Create a resource-library folder. parent_folder_id (optional) must be a folder in the same community. Names must be unique among siblings (409). price must be > 0 if set.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'icon': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Icon name, defaults to "folder"'}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'color': {'type': 'string', 'pattern': '^#[0-9A-Fa-f]{6}$', 'description': '#RRGGBB hex color'}, 'price': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'position': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Sort order among siblings'}, 'description': {'type': 'string', 'maxLength': 2000}, 'parent_folder_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Parent folder; omit/null for top level'}}}
hivelearn_create_track
Create a learning track (curated course sequence). After this, add courses in order with hivelearn_add_track_course. is_published defaults to false — publish once the curriculum is set.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'description': {'type': 'string', 'maxLength': 20000}, 'is_featured': {'type': 'boolean'}, 'is_published': {'type': 'boolean', 'description': 'Defaults to false'}, 'thumbnail_url': {'type': 'string', 'format': 'uri'}, 'estimated_hours': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'difficulty_level': {'enum': ['beginner', 'intermediate', 'advanced'], 'type': 'string'}}}
hivelearn_generate_ai_course
Generate a full course with AI and return a job_id to poll with hivelearn_get_ai_job. SPENDS the key creator's AI credits: 1 credit, or 5 for hybrid_chapters (paid plans only). Confirm with the user before calling. Requires the explicit generate:ai_courses scope, which admin:* does NOT include. source_type video_url imports a public YouTube/Vimeo/Loom link; every other type needs a file already uploaded to HiveLearn media storage (external URLs are rejected). Limited to 2 running and 10 per hour.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source_type', 'source_url'], 'properties': {'source_url': {'type': 'string', 'format': 'uri', 'description': 'Video link for video_url; otherwise an https URL on the HiveLearn media host'}, 'video_mode': {'enum': ['none', 'intro_only', 'hybrid_chapters'], 'type': 'string', 'description': 'none/intro_only = 1 credit, hybrid_chapters = 5. Default intro_only; forced to none for video_url'}, 'context_url': {'type': 'string', 'format': 'uri', 'description': 'Optional supporting document on the HiveLearn media host'}, 'source_type': {'enum': ['document', 'audio', 'video', 'video_url'], 'type': 'string'}, 'style_preset': {'type': 'string', 'description': 'Thumbnail style preset key; unknown values are ignored'}, 'content_depth': {'enum': ['auto', 'concise', 'standard', 'deep'], 'type': 'string'}, 'brand_intensity': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'include_quizzes': {'type': 'boolean'}, 'source_filename': {'type': 'string', 'minLength': 1, 'description': 'Required for every type except video_url'}, 'include_intro_video': {'type': 'boolean'}, 'include_recap_video': {'type': 'boolean', 'description': 'Opt-in second avatar clip'}, 'quiz_questions_per_chapter': {'type': 'integer', 'maximum': 10, 'minimum': 2}}}
hivelearn_get_ai_credits
AI credit balance for the API key's creator: monthly allowance remaining, purchased top-ups (never expire), total available, reset date, and whether the AI Course Builder is enabled for this community. Check this before generating. Needs scope read:ai.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
hivelearn_get_ai_job
Status and progress of one AI generation job. Poll after hivelearn_generate_ai_course. status is queued | processing | completed | failed | refunded; current_step shows the phase; course_id is the resulting course. A job that stays queued with started_at null was never picked up and is failed and refunded automatically within about an hour. Needs scope read:ai.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_analytics_summary
Community analytics over a trailing window of `days` (default 30): total and new members, posts created, enrollments (total, new, completions, completion rate), published courses, and events created/held with RSVPs and check-ins. Definitions match the admin dashboard. Requires read:analytics.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Trailing window in days (1-365), default 30'}}}
hivelearn_get_assignment_submission
Fetch one assignment submission: text/url, status, instructor feedback and reviewer. Requires read:courses.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Submission uuid'}}}
hivelearn_get_certificate
Fetch one certificate by id. Includes verification_code and download URL.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_community_me
Returns the community the current API key is scoped to. Use this first whenever you need the community_id, owner, slug, or tier — the API key determines tenancy, you cannot switch community.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
hivelearn_get_course
Fetch one course with full metadata (description, instructor, tags, flags). For the lesson tree use hivelearn_get_course_structure instead.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_course_analytics
Per-course analytics for the community (newest course first): enrollments, new enrollments and completions in the last `days`, completion rate, average progress, and average rating. Paginated. Requires read:analytics.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Trailing window in days (1-365), default 30'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_get_course_gradebook
Quiz-score gradebook for a course: per-user quiz attempts, scores, pass/fail. Use for analytics or grading dashboards.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['course_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_course_progress
Aggregate lesson-completion progress for a course across enrolled users. Returns per-user percent_complete, last_accessed_at, completed_lesson_count.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['course_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Scope to one user'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_course_structure
Return a compact titles-only tree of the course: course → modules → lessons. Ideal for agents to plan reorders, spot empty lessons, or summarize a course. Does NOT include lesson body content.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_discussion
Fetch one discussion by uuid, with author. Use list_discussion_replies for its replies.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Discussion uuid (from list_discussions)'}}}
hivelearn_get_enrollment
Fetch one enrollment with status and progress.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_event
Fetch one event by id with full description and RSVP metadata.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_leaderboard
Ranked member leaderboard for the community. period chooses the window: all_time (default), 30_day, or 7_day. Each entry carries rank and the points for the selected period, plus level info.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'period': {'enum': ['all_time', '30_day', '7_day'], 'type': 'string', 'description': 'Defaults to all_time'}}}
hivelearn_get_member
Fetch a single member by profile uuid. Returns the same fields as list_members for one row.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Profile uuid (matches the id from list_members)'}}}
hivelearn_get_member_health
Get a member's health score (engagement, activity, risk level). 404 until the daily job has scored them.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': "Member's user (profile) uuid, not the membership row id"}}}
hivelearn_get_member_points
Full points breakdown for one member (by auth user id) in the community: total, per-category (posts/comments/events/courses/engagement), period totals, level. 404 if the member has no points record here.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'The auth user id (community_members.user_id)'}}}
hivelearn_get_post
Fetch one post with full content. Reply thread is NOT included — this is the post itself only.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_question_bank
Fetch one question bank with its item_count. Items are listed separately via hivelearn_list_question_bank_items.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_quiz
Fetch one quiz with metadata (passing_score, time_limit, max_attempts). Questions are NOT included — use hivelearn_list_quiz_questions.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_resource
Fetch one published resource by id, with joined author. 404 if unpublished or in another community.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_resource_folder
Fetch one resource folder by id, with its resource_count. 404 if it belongs to another community.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_track
Fetch one learning track by id with full metadata. For its ordered curriculum use hivelearn_list_track_courses.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_get_track_progress
Per-member progress through a learning track: enrolled_at, started_at, completed_at, total_courses, completed counts. Use for cohort/track analytics.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['track_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'track_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_grade_assignment_submission
Review an assignment submission: sets status (reviewed, approved, revision_requested, submitted) and instructor feedback, recorded as reviewed by the API key's creator. This changes a member's record and the student will see it. revision_requested requires feedback. Requires write:grades.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Submission uuid'}, 'status': {'enum': ['submitted', 'reviewed', 'approved', 'revision_requested'], 'type': 'string'}, 'feedback': {'type': 'string', 'maxLength': 10000, 'description': 'Feedback shown to the student'}}}
hivelearn_list_ai_jobs
List the key creator's AI course generation jobs in this community, newest first, with status and progress. Needs scope read:ai.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_list_assignment_submissions
List assignment submissions in the community, newest first, with student profile and lesson title. Filter by course_id, lesson_id or status. Requires read:courses.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'status': {'enum': ['submitted', 'reviewed', 'approved', 'revision_requested'], 'type': 'string'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'lesson_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_certificates
List issued certificates, optionally scoped to one user or one course. Returns id, user, course, verification_code, status, issued_at.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_course_lessons
List lessons of a course, optionally filtered to one module. Use hivelearn_get_course_structure for a nested tree.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['course_id'], 'properties': {'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'module_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_course_modules
List modules (sections) of a course, ordered by sort_order. Modules group lessons; a course has 1..N modules.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['course_id'], 'properties': {'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_courses
List courses in the authenticated community. status=published returns only courses visible to learners. Returns id, title, visibility, is_published, thumbnail_url, timestamps.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'status': {'enum': ['draft', 'published', 'all'], 'type': 'string', 'description': 'Defaults to "all"'}}}
hivelearn_list_discussion_replies
List replies in a discussion, oldest first. Returns id, content, parent_reply_id, is_accepted_answer, author, likes_count.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Discussion uuid'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_list_discussions
List published discussions (forum threads), pinned first then newest. Returns id, title, content, category, tags, reply/like counts, is_locked, author.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'category': {'type': 'string', 'description': 'Filter by exact category'}}}
hivelearn_list_enrollments
List course enrollments, optionally scoped to one course or one user. Returns enrollment_id, user_id, course_id, status, progress %, enrolled_at, completed_at.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_event_attendees
List an event's attendees with check-in status and basic profile. source='rsvp' (default) for free RSVPs, 'ticket' for paid ticket purchases. Requires scope read:events.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'source': {'enum': ['rsvp', 'ticket'], 'type': 'string', 'description': "'rsvp' (default) or 'ticket'"}, 'event_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Event UUID'}, 'rsvp_status': {'enum': ['going', 'maybe', 'not_going'], 'type': 'string', 'description': 'Filter RSVPs (source=rsvp)'}, 'payment_status': {'enum': ['pending', 'succeeded', 'failed', 'refunded', 'partially_refunded'], 'type': 'string', 'description': 'Filter tickets (source=ticket)'}}}
hivelearn_list_events
List community events. Use upcoming=true for future events only (recommended for calendar UI). Returns id, title, start/end dates, event_type, location/meeting_url, attendee counts.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'upcoming': {'type': 'boolean', 'description': 'If true, only events with start_date in the future'}}}
hivelearn_list_event_waitlist
List an event's waitlist in queue order (oldest first) with position and basic profile. Requires scope read:events.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'event_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Event UUID'}}}
hivelearn_list_member_notes
List private admin notes on a member, newest first.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': "Member's user (profile) uuid, not the membership row id"}}}
hivelearn_list_members
List members of the authenticated community. Returns id (profile uuid), role, email, display_name, avatar_url, and joined_at. Filter by role to find admins/owners.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'role': {'enum': ['owner', 'admin', 'moderator', 'member'], 'type': 'string', 'description': 'Restrict to a single role'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_list_member_tag_assignments
List the tags assigned to a member.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': "Member's user (profile) uuid, not the membership row id"}}}
hivelearn_list_member_tags
List the community's member tags (id, name, color).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_list_post_comments
List comments on a feed post, oldest first. Returns id, content, parent_comment_id, author, likes_count, timestamps. 404 if the post is not in this community.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['post_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'post_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Post uuid (from list_posts)'}}}
hivelearn_list_posts
List community feed posts, newest first. Use category to filter (e.g. "announcements"). Returns id, title, content, category, author, reply counts, timestamps.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'category': {'type': 'string', 'description': 'Filter by category slug'}}}
hivelearn_list_question_bank_items
List the questions in a bank, WITH the answer key (is_correct, pairs/items, explanation). Authoring view for admins.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bank_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'bank_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_question_banks
List question banks (reusable question pools that bank-draw quizzes sample from), newest first.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_list_quiz_attempts
List attempts for one quiz: learner, score (0-100), points, passed, started_at and completed_at (null = in progress). Never includes answers or answer keys. Requires read:courses.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['quiz_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'quiz_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Quiz uuid'}, 'user_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Only this learner'}}}
hivelearn_list_quiz_questions
List all questions for a quiz, ordered by sort_order. Each question carries its options and correct answer.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['quiz_id'], 'properties': {'quiz_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_quizzes
List quizzes, optionally scoped to a course or a specific lesson. Each quiz belongs to one lesson.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'course_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'lesson_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_resource_folders
List resource-library folders in the authenticated community, ordered by position then name. Folders nest via parent_folder_id; pass parent_folder_id="root" for top-level only, or a folder id for its children. Each folder includes resource_count.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'parent_folder_id': {'type': 'string', 'description': 'Folder id, or "root" for top-level folders'}}}
hivelearn_list_resources
List published resources in the authenticated community, newest first. Filter by folder_id, resource_type, or access_level. Returns id, title, resource_type, resource_url/file_url, access_level, counts (downloads, views, favorites), author. The internal storage key is never exposed.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'folder_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Filter to a single resource folder'}, 'access_level': {'enum': ['public', 'members', 'premium'], 'type': 'string'}, 'resource_type': {'enum': ['guide', 'toolkit', 'course', 'checklist', 'template', 'other'], 'type': 'string'}}}
hivelearn_list_segment_members
List members matching a segment's rules, evaluated server-side the same way the admin CRM does.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['segment_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}, 'segment_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Segment uuid'}}}
hivelearn_list_segments
List saved member segments with their filter rules.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_list_track_courses
Return the ordered curriculum of a track: its courses with sort_order, is_required, and unlock_after_course_id (prerequisite gating).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['track_id'], 'properties': {'track_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_list_tracks
List published learning tracks (curated course sequences) in the community, newest first. Returns id, title, description, difficulty_level, estimated_hours, flags.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, default 20'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip, default 0'}}}
hivelearn_publish_course
Publish a course: sets is_published=true after validating that every lesson has content_url. Returns error if any lesson is still empty — run hivelearn_get_course_structure to diagnose.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
hivelearn_reorder_module_lessons
Set the full lesson order within a module in one atomic call. Pass the desired final order as lesson_ids — every lesson currently in the module must appear exactly once.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['module_id', 'lesson_ids'], 'properties': {'module_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'lesson_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'minItems': 1}}}
hivelearn_update_certificate
Change a certificate status. Use "revoked" to invalidate (verify endpoint will reject).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'status': {'enum': ['active', 'revoked', 'expired'], 'type': 'string'}}}
hivelearn_update_course
Edit course metadata. Use hivelearn_publish_course instead of setting is_published=true directly — publish runs validation.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'is_pinned': {'type': 'boolean'}, 'difficulty': {'anyOf': [{'enum': ['beginner', 'intermediate', 'advanced'], 'type': 'string'}, {'type': 'null'}]}, 'visibility': {'enum': ['all_members', 'admin_only'], 'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_featured': {'type': 'boolean'}, 'is_published': {'type': 'boolean'}, 'thumbnail_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'instructor_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}, 'instructor_avatar_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}}}
hivelearn_update_event
Edit an event. Set is_cancelled=true to cancel (preserves history). Set max_attendees=null to lift the cap.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'title': {'type': 'string'}, 'end_date': {'type': 'string'}, 'location': {'type': 'string'}, 'timezone': {'type': 'string'}, 'event_type': {'enum': ['virtual', 'in-person', 'hybrid'], 'type': 'string'}, 'start_date': {'type': 'string'}, 'description': {'type': 'string'}, 'meeting_url': {'type': 'string', 'format': 'uri'}, 'is_cancelled': {'type': 'boolean'}, 'max_attendees': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'cover_image_url': {'type': 'string', 'format': 'uri'}, 'description_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}}}
hivelearn_update_lesson
Edit lesson metadata or move it between modules. To edit ONLY the content body use hivelearn_update_lesson_content (narrower scope, safer).
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'title': {'type': 'string'}, 'module_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'is_preview': {'type': 'boolean'}, 'sort_order': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'content_url': {'type': 'string', 'format': 'uri'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'content_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'content_type': {'enum': ['youtube', 'google_drive', 'video', 'image', 'document', 'pitch'], 'type': 'string'}, 'is_published': {'type': 'boolean'}, 'thumbnail_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}, 'duration_seconds': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}
hivelearn_update_lesson_content
Replace just the content of a lesson — URL, content_type, and optional description/duration/thumbnail. Narrower than update_lesson; safe for bulk agent writes. Does NOT change title, sort_order, or module assignment.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'content_url': {'type': 'string', 'format': 'uri'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'content_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'content_type': {'enum': ['youtube', 'google_drive', 'video', 'image', 'document', 'pitch'], 'type': 'string'}, 'thumbnail_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}, 'duration_seconds': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}
hivelearn_update_member
Change a member's role or ban status. role accepts member/moderator/admin (owner cannot be assigned via the API). Set is_banned=true to ban, false to lift. At least one field required.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Profile uuid (matches the id from list_members)'}, 'role': {'enum': ['member', 'moderator', 'admin'], 'type': 'string'}, 'is_banned': {'type': 'boolean'}}}
hivelearn_update_module
Rename or reorder a module. To reorder lessons within a module use hivelearn_reorder_module_lessons.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'title': {'type': 'string'}, 'sort_order': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}}
hivelearn_update_post
Edit an existing post. Only include fields you want to change. Use is_pinned to pin/unpin a post from the top of the feed.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'content': {'type': 'string'}, 'category': {'type': 'string'}, 'is_pinned': {'type': 'boolean'}, 'content_json': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'content_format': {'enum': ['markdown', 'tiptap_json'], 'type': 'string'}}}
hivelearn_update_question_bank
Rename a question bank or change its description.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 5000}, {'type': 'null'}]}}}
hivelearn_update_question_bank_item
Edit a bank question. Changing question_type or any answer field rebuilds the answer key, so resupply the answer field for the (new) type.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'position': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}}, 'description': 'ordering only; correct order is position 1..n, or array order if positions are omitted'}, 'pairs': {'type': 'array', 'items': {'type': 'object', 'required': ['left', 'right'], 'properties': {'id': {'type': 'string'}, 'left': {'type': 'string', 'minLength': 1}, 'right': {'type': 'string', 'minLength': 1}}}, 'description': 'matching only; at least 2 pairs'}, 'points': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'is_correct': {'type': 'boolean'}}}, 'description': 'multiple_choice (exactly one is_correct:true) or multi_select (one or more). 2-12 entries.'}, 'explanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'question_text': {'type': 'string', 'minLength': 1}, 'question_type': {'enum': ['multiple_choice', 'true_false', 'fill_in_blank', 'multi_select', 'matching', 'ordering'], 'type': 'string'}, 'correct_answer': {'type': 'boolean', 'description': 'true_false only'}, 'accepted_answers': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'description': 'fill_in_blank only; matched case-insensitively'}}}
hivelearn_update_quiz
Edit quiz settings. Cannot move a quiz to a different lesson — create a new one instead.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'title': {'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'max_attempts': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'passing_score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'shuffle_questions': {'type': 'boolean'}, 'time_limit_seconds': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}}}
hivelearn_update_quiz_question
Edit a question. Sending question_type or any answer field (options, correct_answer, accepted_answers, pairs, items) rebuilds the answer key, so supply the full answer for the effective type.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'position': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}}}, 'description': 'ordering only; correct order is position 1..n, or array order if positions are omitted'}, 'pairs': {'type': 'array', 'items': {'type': 'object', 'required': ['left', 'right'], 'properties': {'id': {'type': 'string'}, 'left': {'type': 'string', 'minLength': 1}, 'right': {'type': 'string', 'minLength': 1}}}, 'description': 'matching only; at least 2 pairs'}, 'points': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'options': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'id': {'type': 'string'}, 'text': {'type': 'string', 'minLength': 1}, 'is_correct': {'type': 'boolean'}}}, 'description': 'multiple_choice (exactly one is_correct:true) or multi_select (one or more). 2-12 entries.'}, 'sort_order': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'explanation': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'question_text': {'type': 'string'}, 'question_type': {'enum': ['multiple_choice', 'true_false', 'fill_in_blank', 'multi_select', 'matching', 'ordering'], 'type': 'string'}, 'correct_answer': {'type': 'boolean', 'description': 'true_false only'}, 'accepted_answers': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'description': 'fill_in_blank only; matched case-insensitively'}}}
hivelearn_update_resource
Edit a resource. Only include fields you want to change. Set is_featured to surface it; set is_published=false to unlist.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20}, 'price': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'file_url': {'type': 'string', 'format': 'uri'}, 'folder_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}, 'is_premium': {'type': 'boolean'}, 'description': {'type': 'string', 'maxLength': 20000}, 'is_featured': {'type': 'boolean'}, 'access_level': {'enum': ['public', 'members', 'premium'], 'type': 'string'}, 'is_published': {'type': 'boolean'}, 'resource_url': {'type': 'string', 'format': 'uri'}, 'resource_type': {'enum': ['guide', 'toolkit', 'course', 'checklist', 'template', 'other'], 'type': 'string'}, 'cover_image_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}}}
hivelearn_update_resource_folder
Update a resource folder (rename, recolor, reorder, reprice, or move). parent_folder_id=null moves it to top level; moving a folder into itself or a descendant is rejected. Only supplied fields change.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'icon': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'color': {'type': 'string', 'pattern': '^#[0-9A-Fa-f]{6}$', 'description': '#RRGGBB hex color'}, 'price': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'position': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}]}, 'parent_folder_id': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}]}}}
hivelearn_update_track
Edit a learning track. Only include fields you want to change. Set is_published=true to make it live.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'description': {'type': 'string', 'maxLength': 20000}, 'is_featured': {'type': 'boolean'}, 'is_published': {'type': 'boolean'}, 'thumbnail_url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'estimated_hours': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'difficulty_level': {'enum': ['beginner', 'intermediate', 'advanced'], 'type': 'string'}}}
hivelearn_verify_certificate
Public verification lookup by verification_code. Returns { valid, certificate } if found and active. Use this when a third party presents a certificate code.
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code'], 'properties': {'code': {'type': 'string', 'minLength': 1, 'description': 'The verification_code printed on the certificate'}}}
Hinzugefügt
hivelearn_get_member_health
23. September 2026 02:50
Hinzugefügt
hivelearn_list_segment_members
23. September 2026 02:50
Hinzugefügt
hivelearn_list_segments
23. September 2026 02:50
Hinzugefügt
hivelearn_add_member_tag
23. September 2026 02:50
Hinzugefügt
hivelearn_list_member_tag_assignments
23. September 2026 02:50
Hinzugefügt
hivelearn_create_member_tag
23. September 2026 02:50
Hinzugefügt
hivelearn_list_member_tags
23. September 2026 02:50
Hinzugefügt
hivelearn_create_member_note
23. September 2026 02:50
Hinzugefügt
hivelearn_list_member_notes
23. September 2026 02:50
Hinzugefügt
hivelearn_update_question_bank_item
23. September 2026 02:50
Hinzugefügt
hivelearn_create_question_bank_item
23. September 2026 02:50
Hinzugefügt
hivelearn_list_question_bank_items
23. September 2026 02:50
Hinzugefügt
hivelearn_update_question_bank
23. September 2026 02:50
Hinzugefügt
hivelearn_create_question_bank
23. September 2026 02:50
Hinzugefügt
hivelearn_get_question_bank
23. September 2026 02:50
Hinzugefügt
hivelearn_list_question_banks
23. September 2026 02:50
Hinzugefügt
hivelearn_update_resource_folder
23. September 2026 02:50
Hinzugefügt
hivelearn_create_resource_folder
23. September 2026 02:50
Hinzugefügt
hivelearn_get_resource_folder
23. September 2026 02:50
Hinzugefügt
hivelearn_list_resource_folders
23. September 2026 02:50
Hinzugefügt
hivelearn_grade_assignment_submission
23. September 2026 02:50
Hinzugefügt
hivelearn_get_assignment_submission
23. September 2026 02:50
Hinzugefügt
hivelearn_list_assignment_submissions
23. September 2026 02:50
Hinzugefügt
hivelearn_list_quiz_attempts
23. September 2026 02:50
Hinzugefügt
hivelearn_get_course_analytics
23. September 2026 02:50
Hinzugefügt
hivelearn_get_analytics_summary
23. September 2026 02:50
Hinzugefügt
hivelearn_create_discussion_reply
23. September 2026 02:50
Hinzugefügt
hivelearn_list_discussion_replies
23. September 2026 02:50
Hinzugefügt
hivelearn_create_discussion
23. September 2026 02:50
Hinzugefügt
hivelearn_get_discussion
23. September 2026 02:50