Files
a2a-platform dfa7bb3bc4 deploy
2026-06-29 01:34:41 +00:00

11 KiB

name, description
name description
courses-routes Handle 28 OpenAPI operation(s) under /api/v1/courses for the courses route group.

courses API Routes

Handle 28 OpenAPI operation(s) under /api/v1/courses for the courses route group.

Use the generated operation tools to make real API calls. Do not invent API responses. If a tool reports missing setup, return the exact setup field name to the caller. For write, update, or delete operations, state the intended action before calling the tool.

Deployment context for this LearnHouse instance:

  • It runs single-organization tenancy.
  • Existing organization: A2A Cloud Academy
  • Default org_slug: default
  • Default org_id: 1
  • When listing courses and the user does not provide pagination, use page=1 and limit=50.
  • When creating a course, use query parameter org_id=1 unless the user explicitly provides another org ID.
  • Course creation must send multipart form fields name, description, public, and about. If the user only gives a title, use it as name, provide short description and about values, and set public=false unless the user asks for a public course.
  • When the user asks for a course with lessons, modules, or activities, do not stop after creating the course and chapters. Create at least one activity per chapter, using each chapter's own returned chapter_id.
  • Do not attach all generated activities to the first chapter. Verify the resulting course metadata shows activities distributed under the intended chapters.
  • Markdown lesson activities must have content.markdown_url. Inline markdown is converted to a data:text/markdown URL by the runtime when no external URL is available.
  • For smoke/status checks, use course count or course list with default org_slug=default; do not call GET /api/v1/health as a preflight.
  • Course creation and course management require LEARNHOUSE_AUTH consumer setup.

Operations

api_create_course_api_v1_courses_post

  • Operation ID: api_create_course_api_v1_courses_post
  • Route: POST /api/v1/courses/
  • Mode: WRITE
  • Summary: Create course
  • Parameters:
    • org_id in query required
  • Body: multipart form fields name, description, public, and about.

api_export_courses_batch_api_v1_courses_export_batch_post

  • Operation ID: api_export_courses_batch_api_v1_courses_export_batch_post
  • Route: POST /api/v1/courses/export/batch
  • Mode: WRITE
  • Summary: Export multiple courses as ZIP
  • Body: JSON request body accepted.

api_get_course_by_id_api_v1_courses_id_course_id_get

  • Operation ID: api_get_course_by_id_api_v1_courses_id_course_id_get
  • Route: GET /api/v1/courses/id/{course_id}
  • Mode: READ
  • Summary: Get course by ID
  • Parameters:
    • course_id in path required

api_import_courses_api_v1_courses_import_post

  • Operation ID: api_import_courses_api_v1_courses_import_post
  • Route: POST /api/v1/courses/import
  • Mode: WRITE
  • Summary: Import courses from an analyzed package
  • Parameters:
    • org_id in query required
  • Body: JSON request body accepted.

api_analyze_import_package_api_v1_courses_import_analyze_post

  • Operation ID: api_analyze_import_package_api_v1_courses_import_analyze_post
  • Route: POST /api/v1/courses/import/analyze
  • Mode: WRITE
  • Summary: Analyze a course import package
  • Parameters:
    • org_id in query required
  • Body: JSON request body accepted.

api_create_from_migration_api_v1_courses_migrate_create_post

  • Operation ID: api_create_from_migration_api_v1_courses_migrate_create_post
  • Route: POST /api/v1/courses/migrate/create
  • Mode: WRITE
  • Summary: Create course from migration
  • Parameters:
    • org_id in query required
  • Body: JSON request body accepted.

api_suggest_structure_api_v1_courses_migrate_suggest_post

  • Operation ID: api_suggest_structure_api_v1_courses_migrate_suggest_post
  • Route: POST /api/v1/courses/migrate/suggest
  • Mode: WRITE
  • Summary: Suggest migration structure
  • Parameters:
    • org_id in query required
  • Body: JSON request body accepted.

api_upload_migration_files_api_v1_courses_migrate_upload_post

  • Operation ID: api_upload_migration_files_api_v1_courses_migrate_upload_post
  • Route: POST /api/v1/courses/migrate/upload
  • Mode: WRITE
  • Summary: Upload migration files
  • Parameters:
    • org_id in query required
    • temp_id in query
  • Body: JSON request body accepted.

api_get_courses_count_api_v1_courses_org_slug_org_slug_count_get

  • Operation ID: api_get_courses_count_api_v1_courses_org_slug_org_slug_count_get
  • Route: GET /api/v1/courses/org_slug/{org_slug}/count
  • Mode: READ
  • Summary: Count courses in an organization
  • Parameters:
    • org_slug in path required

api_get_course_by_orgslug_api_v1_courses_org_slug_org_2dfd4569fc

  • Operation ID: api_get_course_by_orgslug_api_v1_courses_org_slug_org_slug_page_page_limit_limit
  • Route: GET /api/v1/courses/org_slug/{org_slug}/page/{page}/limit/{limit}
  • Mode: READ
  • Summary: List courses for an organization
  • Parameters:
    • page in path required
    • limit in path required
    • org_slug in path required
    • include_unpublished in query

api_search_courses_api_v1_courses_org_slug_org_slug_search_get

  • Operation ID: api_search_courses_api_v1_courses_org_slug_org_slug_search_get
  • Route: GET /api/v1/courses/org_slug/{org_slug}/search
  • Mode: READ
  • Summary: Search courses
  • Parameters:
    • org_slug in path required
    • query in query required
    • page in query
    • limit in query

api_delete_course_api_v1_courses_course_uuid_delete

  • Operation ID: api_delete_course_api_v1_courses_course_uuid_delete
  • Route: DELETE /api/v1/courses/{course_uuid}
  • Mode: WRITE
  • Summary: Delete course
  • Parameters:
    • course_uuid in path required

api_get_course_api_v1_courses_course_uuid_get

  • Operation ID: api_get_course_api_v1_courses_course_uuid_get
  • Route: GET /api/v1/courses/{course_uuid}
  • Mode: READ
  • Summary: Get course by UUID
  • Parameters:
    • course_uuid in path required

api_update_course_api_v1_courses_course_uuid_put

  • Operation ID: api_update_course_api_v1_courses_course_uuid_put
  • Route: PUT /api/v1/courses/{course_uuid}
  • Mode: WRITE
  • Summary: Update course
  • Parameters:
    • course_uuid in path required
  • Body: JSON request body accepted.

api_apply_course_contributor_api_v1_courses_course_uu_a35b28139c

  • Operation ID: api_apply_course_contributor_api_v1_courses_course_uuid_apply_contributor_post
  • Route: POST /api/v1/courses/{course_uuid}/apply-contributor
  • Mode: WRITE
  • Summary: Apply as course contributor
  • Parameters:
    • course_uuid in path required

api_add_bulk_course_contributors_api_v1_courses_cours_3da08940ff

  • Operation ID: api_add_bulk_course_contributors_api_v1_courses_course_uuid_bulk_add_contributor
  • Route: POST /api/v1/courses/{course_uuid}/bulk-add-contributors
  • Mode: WRITE
  • Summary: Bulk add course contributors
  • Parameters:
    • course_uuid in path required
  • Body: JSON request body accepted.

api_remove_bulk_course_contributors_api_v1_courses_co_3117ba4aab

  • Operation ID: api_remove_bulk_course_contributors_api_v1_courses_course_uuid_bulk_remove_contr
  • Route: PUT /api/v1/courses/{course_uuid}/bulk-remove-contributors
  • Mode: WRITE
  • Summary: Bulk remove course contributors
  • Parameters:
    • course_uuid in path required
  • Body: JSON request body accepted.

api_clone_course_api_v1_courses_course_uuid_clone_post

  • Operation ID: api_clone_course_api_v1_courses_course_uuid_clone_post
  • Route: POST /api/v1/courses/{course_uuid}/clone
  • Mode: WRITE
  • Summary: Clone course
  • Parameters:
    • course_uuid in path required

api_get_course_contributors_api_v1_courses_course_uui_f1e2d0838a

  • Operation ID: api_get_course_contributors_api_v1_courses_course_uuid_contributors_get
  • Route: GET /api/v1/courses/{course_uuid}/contributors
  • Mode: READ
  • Summary: List course contributors
  • Parameters:
    • course_uuid in path required

api_update_course_contributor_api_v1_courses_course_u_803ac35801

  • Operation ID: api_update_course_contributor_api_v1_courses_course_uuid_contributors_contributo
  • Route: PUT /api/v1/courses/{course_uuid}/contributors/{contributor_user_id}
  • Mode: WRITE
  • Summary: Update course contributor
  • Parameters:
    • course_uuid in path required
    • contributor_user_id in path required
    • authorship in query required
    • authorship_status in query required

api_export_course_api_v1_courses_course_uuid_export_get

  • Operation ID: api_export_course_api_v1_courses_course_uuid_export_get
  • Route: GET /api/v1/courses/{course_uuid}/export
  • Mode: READ
  • Summary: Export course as ZIP
  • Parameters:
    • course_uuid in path required

api_get_course_meta_api_v1_courses_course_uuid_meta_get

  • Operation ID: api_get_course_meta_api_v1_courses_course_uuid_meta_get
  • Route: GET /api/v1/courses/{course_uuid}/meta
  • Mode: READ
  • Summary: Get course metadata
  • Parameters:
    • course_uuid in path required
    • with_unpublished_activities in query
    • slim in query

api_get_course_user_rights_api_v1_courses_course_uuid_rights_get

  • Operation ID: api_get_course_user_rights_api_v1_courses_course_uuid_rights_get
  • Route: GET /api/v1/courses/{course_uuid}/rights
  • Mode: READ
  • Summary: Get course user rights
  • Parameters:
    • course_uuid in path required

api_create_course_thumbnail_api_v1_courses_course_uui_dc5e5c11d8

  • Operation ID: api_create_course_thumbnail_api_v1_courses_course_uuid_thumbnail_put
  • Route: PUT /api/v1/courses/{course_uuid}/thumbnail
  • Mode: WRITE
  • Summary: Update course thumbnail
  • Parameters:
    • course_uuid in path required
  • Body: JSON request body accepted.

api_delete_course_update_api_v1_courses_course_uuid_u_686f93b204

  • Operation ID: api_delete_course_update_api_v1_courses_course_uuid_update_courseupdate_uuid_del
  • Route: DELETE /api/v1/courses/{course_uuid}/update/{courseupdate_uuid}
  • Mode: WRITE
  • Summary: Delete course update
  • Parameters:
    • course_uuid in path required
    • courseupdate_uuid in path required

api_update_course_update_api_v1_courses_course_uuid_u_01971e1e0f

  • Operation ID: api_update_course_update_api_v1_courses_course_uuid_update_courseupdate_uuid_put
  • Route: PUT /api/v1/courses/{course_uuid}/update/{courseupdate_uuid}
  • Mode: WRITE
  • Summary: Update course update
  • Parameters:
    • course_uuid in path required
    • courseupdate_uuid in path required
  • Body: JSON request body accepted.

api_get_course_updates_api_v1_courses_course_uuid_updates_get

  • Operation ID: api_get_course_updates_api_v1_courses_course_uuid_updates_get
  • Route: GET /api/v1/courses/{course_uuid}/updates
  • Mode: READ
  • Summary: List course updates
  • Parameters:
    • course_uuid in path required

api_create_course_update_api_v1_courses_course_uuid_updates_post

  • Operation ID: api_create_course_update_api_v1_courses_course_uuid_updates_post
  • Route: POST /api/v1/courses/{course_uuid}/updates
  • Mode: WRITE
  • Summary: Create course update
  • Parameters:
    • course_uuid in path required
  • Body: JSON request body accepted.