openapi: 3.1.0
info:
version: 1.0.0
title: The Mighty Networks Admin AbuseReports Courseworks API
description: An API for managing your Mighty Networks network
servers:
- url: https://api.mn.co
description: Production
security:
- bearerAuth: []
tags:
- name: Courseworks
description: Manage course content (lessons, quizzes, sections)
paths:
/admin/v1/networks/{network_id}/spaces/{space_id}/courseworks:
get:
summary: Returns a list of coursework items for the given space (course)
operationId: list_courseworks
tags:
- Courseworks
parameters:
- name: space_id
in: path
required: true
description: The ID of the course (space) to fetch coursework from
schema:
type: integer
format: uint64
- name: type
in: query
required: false
description: Filter by coursework type (lesson, quiz, section, overview)
schema:
type: string
- name: parent_id
in: query
required: false
description: Filter by parent coursework ID
schema:
type: integer
format: uint64
- name: status
in: query
required: false
description: Filter by visibility status (posted, hidden, pending)
schema:
type: string
- name: page
in: query
required: false
description: Page number for pagination
schema:
type: integer
format: uint64
- name: per_page
in: query
required: false
description: Items per page (max 100)
schema:
type: integer
format: uint64
- $ref: '#/components/parameters/networkId'
responses:
'200':
description: A paginated set of coursework items
content:
application/json:
schema:
$ref: '#/components/schemas/CourseworkResponsePaged'
'404':
description: Space not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
summary: Create a new coursework item (lesson, quiz, or section)
operationId: create_courseworks
tags:
- Courseworks
parameters:
- name: space_id
in: path
required: true
description: The ID of the course (space) to create coursework in
schema:
type: integer
format: uint64
- $ref: '#/components/parameters/networkId'
requestBody:
description: Submit results as JSON
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CourseworkRequest'
responses:
'201':
description: Returns the newly created coursework item
content:
application/json:
schema:
$ref: '#/components/schemas/CourseworkResponse'
'404':
description: Space or parent not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Invalid coursework data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/admin/v1/networks/{network_id}/spaces/{space_id}/courseworks/{id}/:
get:
summary: Returns a single coursework item by ID
operationId: show_coursework
tags:
- Courseworks
parameters:
- name: space_id
in: path
required: true
description: The ID of the course (space)
schema:
type: integer
format: uint64
- name: id
in: path
required: true
description: The ID of the coursework item
schema:
type: integer
format: uint64
- $ref: '#/components/parameters/networkId'
responses:
'200':
description: A coursework item
content:
application/json:
schema:
$ref: '#/components/schemas/CourseworkResponse'
'404':
description: Coursework not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
patch:
summary: Update an existing coursework item
operationId: update_courseworks
tags:
- Courseworks
parameters:
- name: space_id
in: path
required: true
description: The ID of the course (space)
schema:
type: integer
format: uint64
- name: id
in: path
required: true
description: The ID of the coursework item to update
schema:
type: integer
format: uint64
- $ref: '#/components/parameters/networkId'
requestBody:
description: Submit results as JSON
required: true
content:
application/json:
schema:
description: Update fields for a coursework item
type: object
properties:
title:
type: string
description: The title of the coursework item
description:
type: string
description: The description/body content of the coursework item
status:
type: string
description: The visibility status (posted, hidden, pending)
parent_id:
type: integer
format: uint64
description: Move to a new parent coursework item (section or overview)
completion_criteria:
type: string
description: How completion is tracked (none, visited, button, video, minimum_correct_percentage)
unlocking_criteria:
type: string
description: When content becomes available (none, sequential, time_from_course_join, scheduled_date)
responses:
'200':
description: Returns the updated coursework item
content:
application/json:
schema:
$ref: '#/components/schemas/CourseworkResponse'
'404':
description: Coursework not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Invalid coursework data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
summary: Update an existing coursework item
operationId: replace_courseworks
tags:
- Courseworks
parameters:
- name: space_id
in: path
required: true
description: The ID of the course (space)
schema:
type: integer
format: uint64
- name: id
in: path
required: true
description: The ID of the coursework item to update
schema:
type: integer
format: uint64
- $ref: '#/components/parameters/networkId'
requestBody:
description: Submit results as JSON
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CourseworkUpdateRequest'
responses:
'200':
description: Returns the updated coursework item
content:
application/json:
schema:
$ref: '#/components/schemas/CourseworkResponse'
'404':
description: Coursework not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Invalid coursework data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
summary: Delete a coursework item
operationId: delete_courseworks
tags:
- Courseworks
parameters:
- name: space_id
in: path
required: true
description: The ID of the course (space)
schema:
type: integer
format: uint64
- name: id
in: path
required: true
description: The ID of the coursework item to delete
schema:
type: integer
format: uint64
- $ref: '#/components/parameters/networkId'
responses:
'204':
description: Coursework successfully deleted
'404':
description: Coursework not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
parameters:
networkId:
name: network_id
in: path
description: The Network's unique integer ID, or subdomain
required: true
schema:
oneOf:
- type: integer
description: Unique numeric network ID
format: uint64
- type: string
description: Network subdomain
format: /^[a-z][a-z0-9-]+$/
schemas:
ErrorResponse:
type: object
required:
- error
properties:
error:
type: string
description: An error message explaining the problem encountered
CourseworkRequest:
description: Coursework items (lessons, quizzes, sections) within a course
type: object
required:
- type
properties:
type:
type: string
description: The type of coursework to create (lesson, quiz, or section)
parent_id:
type: integer
format: uint64
description: The ID of the parent coursework item (section or overview). If omitted, defaults to course overview
title:
type: string
description: The title of the coursework item
description:
type: string
description: The description/body content of the coursework item
status:
type: string
description: The visibility status (posted, hidden, pending). Defaults to hidden
completion_criteria:
type: string
description: How completion is tracked (none, visited, button, video, minimum_correct_percentage)
unlocking_criteria:
type: string
description: When content becomes available (none, sequential, time_from_course_join, scheduled_date)
CourseworkResponse:
description: Coursework items (lessons, quizzes, sections) within a course
type: object
required:
- children_count
- completion_criteria
- created_at
- id
- permalink
- position
- space_id
- status
- title
- type
- unlocking_criteria
- updated_at
properties:
id:
type: integer
format: uint64
description: The record's integer ID
example: '1234'
created_at:
type: string
format: date-time
description: The date and time the record was created
example: '2026-07-05T21:11:41+00:00'
updated_at:
type: string
format: date-time
description: The date and time the record was last modified
example: '2026-07-05T21:11:41+00:00'
space_id:
type: integer
format: uint64
description: The ID of the course (space) this coursework belongs to
type:
type: string
description: The type of coursework (lesson, quiz, section, or overview)
parent_id:
type: integer
format: uint64
description: The ID of the parent coursework item (section or overview)
parent_type:
type: string
description: The type of the parent (section or overview)
title:
type: string
description: The title of the coursework item
description:
type: string
description: The description/body content of the coursework item
status:
type: string
description: The visibility status (posted, hidden, pending)
position:
type: integer
format: uint64
description: The position within siblings (for ordering)
completion_criteria:
type: string
description: How completion is tracked
unlocking_criteria:
type: string
description: When content becomes available
children_count:
type: integer
format: uint64
description: Number of direct children (for sections)
permalink:
type: string
format: url
description: The coursework item's unique address within the network
CourseworkUpdateRequest:
description: Update fields for a coursework item
type: object
required: []
properties:
title:
type: string
description: The title of the coursework item
description:
type: string
description: The description/body content of the coursework item
status:
type: string
description: The visibility status (posted, hidden, pending)
parent_id:
type: integer
format: uint64
description: Move to a new parent coursework item (section or overview)
completion_criteria:
type: string
description: How completion is tracked (none, visited, button, video, minimum_correct_percentage)
unlocking_criteria:
type: string
description: When content becomes available (none, sequential, time_from_course_join, scheduled_date)
securitySchemes:
bearerAuth:
type: http
scheme: bearer