swagger: '2.0' info: title: Open edX API description: APIs for access to Open edX information contact: email: oscm@edx.org version: v1 basePath: /api consumes: - application/json produces: - application/json securityDefinitions: Basic: type: basic security: - Basic: [] paths: /badges/v1/assertions/user/{username}/: get: operationId: badges_v1_assertions_user_read summary: '** Use cases **' description: "Request a list of assertions for a user, optionally constrained\ \ to a course.\n\n** Example Requests **\n\n GET /api/badges/v1/assertions/user/{username}/\n\ \n** Response Values **\n\n Body comprised of a list of objects with the\ \ following fields:\n\n * badge_class: The badge class the assertion was\ \ awarded for. Represented as an object\n with the following fields:\n\ \ * slug: The identifier for the badge class\n * issuing_component:\ \ The software component responsible for issuing this badge.\n * display_name:\ \ The display name of the badge.\n * course_id: The course key of the\ \ course this badge is scoped to, or null if it isn't scoped to a course.\n\ \ * description: A description of the award and its significance.\n\ \ * criteria: A description of what is needed to obtain this award.\n\ \ * image_url: A URL to the icon image used to represent this award.\n\ \ * image_url: The baked assertion image derived from the badge_class icon--\ \ contains metadata about the award\n in its headers.\n * assertion_url:\ \ The URL to the OpenBadges BadgeAssertion object, for verification by compatible\ \ tools\n and software.\n\n** Params **\n\n * slug (optional): The\ \ identifier for a particular badge class to filter by.\n * issuing_component\ \ (optional): The issuing component for a particular badge class to filter\ \ by\n (requires slug to have been specified, or this will be ignored.)\ \ If slug is provided and this is not,\n assumes the issuing_component\ \ should be empty.\n * course_id (optional): Returns assertions that were\ \ awarded as part of a particular course. If slug is\n provided, and\ \ this field is not specified, assumes that the target badge has an empty\ \ course_id field.\n '*' may be used to get all badges with the specified\ \ slug, issuing_component combination across all courses.\n\n** Returns **\n\ \n * 200 on success, with a list of Badge Assertion objects.\n * 403\ \ if a user who does not have permission to masquerade as\n another user\ \ specifies a username other than their own.\n * 404 if the specified user\ \ does not exist\n\n {\n \"count\": 7,\n \"previous\": null,\n\ \ \"num_pages\": 1,\n \"results\": [\n {\n \ \ \"badge_class\": {\n \"slug\": \"special_award\"\ ,\n \"issuing_component\": \"openedx__course\",\n \ \ \"display_name\": \"Very Special Award\",\n \ \ \"course_id\": \"course-v1:edX+DemoX+Demo_Course\",\n \ \ \"description\": \"Awarded for people who did something incredibly\ \ special\",\n \"criteria\": \"Do something incredibly\ \ special.\",\n \"image\": \"http://example.com/media/badge_classes/badges/special_xdpqpBv_9FYOZwN.png\"\ \n },\n \"image_url\": \"http://badges.example.com/media/issued/cd75b69fc1c979fcc1697c8403da2bdf.png\"\ ,\n \"assertion_url\": \"http://badges.example.com/public/assertions/07020647-e772-44dd-98b7-d13d34335ca6\"\ \n },\n ...\n ]\n }" parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/BadgeAssertion' tags: - badges parameters: - name: username in: path required: true type: string /bookmarks/v1/bookmarks/: get: operationId: bookmarks_v1_bookmarks_list summary: Get a paginated list of bookmarks for a user. description: "The list can be filtered by passing parameter \"course_id=\"\ \nto only include bookmarks from a particular course.\n\nThe bookmarks are\ \ always sorted in descending order by creation date.\n\nEach page in the\ \ list contains 10 bookmarks by default. The page\nsize can be altered by\ \ passing parameter \"page_size=\".\n\nTo include the optional\ \ fields pass the values in \"fields\" parameter\nas a comma separated list.\ \ Possible values are:\n\n* \"display_name\"\n* \"path\"\n\n# Example Requests\n\ \nGET /api/bookmarks/v1/bookmarks/?course_id={course_id1}&fields=display_name,path" parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer - name: course_id in: query description: The id of the course to limit the list type: string - name: fields in: query description: 'The fields to return: display_name, path.' type: string responses: '200': description: '' tags: - bookmarks post: operationId: bookmarks_v1_bookmarks_create summary: Create a new bookmark for a user. description: "The POST request only needs to contain one parameter \"usage_id\"\ .\n\nHttp400 is returned if the format of the request is not correct,\nthe\ \ usage_id is invalid or a block corresponding to the usage_id\ncould not\ \ be found.\n\n# Example Requests\n\nPOST /api/bookmarks/v1/bookmarks/\nRequest\ \ data: {\"usage_id\": }" parameters: [] responses: '201': description: '' tags: - bookmarks parameters: [] /bookmarks/v1/bookmarks/{username},{usage_id}/: get: operationId: bookmarks_v1_bookmarks_read summary: Get a specific bookmark for a user. description: "# Example Requests\n\nGET /api/bookmarks/v1/bookmarks/{username},{usage_id}?fields=display_name,path" parameters: [] responses: '200': description: '' tags: - bookmarks delete: operationId: bookmarks_v1_bookmarks_delete description: DELETE /api/bookmarks/v1/bookmarks/{username},{usage_id} parameters: [] responses: '204': description: '' tags: - bookmarks parameters: - name: usage_id in: path required: true type: string - name: username in: path required: true type: string /bulk_enroll/v1/bulk_enroll: post: operationId: bulk_enroll_v1_bulk_enroll_create summary: '**Use Case**' description: "Enroll multiple users in one or more courses.\n\n**Example Request**\n\ \n POST /api/bulk_enroll/v1/bulk_enroll/ {\n \"auto_enroll\": true,\n\ \ \"email_students\": true,\n \"action\": \"enroll\",\n \ \ \"courses\": \"course-v1:edX+Demo+123,course-v1:edX+Demo2+456\",\n \ \ \"cohorts\": \"cohortA,cohortA\",\n \"identifiers\": \"brandon@example.com,yamilah@example.com\"\ \n }\n\n **POST Parameters**\n\n A POST request can include the\ \ following parameters.\n\n * auto_enroll: When set to `true`, students\ \ will be enrolled as soon\n as they register.\n * email_students:\ \ When set to `true`, students will be sent email\n notifications upon\ \ enrollment.\n * action: Can either be set to \"enroll\" or \"unenroll\"\ . This determines the behavior\n * cohorts: Optional. If provided, the\ \ number of items in the list should be equal to\n the number of courses.\ \ first cohort coressponds with the first course and so on.\n The learners\ \ will be added to the corresponding cohort.\n\n**Response Values**\n\n \ \ If the supplied course data is valid and the enrollments were\n successful,\ \ an HTTP 200 \"OK\" response is returned.\n\n The HTTP 200 response body\ \ contains a list of response data for each\n enrollment. (See the `instructor.views.api.students_update_enrollment`\n\ \ docstring for the specifics of the response data available for each\n\ \ enrollment)\n\n If a cohorts list is provided, additional 'cohort'\ \ keys will be added\n to the 'before' and 'after' states." parameters: [] responses: '201': description: '' tags: - bulk_enroll parameters: [] /ccx/v0/ccx/: get: operationId: ccx_v0_ccx_list summary: Gets a list of CCX Courses for a given Master Course. description: "Additional parameters are allowed for pagination purposes.\n\n\ Args:\n request (Request): Django request object.\n\nReturn:\n A JSON\ \ serialized representation of a list of CCX courses." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/CCXCourse' tags: - ccx post: operationId: ccx_v0_ccx_create summary: Creates a new CCX course for a given Master Course. description: "Args:\n request (Request): Django request object.\n\nReturn:\n\ \ A JSON serialized representation a newly created CCX course." parameters: - name: data in: body required: true schema: $ref: '#/definitions/CCXCourse' responses: '201': description: '' schema: $ref: '#/definitions/CCXCourse' tags: - ccx parameters: [] /ccx/v0/ccx/{ccx_course_id}/: get: operationId: ccx_v0_ccx_read summary: Gets a CCX Course information. description: "Args:\n request (Request): Django request object.\n ccx_course_id\ \ (string): URI element specifying the CCX course location.\n\nReturn:\n \ \ A JSON serialized representation of the CCX course." parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/CCXCourse' tags: - ccx patch: operationId: ccx_v0_ccx_partial_update summary: Modifies a CCX course. description: "Args:\n request (Request): Django request object.\n ccx_course_id\ \ (string): URI element specifying the CCX course location." parameters: - name: data in: body required: true schema: $ref: '#/definitions/CCXCourse' responses: '200': description: '' schema: $ref: '#/definitions/CCXCourse' tags: - ccx delete: operationId: ccx_v0_ccx_delete summary: Deletes a CCX course. description: "Args:\n request (Request): Django request object.\n ccx_course_id\ \ (string): URI element specifying the CCX course location." parameters: [] responses: '204': description: '' tags: - ccx parameters: - name: ccx_course_id in: path required: true type: string /certificates/v0/certificates/{username}/: get: operationId: certificates_v0_certificates_read summary: Get a paginated list of bookmarks for a user. description: "**Use Case**\n\nGet the list of viewable course certificates for\ \ a specific user.\n\n**Example Request**\n\nGET /api/certificates/v0/certificates/{username}\n\ \n**GET Response Values**\n\n If the request for information about the\ \ user's certificates is successful,\n an HTTP 200 \"OK\" response is returned.\n\ \n The HTTP 200 response contains a list of dicts with the following keys/values.\n\ \n * username: A string representation of an user's username passed in\ \ the request.\n\n * course_id: A string representation of a Course ID.\n\ \n * course_display_name: A string representation of the Course name.\n\ \n * course_organization: A string representation of the organization associated\ \ with the Course.\n\n * certificate_type: A string representation of the\ \ certificate type.\n Can be honor|verified|professional\n\n * created_date:\ \ Date/time the certificate was created, in ISO-8661 format.\n\n * status:\ \ A string representation of the certificate status.\n\n * is_passing:\ \ True if the certificate has a passing status, False if not.\n\n * download_url:\ \ A string representation of the certificate url.\n\n * grade: A string\ \ representation of a float for the user's course grade.\n\n**Example GET\ \ Response**\n\n [{\n \"username\": \"bob\",\n \"course_id\"\ : \"edX/DemoX/Demo_Course\",\n \"certificate_type\": \"verified\",\n\ \ \"created_date\": \"2015-12-03T13:14:28+0000\",\n \"status\"\ : \"downloadable\",\n \"is_passing\": true,\n \"download_url\"\ : \"http://www.example.com/cert.pdf\",\n \"grade\": \"0.98\"\n }]" parameters: - name: username in: path description: The users to get certificates for type: string required: true responses: '200': description: '' tags: - certificates parameters: - name: username in: path required: true type: string /certificates/v0/certificates/{username}/courses/{course_id}/: get: operationId: certificates_v0_certificates_courses_read summary: Gets a certificate information. description: "Args:\n request (Request): Django request object.\n username\ \ (string): URI element specifying the user's username.\n course_id (string):\ \ URI element specifying the course location.\n\nReturn:\n A JSON serialized\ \ representation of the certificate." parameters: [] responses: '200': description: '' tags: - certificates parameters: - name: course_id in: path required: true type: string - name: username in: path required: true type: string /cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}: get: operationId: cohorts_v1_courses_cohorts_read description: Endpoint to get either one or all cohorts. parameters: [] responses: '200': description: '' schema: type: object properties: {} tags: - cohorts post: operationId: cohorts_v1_courses_cohorts_create description: Endpoint to create a new cohort, must not include cohort_id. parameters: - name: data in: body required: true schema: type: object properties: {} responses: '201': description: '' schema: type: object properties: {} tags: - cohorts patch: operationId: cohorts_v1_courses_cohorts_partial_update description: Endpoint to update a cohort name and/or assignment type. parameters: - name: data in: body required: true schema: type: object properties: {} responses: '200': description: '' schema: type: object properties: {} tags: - cohorts parameters: - name: cohort_id in: path required: true type: string - name: course_key_string in: path required: true type: string /cohorts/v1/courses/{course_key_string}/cohorts/{cohort_id}/users/{username}: get: operationId: cohorts_v1_courses_cohorts_users_read description: Lists the users in a specific cohort. parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/CohortUsersAPI' tags: - cohorts post: operationId: cohorts_v1_courses_cohorts_users_create description: Add given users to the cohort. parameters: - name: data in: body required: true schema: $ref: '#/definitions/CohortUsersAPI' responses: '201': description: '' schema: $ref: '#/definitions/CohortUsersAPI' tags: - cohorts delete: operationId: cohorts_v1_courses_cohorts_users_delete summary: Removes and user from a specific cohort. description: "Note: It's better to use the post method to move users between\ \ cohorts." parameters: [] responses: '204': description: '' tags: - cohorts parameters: - name: cohort_id in: path required: true type: string - name: course_key_string in: path required: true type: string - name: username in: path required: true type: string /cohorts/v1/courses/{course_key_string}/users: post: operationId: cohorts_v1_courses_users_create description: "View method that accepts an uploaded file (using key \"uploaded-file\"\ )\ncontaining cohort assignments for users. This method spawns a celery task\n\ to do the assignments, and a CSV file with results is provided via data downloads." parameters: [] responses: '201': description: '' tags: - cohorts parameters: - name: course_key_string in: path required: true type: string /cohorts/v1/settings/{course_key_string}: get: operationId: cohorts_v1_settings_read description: Endpoint to fetch the course cohort settings. parameters: [] responses: '200': description: '' schema: type: object properties: {} tags: - cohorts put: operationId: cohorts_v1_settings_update description: Endpoint to set the course cohort settings. parameters: - name: data in: body required: true schema: type: object properties: {} responses: '200': description: '' schema: type: object properties: {} tags: - cohorts parameters: - name: course_key_string in: path required: true type: string /commerce/v0/baskets/: post: operationId: commerce_v0_baskets_create description: Attempt to enroll the user. parameters: [] responses: '201': description: '' tags: - commerce parameters: [] /commerce/v0/baskets/{basket_id}/order/: get: operationId: commerce_v0_baskets_order_list description: HTTP handler. parameters: [] responses: '200': description: '' tags: - commerce parameters: - name: basket_id in: path required: true type: string /commerce/v1/courses/: get: operationId: commerce_v1_courses_list description: List courses and modes. parameters: [] responses: '200': description: '' schema: type: array items: $ref: '#/definitions/commerce.Course' tags: - commerce parameters: [] /commerce/v1/courses/{course_id}/: get: operationId: commerce_v1_courses_read description: Retrieve, update, or create courses/modes. parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/commerce.Course' tags: - commerce put: operationId: commerce_v1_courses_update description: Retrieve, update, or create courses/modes. parameters: - name: data in: body required: true schema: $ref: '#/definitions/commerce.Course' responses: '200': description: '' schema: $ref: '#/definitions/commerce.Course' tags: - commerce patch: operationId: commerce_v1_courses_partial_update description: Retrieve, update, or create courses/modes. parameters: - name: data in: body required: true schema: $ref: '#/definitions/commerce.Course' responses: '200': description: '' schema: $ref: '#/definitions/commerce.Course' tags: - commerce parameters: - name: course_id in: path required: true type: string /commerce/v1/orders/{number}/: get: operationId: commerce_v1_orders_read description: HTTP handler. parameters: [] responses: '200': description: '' tags: - commerce parameters: - name: number in: path required: true type: string /completion/v1/completion-batch: post: operationId: completion_v1_completion-batch_create summary: Inserts a batch of completions. description: "REST Endpoint Format:\n{\n \"username\": \"username\",\n \"\ course_key\": \"course-key\",\n \"blocks\": {\n \"block_key1\": 0.0,\n\ \ \"block_key2\": 1.0,\n \"block_key3\": 1.0,\n }\n}\n\n**Returns**\n\ \nA Response object, with an appropriate status code.\n\nIf successful, status\ \ code is 200.\n{\n \"detail\" : _(\"ok\")\n}\n\nOtherwise, a 400 or 404\ \ may be returned, and the \"detail\" content will explain the error." parameters: [] responses: '201': description: '' tags: - completion parameters: [] /completion/v1/subsection-completion/{username}/{course_key}/(P{subsection_id}[/]*): get: operationId: completion_v1_subsection-completion_]*)_list description: Returns completion for a (user, subsection, course). parameters: [] responses: '200': description: '' tags: - completion parameters: - name: course_key in: path required: true type: string - name: subsection_id in: path required: true type: string - name: username in: path required: true type: string /course_goals/v0/course_goals/: get: operationId: course_goals_v0_course_goals_list summary: API calls to create and update a course goal. description: "Validates incoming data to ensure that course_key maps to an actual\n\ course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\ \ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\ \ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\ \ data: {\"course_key\": , \"goal_key\": \"\", \"user\"\ : \"\"}\n\nReturns Http400 response if the course_key does not map\ \ to a known\ncourse or if the goal_key does not map to a valid goal key." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/CourseGoal' tags: - course_goals post: operationId: course_goals_v0_course_goals_create description: Create a new goal if one does not exist, otherwise update the existing goal. parameters: - name: data in: body required: true schema: $ref: '#/definitions/CourseGoal' responses: '201': description: '' schema: $ref: '#/definitions/CourseGoal' tags: - course_goals parameters: [] /course_goals/v0/course_goals/{id}/: get: operationId: course_goals_v0_course_goals_read summary: API calls to create and update a course goal. description: "Validates incoming data to ensure that course_key maps to an actual\n\ course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\ \ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\ \ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\ \ data: {\"course_key\": , \"goal_key\": \"\", \"user\"\ : \"\"}\n\nReturns Http400 response if the course_key does not map\ \ to a known\ncourse or if the goal_key does not map to a valid goal key." parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/CourseGoal' tags: - course_goals put: operationId: course_goals_v0_course_goals_update summary: API calls to create and update a course goal. description: "Validates incoming data to ensure that course_key maps to an actual\n\ course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\ \ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\ \ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\ \ data: {\"course_key\": , \"goal_key\": \"\", \"user\"\ : \"\"}\n\nReturns Http400 response if the course_key does not map\ \ to a known\ncourse or if the goal_key does not map to a valid goal key." parameters: - name: data in: body required: true schema: $ref: '#/definitions/CourseGoal' responses: '200': description: '' schema: $ref: '#/definitions/CourseGoal' tags: - course_goals patch: operationId: course_goals_v0_course_goals_partial_update summary: API calls to create and update a course goal. description: "Validates incoming data to ensure that course_key maps to an actual\n\ course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\ \ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\ \ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\ \ data: {\"course_key\": , \"goal_key\": \"\", \"user\"\ : \"\"}\n\nReturns Http400 response if the course_key does not map\ \ to a known\ncourse or if the goal_key does not map to a valid goal key." parameters: - name: data in: body required: true schema: $ref: '#/definitions/CourseGoal' responses: '200': description: '' schema: $ref: '#/definitions/CourseGoal' tags: - course_goals delete: operationId: course_goals_v0_course_goals_delete summary: API calls to create and update a course goal. description: "Validates incoming data to ensure that course_key maps to an actual\n\ course and that the goal_key is a valid option.\n\n**Use Case**\n * Create\ \ a new goal for a user.\n * Update an existing goal for a user\n\n**Example\ \ Requests**\n POST /api/course_goals/v0/course_goals/\n Request\ \ data: {\"course_key\": , \"goal_key\": \"\", \"user\"\ : \"\"}\n\nReturns Http400 response if the course_key does not map\ \ to a known\ncourse or if the goal_key does not map to a valid goal key." parameters: [] responses: '204': description: '' tags: - course_goals parameters: - name: id in: path description: A unique integer value identifying this course goal. required: true type: integer /course_modes/v1/courses/{course_id}/: get: operationId: course_modes_v1_courses_read summary: View to list or create course modes for a course. description: "**Use Case**\n\n List all course modes for a course, or create\ \ a new\n course mode.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/\n\ \n Returns a list of all existing course modes for a course.\n\n \ \ POST /api/course_modes/v1/courses/{course_id}/\n\n Creates a new\ \ course mode in a course.\n\n**Response Values**\n\n For each HTTP verb\ \ below, an HTTP 404 \"Not Found\" response is returned if the\n requested\ \ course id does not exist.\n\n GET: If the request is successful, an HTTP\ \ 200 \"OK\" response is returned\n along with a list of course mode dictionaries\ \ within a course.\n The details are contained in a JSON dictionary as\ \ follows:\n\n * course_id: The course identifier.\n * mode_slug:\ \ The short name for the course mode.\n * mode_display_name: The verbose\ \ name for the course mode.\n * min_price: The minimum price for which\ \ a user can\n enroll in this mode.\n * currency: The currency\ \ of the listed prices.\n * expiration_datetime: The date and time after\ \ which\n users cannot enroll in the course in this mode (not required\ \ for POST).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\ \ field was\n explicitly set (not required for POST).\n * description:\ \ A description of this mode (not required for POST).\n * sku: The SKU\ \ for this mode (for ecommerce purposes, not required for POST).\n *\ \ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\ \ for POST).\n\n POST: If the request is successful, an HTTP 201 \"Created\"\ \ response is returned." parameters: [] responses: '200': description: '' schema: type: array items: $ref: '#/definitions/course_modes.CourseMode' tags: - course_modes post: operationId: course_modes_v1_courses_create summary: View to list or create course modes for a course. description: "**Use Case**\n\n List all course modes for a course, or create\ \ a new\n course mode.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/\n\ \n Returns a list of all existing course modes for a course.\n\n \ \ POST /api/course_modes/v1/courses/{course_id}/\n\n Creates a new\ \ course mode in a course.\n\n**Response Values**\n\n For each HTTP verb\ \ below, an HTTP 404 \"Not Found\" response is returned if the\n requested\ \ course id does not exist.\n\n GET: If the request is successful, an HTTP\ \ 200 \"OK\" response is returned\n along with a list of course mode dictionaries\ \ within a course.\n The details are contained in a JSON dictionary as\ \ follows:\n\n * course_id: The course identifier.\n * mode_slug:\ \ The short name for the course mode.\n * mode_display_name: The verbose\ \ name for the course mode.\n * min_price: The minimum price for which\ \ a user can\n enroll in this mode.\n * currency: The currency\ \ of the listed prices.\n * expiration_datetime: The date and time after\ \ which\n users cannot enroll in the course in this mode (not required\ \ for POST).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\ \ field was\n explicitly set (not required for POST).\n * description:\ \ A description of this mode (not required for POST).\n * sku: The SKU\ \ for this mode (for ecommerce purposes, not required for POST).\n *\ \ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\ \ for POST).\n\n POST: If the request is successful, an HTTP 201 \"Created\"\ \ response is returned." parameters: - name: data in: body required: true schema: $ref: '#/definitions/course_modes.CourseMode' responses: '201': description: '' schema: $ref: '#/definitions/course_modes.CourseMode' tags: - course_modes parameters: - name: course_id in: path required: true type: string /course_modes/v1/courses/{course_id}/{mode_slug}: get: operationId: course_modes_v1_courses_read summary: View to retrieve, update, or delete a specific course mode for a course. description: "**Use Case**\n\n Get or update course mode details for a specific\ \ course mode on a course.\n Or you may delete a specific course mode from\ \ a course.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\ \n Returns details on an existing course mode for a course.\n\n \ \ PATCH /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Updates\ \ (via merge) details of an existing course mode for a course.\n\n DELETE\ \ /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Deletes\ \ an existing course mode for a course.\n\n**Response Values**\n\n For\ \ each HTTP verb below, an HTTP 404 \"Not Found\" response is returned if\ \ the\n requested course id does not exist, or the mode slug does not exist\ \ within the course.\n\n GET: If the request is successful, an HTTP 200\ \ \"OK\" response is returned\n along with a details for a single course\ \ mode within a course. The details are contained\n in a JSON dictionary\ \ as follows:\n\n * course_id: The course identifier.\n * mode_slug:\ \ The short name for the course mode.\n * mode_display_name: The verbose\ \ name for the course mode.\n * min_price: The minimum price for which\ \ a user can\n enroll in this mode.\n * currency: The currency\ \ of the listed prices.\n * expiration_datetime: The date and time after\ \ which\n users cannot enroll in the course in this mode (not required\ \ for PATCH).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\ \ field was\n explicitly set (not required for PATCH).\n * description:\ \ A description of this mode (not required for PATCH).\n * sku: The SKU\ \ for this mode (for ecommerce purposes, not required for PATCH).\n *\ \ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\ \ for PATCH).\n\n PATCH: If the request is successful, an HTTP 204 \"No\ \ Content\" response is returned.\n If \"application/merge-patch+json\"\ \ is not the specified content type,\n a 415 \"Unsupported Media Type\"\ \ response is returned.\n\n DELETE: If the request is successful, an HTTP\ \ 204 \"No Content\" response is returned." parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/course_modes.CourseMode' consumes: - application/merge-patch+json tags: - course_modes patch: operationId: course_modes_v1_courses_partial_update description: Performs a partial update of a CourseMode instance. parameters: - name: data in: body required: true schema: $ref: '#/definitions/course_modes.CourseMode' responses: '200': description: '' schema: $ref: '#/definitions/course_modes.CourseMode' consumes: - application/merge-patch+json tags: - course_modes delete: operationId: course_modes_v1_courses_delete summary: View to retrieve, update, or delete a specific course mode for a course. description: "**Use Case**\n\n Get or update course mode details for a specific\ \ course mode on a course.\n Or you may delete a specific course mode from\ \ a course.\n\n**Example Requests**\n\n GET /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\ \n Returns details on an existing course mode for a course.\n\n \ \ PATCH /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Updates\ \ (via merge) details of an existing course mode for a course.\n\n DELETE\ \ /api/course_modes/v1/courses/{course_id}/{mode_slug}\n\n Deletes\ \ an existing course mode for a course.\n\n**Response Values**\n\n For\ \ each HTTP verb below, an HTTP 404 \"Not Found\" response is returned if\ \ the\n requested course id does not exist, or the mode slug does not exist\ \ within the course.\n\n GET: If the request is successful, an HTTP 200\ \ \"OK\" response is returned\n along with a details for a single course\ \ mode within a course. The details are contained\n in a JSON dictionary\ \ as follows:\n\n * course_id: The course identifier.\n * mode_slug:\ \ The short name for the course mode.\n * mode_display_name: The verbose\ \ name for the course mode.\n * min_price: The minimum price for which\ \ a user can\n enroll in this mode.\n * currency: The currency\ \ of the listed prices.\n * expiration_datetime: The date and time after\ \ which\n users cannot enroll in the course in this mode (not required\ \ for PATCH).\n * expiration_datetime_is_explicit: Whether the expiration_datetime\ \ field was\n explicitly set (not required for PATCH).\n * description:\ \ A description of this mode (not required for PATCH).\n * sku: The SKU\ \ for this mode (for ecommerce purposes, not required for PATCH).\n *\ \ bulk_sku: The bulk SKU for this mode (for ecommerce purposes, not required\ \ for PATCH).\n\n PATCH: If the request is successful, an HTTP 204 \"No\ \ Content\" response is returned.\n If \"application/merge-patch+json\"\ \ is not the specified content type,\n a 415 \"Unsupported Media Type\"\ \ response is returned.\n\n DELETE: If the request is successful, an HTTP\ \ 204 \"No Content\" response is returned." parameters: [] responses: '204': description: '' consumes: - application/merge-patch+json tags: - course_modes parameters: - name: course_id in: path required: true type: string - name: mode_slug in: path required: true type: string /courses/v1/blocks/: get: operationId: courses_v1_blocks_list summary: '**Use Case**' description: "Returns the blocks in the course according to the requesting user's\n\ \ access level.\n\n**Example requests**:\n\n GET /api/courses/v1/blocks/?course_id=\n\ \ GET /api/courses/v1/blocks/?course_id=\n &username=anjali\n\ \ &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url\n\ \ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\ \n**Parameters**:\n\n This view redirects to /api/courses/v1/blocks//\ \ for the\n root usage key of the course specified by course_id. The view\ \ accepts\n all parameters accepted by :class:`BlocksView`, plus the following\n\ \ required parameter\n\n * course_id: (string, required) The ID of the\ \ course whose block data\n we want to return\n\n**Response Values**\n\ \n Responses are identical to those returned by :class:`BlocksView` when\n\ \ passed the root_usage_key of the requested course.\n\n If the course_id\ \ is not supplied, a 400: Bad Request is returned, with\n a message indicating\ \ that course_id is required.\n\n If an invalid course_id is supplied,\ \ a 400: Bad Request is returned,\n with a message indicating that the\ \ course_id is not valid." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - courses parameters: [] ? /courses/v1/blocks/(P{usage_key_string}{var}|api/courses/v1/blocks/(P{usage_key_string}(:i4x://[/]+/[/]+/[/]+/[@]+(:@[/]+))|{var}) : get: operationId: courses_v1_blocks_courses_v1_blocks__[_]+_[_]+_[_]+_[@]+(:@[_read summary: '**Use Case**' description: "Returns the blocks within the requested block tree according to\ \ the\n requesting user's access level.\n\n**Example requests**:\n\n \ \ GET /api/courses/v1/blocks//?depth=all\n GET /api/courses/v1/blocks//?\n\ \ username=anjali\n &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url,due\n\ \ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\ \n**Parameters**:\n\n * all_blocks: (boolean) Provide a value of \"true\"\ \ to return all\n blocks. Returns all blocks only if the requesting user\ \ has course\n staff permissions. Blocks that are visible only to specific\ \ learners\n (for example, based on group membership or randomized content)\ \ are\n all included. If all_blocks is not specified, you must specify\ \ the\n username for the user whose course blocks are requested.\n\n\ \ * username: (string) Required, unless ``all_blocks`` is specified.\n\ \ Specify the username for the user whose course blocks are requested.\n\ \ Only users with course staff permissions can specify other users'\n\ \ usernames. If a username is specified, results include blocks that\n\ \ are visible to that user, including those based on group or cohort\n\ \ membership or randomized content assigned to that user.\n\n Example:\ \ username=anjali\n\n * student_view_data: (list) Indicates for which block\ \ types to return\n student_view_data.\n\n Example: student_view_data=video\n\ \n * block_counts: (list) Indicates for which block types to return the\n\ \ aggregate count of the blocks.\n\n Example: block_counts=video,problem\n\ \n * requested_fields: (list) Indicates which additional fields to return\n\ \ for each block. For a list of available fields see under `Response\n\ \ Values -> blocks`, below.\n\n The following fields are always\ \ returned: id, type, display_name\n\n Example: requested_fields=graded,format,student_view_multi_device\n\ \n * depth: (integer or all) Indicates how deep to traverse into the blocks\n\ \ hierarchy. A value of all means the entire hierarchy.\n\n Default\ \ is 0\n\n Example: depth=all\n\n * nav_depth: (integer)\n\n \ \ WARNING: nav_depth is not supported, and may be removed at any time.\n\n\ \ Indicates how far deep to traverse into the\n course hierarchy\ \ before bundling all the descendants.\n\n Default is 3 since typical\ \ navigational views of the course show a\n maximum of chapter->sequential->vertical.\n\ \n Example: nav_depth=3\n\n * return_type (string) Indicates in what\ \ data type to return the\n blocks.\n\n Default is dict. Supported\ \ values are: dict, list\n\n Example: return_type=dict\n\n * block_types_filter:\ \ (list) Requested types of blocks used to filter the final result\n \ \ of returned blocks. Possible values include sequential, vertical, html,\ \ problem,\n video, and discussion.\n\n Example: block_types_filter=vertical,html\n\ \n**Response Values**\n\n The following fields are returned with a successful\ \ response.\n\n * root: The ID of the root node of the requested course\ \ block\n structure.\n\n * blocks: A dictionary or list, based on\ \ the value of the\n \"return_type\" parameter. Maps block usage IDs\ \ to a collection of\n information about each block. Each block contains\ \ the following\n fields.\n\n * id: (string) The usage ID of the\ \ block.\n\n * type: (string) The type of block. Possible values the\ \ names of any\n XBlock type in the system, including custom blocks.\ \ Examples are\n course, chapter, sequential, vertical, html, problem,\ \ video, and\n discussion.\n\n * display_name: (string) The display\ \ name of the block.\n\n * children: (list) If the block has child blocks,\ \ a list of IDs of\n the child blocks. Returned only if \"children\"\ \ is included in the\n \"requested_fields\" parameter.\n\n * completion:\ \ (float or None) The level of completion of the block.\n Its value\ \ can vary between 0.0 and 1.0 or be equal to None\n if block is not\ \ completable. Returned only if \"completion\"\n is included in the\ \ \"requested_fields\" parameter.\n\n * block_counts: (dict) For each\ \ block type specified in the\n block_counts parameter to the endpoint,\ \ the aggregate number of\n blocks of that type for this block and\ \ all of its descendants.\n\n * graded (boolean) Whether or not the block\ \ or any of its descendants\n is graded. Returned only if \"graded\"\ \ is included in the\n \"requested_fields\" parameter.\n\n * format:\ \ (string) The assignment type of the block. Possible values\n can\ \ be \"Homework\", \"Lab\", \"Midterm Exam\", and \"Final Exam\".\n \ \ Returned only if \"format\" is included in the \"requested_fields\"\n \ \ parameter.\n\n * student_view_data: (dict) The JSON data for\ \ this block.\n Returned only if the \"student_view_data\" input parameter\ \ contains\n this block's type.\n\n * student_view_url: (string)\ \ The URL to retrieve the HTML rendering\n of this block's student\ \ view. The HTML could include CSS and\n Javascript code. This field\ \ can be used in combination with the\n student_view_multi_device field\ \ to decide whether to display this\n content to the user.\n\n \ \ This URL can be used as a fallback if the student_view_data for\n \ \ this block type is not supported by the client or the block.\n\n \ \ * student_view_multi_device: (boolean) Whether or not the HTML of\n \ \ the student view that is rendered at \"student_view_url\" supports\n\ \ responsive web layouts, touch-based inputs, and interactive state\n\ \ management for a variety of device sizes and types, including\n \ \ mobile and touch devices. Returned only if\n \"student_view_multi_device\"\ \ is included in the \"requested_fields\"\n parameter.\n\n * lms_web_url:\ \ (string) The URL to the navigational container of the\n xBlock on\ \ the web LMS. This URL can be used as a further fallback\n if the\ \ student_view_url and the student_view_data fields are not\n supported.\n\ \n * lti_url: The block URL for an LTI consumer. Returned only if the\n\ \ \"ENABLE_LTI_PROVIDER\" Django settign is set to \"True\".\n\n \ \ * due: The due date of the block. Returned only if \"due\" is included\n\ \ in the \"requested_fields\" parameter.\n\n * show_correctness:\ \ Whether to show scores/correctness to learners for the current sequence\ \ or problem.\n Returned only if \"show_correctness\" is included in\ \ the \"requested_fields\" parameter." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - courses parameters: - name: usage_key_string in: path required: true type: string - name: var in: path required: true type: string /courses/v1/courses/: get: operationId: courses_v1_courses_list summary: '**Use Cases**' description: "Request information on all courses visible to the specified user.\n\ \n**Example Requests**\n\n GET /api/courses/v1/courses/\n\n**Response Values**\n\ \n Body comprises a list of objects as returned by `CourseDetailView`.\n\ \n**Parameters**\n search_term (optional):\n Search term to filter\ \ courses (used by ElasticSearch).\n\n username (optional):\n The\ \ username of the specified user whose visible courses we\n want to\ \ see. The username is not required only if the API is\n requested\ \ by an Anonymous user.\n\n org (optional):\n If specified, visible\ \ `CourseOverview` objects are filtered\n such that only those belonging\ \ to the organization with the\n provided org code (e.g., \"HarvardX\"\ ) are returned.\n Case-insensitive.\n\n role (optional):\n \ \ If specified, visible `CourseOverview` objects are filtered\n such\ \ that only those for which the user has the specified role\n are returned.\ \ Multiple role parameters can be specified.\n Case-insensitive.\n\n\ **Returns**\n\n * 200 on success, with a list of course discovery objects\ \ as returned\n by `CourseDetailView`.\n * 400 if an invalid parameter\ \ was sent or the username was not provided\n for an authenticated request.\n\ \ * 403 if a user who does not have permission to masquerade as\n \ \ another user specifies a username other than their own.\n * 404 if the\ \ specified user does not exist, or the requesting user does\n not have\ \ permission to view their courses.\n\n Example response:\n\n [\n\ \ {\n \"blocks_url\": \"/api/courses/v1/blocks/?course_id=edX%2Fexample%2F2012_Fall\"\ ,\n \"media\": {\n \"course_image\": {\n \ \ \"uri\": \"/c4x/edX/example/asset/just_a_test.jpg\",\n \ \ \"name\": \"Course Image\"\n }\n },\n \ \ \"description\": \"An example course.\",\n \"end\": \"2015-09-19T18:00:00Z\"\ ,\n \"enrollment_end\": \"2015-07-15T00:00:00Z\",\n \ \ \"enrollment_start\": \"2015-06-15T00:00:00Z\",\n \"course_id\"\ : \"edX/example/2012_Fall\",\n \"name\": \"Example Course\",\n\ \ \"number\": \"example\",\n \"org\": \"edX\",\n \ \ \"start\": \"2015-07-17T12:00:00Z\",\n \"start_display\"\ : \"July 17, 2015\",\n \"start_type\": \"timestamp\"\n \ \ }\n ]" parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/Course' tags: - courses parameters: [] ? /courses/v1/courses/(P{course_key_string}[/+]+{var}[/+]+api/courses/v1/courses/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+) : get: operationId: courses_v1_courses_+]+api_courses_v1_courses_+]+(_|+)[_]+)_read summary: '**Use Cases**' description: "Request details for a course\n\n**Example Requests**\n\n GET\ \ /api/courses/v1/courses/{course_key}/\n\n**Response Values**\n\n Body\ \ consists of the following fields:\n\n * effort: A textual description\ \ of the weekly hours of effort expected\n in the course.\n * end:\ \ Date the course ends, in ISO 8601 notation\n * enrollment_end: Date enrollment\ \ ends, in ISO 8601 notation\n * enrollment_start: Date enrollment begins,\ \ in ISO 8601 notation\n * id: A unique identifier of the course; a serialized\ \ representation\n of the opaque key identifying the course.\n *\ \ media: An object that contains named media items. Included here:\n \ \ * course_image: An image to show for the course. Represented\n \ \ as an object with the following fields:\n * uri: The location\ \ of the image\n * name: Name of the course\n * number: Catalog number\ \ of the course\n * org: Name of the organization that owns the course\n\ \ * overview: A possibly verbose HTML textual description of the course.\n\ \ Note: this field is only included in the Course Detail view, not\n\ \ the Course List view.\n * short_description: A textual description\ \ of the course\n * start: Date the course begins, in ISO 8601 notation\n\ \ * start_display: Readably formatted start of the course\n * start_type:\ \ Hint describing how `start_display` is set. One of:\n * `\"string\"\ `: manually set by the course author\n * `\"timestamp\"`: generated\ \ from the `start` timestamp\n * `\"empty\"`: no start date is specified\n\ \ * pacing: Course pacing. Possible values: instructor, self\n\n Deprecated\ \ fields:\n\n * blocks_url: Used to fetch the course blocks\n * course_id:\ \ Course key (use 'id' instead)\n\n**Parameters:**\n\n username (optional):\n\ \ The username of the specified user for whom the course data\n \ \ is being accessed. The username is not only required if the API is\n\ \ requested by an Anonymous user.\n\n**Returns**\n\n * 200 on success\ \ with above fields.\n * 400 if an invalid parameter was sent or the username\ \ was not provided\n for an authenticated request.\n * 403 if a user\ \ who does not have permission to masquerade as\n another user specifies\ \ a username other than their own.\n * 404 if the course is not available\ \ or cannot be seen.\n\n Example response:\n\n {\n \"\ blocks_url\": \"/api/courses/v1/blocks/?course_id=edX%2Fexample%2F2012_Fall\"\ ,\n \"media\": {\n \"course_image\": {\n \ \ \"uri\": \"/c4x/edX/example/asset/just_a_test.jpg\",\n \ \ \"name\": \"Course Image\"\n }\n \ \ },\n \"description\": \"An example course.\",\n \"\ end\": \"2015-09-19T18:00:00Z\",\n \"enrollment_end\": \"2015-07-15T00:00:00Z\"\ ,\n \"enrollment_start\": \"2015-06-15T00:00:00Z\",\n \ \ \"course_id\": \"edX/example/2012_Fall\",\n \"name\": \"Example\ \ Course\",\n \"number\": \"example\",\n \"org\": \"\ edX\",\n \"overview: \"

A verbose description of the course.

\"\ \n \"start\": \"2015-07-17T12:00:00Z\",\n \"start_display\"\ : \"July 17, 2015\",\n \"start_type\": \"timestamp\",\n \ \ \"pacing\": \"instructor\"\n }" parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/CourseDetail' tags: - courses parameters: - name: course_key_string in: path required: true type: string - name: var in: path required: true type: string /courses/v2/blocks/: get: operationId: courses_v2_blocks_list summary: '**Use Case**' description: "Returns the blocks in the course according to the requesting user's\n\ \ access level.\n\n**Example requests**:\n\n GET /api/courses/v1/blocks/?course_id=\n\ \ GET /api/courses/v1/blocks/?course_id=\n &username=anjali\n\ \ &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url\n\ \ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\ \n**Parameters**:\n\n This view redirects to /api/courses/v1/blocks//\ \ for the\n root usage key of the course specified by course_id. The view\ \ accepts\n all parameters accepted by :class:`BlocksView`, plus the following\n\ \ required parameter\n\n * course_id: (string, required) The ID of the\ \ course whose block data\n we want to return\n\n**Response Values**\n\ \n Responses are identical to those returned by :class:`BlocksView` when\n\ \ passed the root_usage_key of the requested course.\n\n If the course_id\ \ is not supplied, a 400: Bad Request is returned, with\n a message indicating\ \ that course_id is required.\n\n If an invalid course_id is supplied,\ \ a 400: Bad Request is returned,\n with a message indicating that the\ \ course_id is not valid." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - courses parameters: [] ? /courses/v2/blocks/(P{usage_key_string}{var}|api/courses/v2/blocks/(P{usage_key_string}(:i4x://[/]+/[/]+/[/]+/[@]+(:@[/]+))|{var}) : get: operationId: courses_v2_blocks_courses_v2_blocks__[_]+_[_]+_[_]+_[@]+(:@[_read summary: '**Use Case**' description: "Returns the blocks within the requested block tree according to\ \ the\n requesting user's access level.\n\n**Example requests**:\n\n \ \ GET /api/courses/v1/blocks//?depth=all\n GET /api/courses/v1/blocks//?\n\ \ username=anjali\n &depth=all\n &requested_fields=graded,format,student_view_multi_device,lti_url,due\n\ \ &block_counts=video\n &student_view_data=video\n &block_types_filter=problem,html\n\ \n**Parameters**:\n\n * all_blocks: (boolean) Provide a value of \"true\"\ \ to return all\n blocks. Returns all blocks only if the requesting user\ \ has course\n staff permissions. Blocks that are visible only to specific\ \ learners\n (for example, based on group membership or randomized content)\ \ are\n all included. If all_blocks is not specified, you must specify\ \ the\n username for the user whose course blocks are requested.\n\n\ \ * username: (string) Required, unless ``all_blocks`` is specified.\n\ \ Specify the username for the user whose course blocks are requested.\n\ \ Only users with course staff permissions can specify other users'\n\ \ usernames. If a username is specified, results include blocks that\n\ \ are visible to that user, including those based on group or cohort\n\ \ membership or randomized content assigned to that user.\n\n Example:\ \ username=anjali\n\n * student_view_data: (list) Indicates for which block\ \ types to return\n student_view_data.\n\n Example: student_view_data=video\n\ \n * block_counts: (list) Indicates for which block types to return the\n\ \ aggregate count of the blocks.\n\n Example: block_counts=video,problem\n\ \n * requested_fields: (list) Indicates which additional fields to return\n\ \ for each block. For a list of available fields see under `Response\n\ \ Values -> blocks`, below.\n\n The following fields are always\ \ returned: id, type, display_name\n\n Example: requested_fields=graded,format,student_view_multi_device\n\ \n * depth: (integer or all) Indicates how deep to traverse into the blocks\n\ \ hierarchy. A value of all means the entire hierarchy.\n\n Default\ \ is 0\n\n Example: depth=all\n\n * nav_depth: (integer)\n\n \ \ WARNING: nav_depth is not supported, and may be removed at any time.\n\n\ \ Indicates how far deep to traverse into the\n course hierarchy\ \ before bundling all the descendants.\n\n Default is 3 since typical\ \ navigational views of the course show a\n maximum of chapter->sequential->vertical.\n\ \n Example: nav_depth=3\n\n * return_type (string) Indicates in what\ \ data type to return the\n blocks.\n\n Default is dict. Supported\ \ values are: dict, list\n\n Example: return_type=dict\n\n * block_types_filter:\ \ (list) Requested types of blocks used to filter the final result\n \ \ of returned blocks. Possible values include sequential, vertical, html,\ \ problem,\n video, and discussion.\n\n Example: block_types_filter=vertical,html\n\ \n**Response Values**\n\n The following fields are returned with a successful\ \ response.\n\n * root: The ID of the root node of the requested course\ \ block\n structure.\n\n * blocks: A dictionary or list, based on\ \ the value of the\n \"return_type\" parameter. Maps block usage IDs\ \ to a collection of\n information about each block. Each block contains\ \ the following\n fields.\n\n * id: (string) The usage ID of the\ \ block.\n\n * type: (string) The type of block. Possible values the\ \ names of any\n XBlock type in the system, including custom blocks.\ \ Examples are\n course, chapter, sequential, vertical, html, problem,\ \ video, and\n discussion.\n\n * display_name: (string) The display\ \ name of the block.\n\n * children: (list) If the block has child blocks,\ \ a list of IDs of\n the child blocks. Returned only if \"children\"\ \ is included in the\n \"requested_fields\" parameter.\n\n * completion:\ \ (float or None) The level of completion of the block.\n Its value\ \ can vary between 0.0 and 1.0 or be equal to None\n if block is not\ \ completable. Returned only if \"completion\"\n is included in the\ \ \"requested_fields\" parameter.\n\n * block_counts: (dict) For each\ \ block type specified in the\n block_counts parameter to the endpoint,\ \ the aggregate number of\n blocks of that type for this block and\ \ all of its descendants.\n\n * graded (boolean) Whether or not the block\ \ or any of its descendants\n is graded. Returned only if \"graded\"\ \ is included in the\n \"requested_fields\" parameter.\n\n * format:\ \ (string) The assignment type of the block. Possible values\n can\ \ be \"Homework\", \"Lab\", \"Midterm Exam\", and \"Final Exam\".\n \ \ Returned only if \"format\" is included in the \"requested_fields\"\n \ \ parameter.\n\n * student_view_data: (dict) The JSON data for\ \ this block.\n Returned only if the \"student_view_data\" input parameter\ \ contains\n this block's type.\n\n * student_view_url: (string)\ \ The URL to retrieve the HTML rendering\n of this block's student\ \ view. The HTML could include CSS and\n Javascript code. This field\ \ can be used in combination with the\n student_view_multi_device field\ \ to decide whether to display this\n content to the user.\n\n \ \ This URL can be used as a fallback if the student_view_data for\n \ \ this block type is not supported by the client or the block.\n\n \ \ * student_view_multi_device: (boolean) Whether or not the HTML of\n \ \ the student view that is rendered at \"student_view_url\" supports\n\ \ responsive web layouts, touch-based inputs, and interactive state\n\ \ management for a variety of device sizes and types, including\n \ \ mobile and touch devices. Returned only if\n \"student_view_multi_device\"\ \ is included in the \"requested_fields\"\n parameter.\n\n * lms_web_url:\ \ (string) The URL to the navigational container of the\n xBlock on\ \ the web LMS. This URL can be used as a further fallback\n if the\ \ student_view_url and the student_view_data fields are not\n supported.\n\ \n * lti_url: The block URL for an LTI consumer. Returned only if the\n\ \ \"ENABLE_LTI_PROVIDER\" Django settign is set to \"True\".\n\n \ \ * due: The due date of the block. Returned only if \"due\" is included\n\ \ in the \"requested_fields\" parameter.\n\n * show_correctness:\ \ Whether to show scores/correctness to learners for the current sequence\ \ or problem.\n Returned only if \"show_correctness\" is included in\ \ the \"requested_fields\" parameter." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - courses parameters: - name: usage_key_string in: path required: true type: string - name: var in: path required: true type: string /credit/v1/courses/: get: operationId: credit_v1_courses_list description: CreditCourse endpoints. parameters: [] responses: '200': description: '' schema: type: array items: $ref: '#/definitions/CreditCourse' tags: - credit post: operationId: credit_v1_courses_create description: CreditCourse endpoints. parameters: - name: data in: body required: true schema: $ref: '#/definitions/CreditCourse' responses: '201': description: '' schema: $ref: '#/definitions/CreditCourse' tags: - credit parameters: [] /credit/v1/courses/{course_key}/: get: operationId: credit_v1_courses_read description: CreditCourse endpoints. parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/CreditCourse' tags: - credit put: operationId: credit_v1_courses_update description: Create/update course modes for a course. parameters: - name: data in: body required: true schema: $ref: '#/definitions/CreditCourse' responses: '200': description: '' schema: $ref: '#/definitions/CreditCourse' tags: - credit patch: operationId: credit_v1_courses_partial_update description: CreditCourse endpoints. parameters: - name: data in: body required: true schema: $ref: '#/definitions/CreditCourse' responses: '200': description: '' schema: $ref: '#/definitions/CreditCourse' tags: - credit parameters: - name: course_key in: path required: true type: string pattern: (?:[^/+]+(/|\+)[^/+]+(/|\+)[^/?]+) /credit/v1/eligibility/: get: operationId: credit_v1_eligibility_list description: Returns eligibility for a user-course combination. parameters: [] responses: '200': description: '' schema: type: array items: $ref: '#/definitions/CreditEligibility' tags: - credit parameters: [] /credit/v1/providers/: get: operationId: credit_v1_providers_list description: Credit provider endpoints. parameters: [] responses: '200': description: '' schema: type: array items: $ref: '#/definitions/CreditProvider' tags: - credit parameters: [] /credit/v1/providers/{provider_id}/: get: operationId: credit_v1_providers_read description: Credit provider endpoints. parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/CreditProvider' tags: - credit parameters: - name: provider_id in: path description: Unique identifier for this credit provider. Only alphanumeric characters and hyphens (-) are allowed. The identifier is case-sensitive. required: true type: string pattern: '[a-z,A-Z,0-9,\-]+' /credit/v1/providers/{provider_id}/callback/: post: operationId: credit_v1_providers_callback_create description: POST handler. parameters: [] responses: '201': description: '' tags: - credit parameters: - name: provider_id in: path required: true type: string /credit/v1/providers/{provider_id}/request/: post: operationId: credit_v1_providers_request_create description: POST handler. parameters: [] responses: '201': description: '' tags: - credit parameters: - name: provider_id in: path required: true type: string /discounts/course/(P{course_key_string}[/+]+{var}[/+]+api/discounts/course/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+): get: operationId: discounts_course_+]+api_discounts_course_+]+(_|+)[_]+)_list description: Return the discount percent, if the user has appropriate permissions. parameters: [] responses: '200': description: '' tags: - discounts parameters: - name: course_key_string in: path required: true type: string - name: var in: path required: true type: string ? /discounts/user/{user_id}/course/(P{course_key_string}[/+]+{var}[/+]+api/discounts/user/{user_id}/course/(P{course_key_string}[/+]+(/|+)[/+]+{var}[/]+) : get: operationId: discounts_user_course_+]+api_discounts_user_course_+]+(_|+)[_]+)_list description: Return the discount percent, if the user has appropriate permissions. parameters: [] responses: '200': description: '' tags: - discounts parameters: - name: course_key_string in: path required: true type: string - name: user_id in: path required: true type: string - name: var in: path required: true type: string /discussion/v1/accounts/replace_username: post: operationId: discussion_v1_accounts_replace_username_create description: Implements the username replacement endpoint parameters: [] responses: '201': description: '' tags: - discussion parameters: [] /discussion/v1/accounts/retire_forum: post: operationId: discussion_v1_accounts_retire_forum_create description: Implements the retirement endpoint. parameters: [] responses: '201': description: '' tags: - discussion parameters: [] /discussion/v1/comments/: get: operationId: discussion_v1_comments_list description: "Implements the GET method for the list endpoint as described in\ \ the\nclass docstring." parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion post: operationId: discussion_v1_comments_create description: "Implements the POST method for the list endpoint as described\ \ in the\nclass docstring." parameters: [] responses: '201': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion parameters: [] /discussion/v1/comments/{comment_id}/: get: operationId: discussion_v1_comments_read description: Implements the GET method for comments against response ID parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion patch: operationId: discussion_v1_comments_partial_update description: "Implements the PATCH method for the instance endpoint as described\ \ in\nthe class docstring." parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion delete: operationId: discussion_v1_comments_delete description: "Implements the DELETE method for the instance endpoint as described\ \ in\nthe class docstring" parameters: [] responses: '204': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion parameters: - name: comment_id in: path required: true type: string ? /discussion/v1/course_topics/(P{course_id}[/+]+{var}[/+]+api/discussion/v1/course_topics/(P{course_id}[/+]+(/|+)[/+]+{var}[/]+) : get: operationId: discussion_v1_course_topics_+]+api_discussion_v1_course_topics_+]+(_|+)[_]+)_list description: Implements the GET method as described in the class docstring. parameters: [] responses: '200': description: '' tags: - discussion parameters: - name: course_id in: path required: true type: string - name: var in: path required: true type: string /discussion/v1/courses/(P{course_id}[/+]+{var}[/+]+api/discussion/v1/courses/(P{course_id}[/+]+(/|+)[/+]+{var}[/]+): get: operationId: discussion_v1_courses_+]+api_discussion_v1_courses_+]+(_|+)[_]+)_list description: Implements the GET method as described in the class docstring. parameters: [] responses: '200': description: '' tags: - discussion parameters: - name: course_id in: path required: true type: string - name: var in: path required: true type: string /discussion/v1/courses/{course_id}/roles/{rolename}/: get: operationId: discussion_v1_courses_roles_read description: Implement a handler for the GET method. parameters: [] responses: '200': description: '' tags: - discussion post: operationId: discussion_v1_courses_roles_create description: Implement a handler for the POST method. parameters: [] responses: '201': description: '' tags: - discussion parameters: - name: course_id in: path required: true type: string - name: rolename in: path required: true type: string /discussion/v1/courses/{course_id}/settings: get: operationId: discussion_v1_courses_settings_list description: Implement a handler for the GET method. parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion patch: operationId: discussion_v1_courses_settings_partial_update description: Implement a handler for the PATCH method. parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion parameters: - name: course_id in: path required: true type: string /discussion/v1/threads/: get: operationId: discussion_v1_threads_list description: "Implements the GET method for the list endpoint as described in\ \ the\nclass docstring." parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion post: operationId: discussion_v1_threads_create description: "Implements the POST method for the list endpoint as described\ \ in the\nclass docstring." parameters: [] responses: '201': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion parameters: [] /discussion/v1/threads/{thread_id}/: get: operationId: discussion_v1_threads_read description: Implements the GET method for thread ID parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion patch: operationId: discussion_v1_threads_partial_update description: "Implements the PATCH method for the instance endpoint as described\ \ in\nthe class docstring." parameters: [] responses: '200': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion delete: operationId: discussion_v1_threads_delete description: "Implements the DELETE method for the instance endpoint as described\ \ in\nthe class docstring" parameters: [] responses: '204': description: '' consumes: - application/json - application/merge-patch+json tags: - discussion parameters: - name: thread_id in: path required: true type: string /edx_proctoring/proctoring_review_callback/: post: operationId: edx_proctoring_proctoring_review_callback_create description: Post callback handler parameters: [] responses: '201': description: '' tags: - edx_proctoring parameters: [] /edx_proctoring/v1/instructor/{course_id}: get: operationId: edx_proctoring_v1_instructor_read description: Redirect to dashboard for a given course and optional exam_id parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: course_id in: path required: true type: string /edx_proctoring/v1/instructor/{course_id}/{exam_id}: get: operationId: edx_proctoring_v1_instructor_read description: Redirect to dashboard for a given course and optional exam_id parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: course_id in: path required: true type: string - name: exam_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/active_exams_for_user: get: operationId: edx_proctoring_v1_proctored_exam_active_exams_for_user_list description: returns the get_active_exams_for_user parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: [] /edx_proctoring/v1/proctored_exam/allowance: get: operationId: edx_proctoring_v1_proctored_exam_allowance_list description: "HTTP GET handler. Get all allowances for a course.\nCourse and\ \ Global staff can view both timed and proctored exam allowances." parameters: [] responses: '200': description: '' tags: - edx_proctoring put: operationId: edx_proctoring_v1_proctored_exam_allowance_update description: HTTP GET handler. Adds or updates Allowance parameters: [] responses: '200': description: '' tags: - edx_proctoring delete: operationId: edx_proctoring_v1_proctored_exam_allowance_delete description: HTTP DELETE handler. Removes Allowance. parameters: [] responses: '204': description: '' tags: - edx_proctoring parameters: [] /edx_proctoring/v1/proctored_exam/attempt: get: operationId: edx_proctoring_v1_proctored_exam_attempt_list description: HTTP GET Handler. Returns the status of the exam attempt. parameters: [] responses: '200': description: '' tags: - edx_proctoring post: operationId: edx_proctoring_v1_proctored_exam_attempt_create description: HTTP POST handler. To create an exam attempt. parameters: [] responses: '201': description: '' tags: - edx_proctoring parameters: [] /edx_proctoring/v1/proctored_exam/attempt/course_id/{course_id}: get: operationId: edx_proctoring_v1_proctored_exam_attempt_course_id_read description: "HTTP GET Handler. Returns the status of the exam attempt.\nCourse\ \ and Global staff can view both timed and proctored exam attempts." parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: course_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/attempt/course_id/{course_id}/search/{search_by}: get: operationId: edx_proctoring_v1_proctored_exam_attempt_course_id_search_read description: "HTTP GET Handler. Returns the status of the exam attempt.\nCourse\ \ and Global staff can view both timed and proctored exam attempts." parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: course_id in: path required: true type: string - name: search_by in: path required: true type: string /edx_proctoring/v1/proctored_exam/attempt/{attempt_id}: get: operationId: edx_proctoring_v1_proctored_exam_attempt_read description: HTTP GET Handler. Returns the status of the exam attempt. parameters: [] responses: '200': description: '' tags: - edx_proctoring put: operationId: edx_proctoring_v1_proctored_exam_attempt_update description: HTTP POST handler. To stop an exam. parameters: [] responses: '200': description: '' tags: - edx_proctoring delete: operationId: edx_proctoring_v1_proctored_exam_attempt_delete description: HTTP DELETE handler. Removes an exam attempt. parameters: [] responses: '204': description: '' tags: - edx_proctoring parameters: - name: attempt_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/attempt/{attempt_id}/review_status: put: operationId: edx_proctoring_v1_proctored_exam_attempt_review_status_update description: Update the is_status_acknowledge flag for the specific attempt parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: attempt_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/attempt/{external_id}/ready: post: operationId: edx_proctoring_v1_proctored_exam_attempt_ready_create description: Post callback handler parameters: [] responses: '201': description: '' tags: - edx_proctoring parameters: - name: external_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/attempt/{external_id}/reviewed: post: operationId: edx_proctoring_v1_proctored_exam_attempt_reviewed_create description: "Called when 3rd party proctoring service has finished its review\ \ of\nan attempt." parameters: [] responses: '201': description: '' tags: - edx_proctoring parameters: - name: external_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/exam: get: operationId: edx_proctoring_v1_proctored_exam_exam_list description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\ \ by course_id, content_id: get_exam_by_content_id()" parameters: [] responses: '200': description: '' tags: - edx_proctoring post: operationId: edx_proctoring_v1_proctored_exam_exam_create description: Http POST handler. Creates an exam. parameters: [] responses: '201': description: '' tags: - edx_proctoring put: operationId: edx_proctoring_v1_proctored_exam_exam_update description: "HTTP PUT handler. To update an exam.\ncalls the update_exam" parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: [] /edx_proctoring/v1/proctored_exam/exam/course_id/{course_id}: get: operationId: edx_proctoring_v1_proctored_exam_exam_course_id_read description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\ \ by course_id, content_id: get_exam_by_content_id()" parameters: [] responses: '200': description: '' tags: - edx_proctoring post: operationId: edx_proctoring_v1_proctored_exam_exam_course_id_create description: Http POST handler. Creates an exam. parameters: [] responses: '201': description: '' tags: - edx_proctoring put: operationId: edx_proctoring_v1_proctored_exam_exam_course_id_update description: "HTTP PUT handler. To update an exam.\ncalls the update_exam" parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: course_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/exam/course_id/{course_id}/content_id/{content_id}: get: operationId: edx_proctoring_v1_proctored_exam_exam_course_id_content_id_read description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\ \ by course_id, content_id: get_exam_by_content_id()" parameters: [] responses: '200': description: '' tags: - edx_proctoring post: operationId: edx_proctoring_v1_proctored_exam_exam_course_id_content_id_create description: Http POST handler. Creates an exam. parameters: [] responses: '201': description: '' tags: - edx_proctoring put: operationId: edx_proctoring_v1_proctored_exam_exam_course_id_content_id_update description: "HTTP PUT handler. To update an exam.\ncalls the update_exam" parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: content_id in: path required: true type: string - name: course_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/exam/exam_id/{exam_id}: get: operationId: edx_proctoring_v1_proctored_exam_exam_exam_id_read description: "HTTP GET handler.\n Scenarios:\n by exam_id: calls get_exam_by_id()\n\ \ by course_id, content_id: get_exam_by_content_id()" parameters: [] responses: '200': description: '' tags: - edx_proctoring post: operationId: edx_proctoring_v1_proctored_exam_exam_exam_id_create description: Http POST handler. Creates an exam. parameters: [] responses: '201': description: '' tags: - edx_proctoring put: operationId: edx_proctoring_v1_proctored_exam_exam_exam_id_update description: "HTTP PUT handler. To update an exam.\ncalls the update_exam" parameters: [] responses: '200': description: '' tags: - edx_proctoring parameters: - name: exam_id in: path required: true type: string /edx_proctoring/v1/proctored_exam/{course_id}/allowance: get: operationId: edx_proctoring_v1_proctored_exam_allowance_list description: "HTTP GET handler. Get all allowances for a course.\nCourse and\ \ Global staff can view both timed and proctored exam allowances." parameters: [] responses: '200': description: '' tags: - edx_proctoring put: operationId: edx_proctoring_v1_proctored_exam_allowance_update description: HTTP GET handler. Adds or updates Allowance parameters: [] responses: '200': description: '' tags: - edx_proctoring delete: operationId: edx_proctoring_v1_proctored_exam_allowance_delete description: HTTP DELETE handler. Removes Allowance. parameters: [] responses: '204': description: '' tags: - edx_proctoring parameters: - name: course_id in: path required: true type: string /edx_proctoring/v1/retire_backend_user/{user_id}/: post: operationId: edx_proctoring_v1_retire_backend_user_create description: "Deletes all user data for the particular user_id\nfrom all configured\ \ backends" parameters: [] responses: '201': description: '' tags: - edx_proctoring parameters: - name: user_id in: path required: true type: string /edxnotes/v1/retire_user/: post: operationId: edxnotes_v1_retire_user_create description: Implements the retirement endpoint. parameters: [] responses: '201': description: '' tags: - edxnotes parameters: [] /embargo/v1/course_access/: get: operationId: embargo_v1_course_access_list summary: GET /api/embargo/v1/course_access/ description: "Arguments:\n request (HttpRequest)\n\nReturn:\n Response:\ \ True or False depending on the check." parameters: [] responses: '200': description: '' tags: - embargo parameters: [] /enrollment/v1/course/{course_id}: get: operationId: enrollment_v1_course_read summary: Read enrollment information for a particular course. description: "HTTP Endpoint for retrieving course level enrollment information.\n\ \nArgs:\n request (Request): To get current course enrollment information,\ \ a GET request will return\n information for the specified course.\n\ \ course_id (str): URI element specifying the course location. Enrollment\ \ information will be\n returned.\n\nReturn:\n A JSON serialized\ \ representation of the course enrollment details." parameters: [] responses: '200': description: '' tags: - enrollment parameters: - name: course_id in: path required: true type: string /enrollment/v1/enrollment: get: operationId: enrollment_v1_enrollment_list summary: Gets a list of all course enrollments for a user. description: "Returns a list for the currently logged in user, or for the user\ \ named by the 'user' GET\nparameter. If the username does not match that\ \ of the currently logged in user, only\ncourses for which the currently logged\ \ in user has the Staff or Admin role are listed.\nAs a result, a course team\ \ member can find out which of his or her own courses a particular\nlearner\ \ is enrolled in.\n\nOnly the Staff or Admin role (granted on the Django administrative\ \ console as the staff\nor instructor permission) in individual courses gives\ \ the requesting user access to\nenrollment data. Permissions granted at the\ \ organizational level do not give a user\naccess to enrollment data for all\ \ of that organization's courses.\n\nUsers who have the global staff permission\ \ can access all enrollment data for all\ncourses." parameters: [] responses: '200': description: '' tags: - enrollment post: operationId: enrollment_v1_enrollment_create summary: Enrolls the currently logged-in user in a course. description: "Server-to-server calls may deactivate or modify the mode of existing\ \ enrollments. All other requests\ngo through `add_enrollment()`, which allows\ \ creation of new and reactivation of old enrollments." parameters: [] responses: '201': description: '' tags: - enrollment parameters: [] /enrollment/v1/enrollment/{course_id}: get: operationId: enrollment_v1_enrollment_read summary: Create, read, or update enrollment information for a user. description: "HTTP Endpoint for all CRUD operations for a user course enrollment.\ \ Allows creation, reading, and\nupdates of the current enrollment for a particular\ \ course.\n\nArgs:\n request (Request): To get current course enrollment\ \ information, a GET request will return\n information for the current\ \ user and the specified course.\n course_id (str): URI element specifying\ \ the course location. Enrollment information will be\n returned, created,\ \ or updated for this particular course.\n username (str): The username\ \ associated with this enrollment request.\n\nReturn:\n A JSON serialized\ \ representation of the course enrollment." parameters: [] responses: '200': description: '' tags: - enrollment parameters: - name: course_id in: path required: true type: string /enrollment/v1/enrollment/{username},{course_id}: get: operationId: enrollment_v1_enrollment_read summary: Create, read, or update enrollment information for a user. description: "HTTP Endpoint for all CRUD operations for a user course enrollment.\ \ Allows creation, reading, and\nupdates of the current enrollment for a particular\ \ course.\n\nArgs:\n request (Request): To get current course enrollment\ \ information, a GET request will return\n information for the current\ \ user and the specified course.\n course_id (str): URI element specifying\ \ the course location. Enrollment information will be\n returned, created,\ \ or updated for this particular course.\n username (str): The username\ \ associated with this enrollment request.\n\nReturn:\n A JSON serialized\ \ representation of the course enrollment." parameters: [] responses: '200': description: '' tags: - enrollment parameters: - name: course_id in: path required: true type: string - name: username in: path required: true type: string /enrollment/v1/enrollments/: get: operationId: enrollment_v1_enrollments_list summary: '**Use Cases**' description: "Get a list of all course enrollments, optionally filtered by a\ \ course ID or list of usernames.\n\n**Example Requests**\n\n GET /api/enrollment/v1/enrollments\n\ \n GET /api/enrollment/v1/enrollments?course_id={course_id}\n\n GET\ \ /api/enrollment/v1/enrollments?username={username},{username},{username}\n\ \n GET /api/enrollment/v1/enrollments?course_id={course_id}&username={username}\n\ \n**Query Parameters for GET**\n\n * course_id: Filters the result to course\ \ enrollments for the course corresponding to the\n given course ID.\ \ The value must be URL encoded. Optional.\n\n * username: List of comma-separated\ \ usernames. Filters the result to the course enrollments\n of the given\ \ users. Optional.\n\n * page_size: Number of results to return per page.\ \ Optional.\n\n * page: Page number to retrieve. Optional.\n\n**Response\ \ Values**\n\n If the request for information about the course enrollments\ \ is successful, an HTTP 200 \"OK\" response\n is returned.\n\n The\ \ HTTP 200 response has the following values.\n\n * results: A list of\ \ the course enrollments matching the request.\n\n * created: Date\ \ and time when the course enrollment was created.\n\n * mode: Mode\ \ for the course enrollment.\n\n * is_active: Whether the course enrollment\ \ is active or not.\n\n * user: Username of the user in the course\ \ enrollment.\n\n * course_id: Course ID of the course in the course\ \ enrollment.\n\n * next: The URL to the next page of results, or null\ \ if this is the\n last page.\n\n * previous: The URL to the next\ \ page of results, or null if this\n is the first page.\n\n If the\ \ user is not logged in, a 401 error is returned.\n\n If the user is not\ \ global staff, a 403 error is returned.\n\n If the specified course_id\ \ is not valid or any of the specified usernames\n are not valid, a 400\ \ error is returned.\n\n If the specified course_id does not correspond\ \ to a valid course or if all the specified\n usernames do not correspond\ \ to valid users, an HTTP 200 \"OK\" response is returned with an\n empty\ \ 'results' field." parameters: - name: cursor in: query description: The pagination cursor value. required: false type: string responses: '200': description: '' schema: required: - results type: object properties: next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/CourseEnrollmentsApiList' tags: - enrollment parameters: [] /enrollment/v1/roles/: get: operationId: enrollment_v1_roles_list description: Gets a list of all roles for the currently logged-in user, filtered by course_id if supplied parameters: [] responses: '200': description: '' tags: - enrollment parameters: [] /enrollment/v1/unenroll/: post: operationId: enrollment_v1_unenroll_create description: Unenrolls the specified user from all courses. parameters: [] responses: '201': description: '' tags: - enrollment parameters: [] /entitlements/v1/entitlements/: get: operationId: entitlements_v1_entitlements_list description: "Override the list method to expire records that are past the\n\ policy and requested via the API before returning those records." parameters: - name: uuid in: query description: '' required: false type: string - name: user in: query description: '' required: false type: string - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/CourseEntitlement' tags: - entitlements post: operationId: entitlements_v1_entitlements_create description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/CourseEntitlement' responses: '201': description: '' schema: $ref: '#/definitions/CourseEntitlement' tags: - entitlements parameters: [] /entitlements/v1/entitlements/{uuid}/: get: operationId: entitlements_v1_entitlements_read description: "Override the retrieve method to expire a record that is past the\n\ policy and is requested via the API before returning that record." parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/CourseEntitlement' tags: - entitlements put: operationId: entitlements_v1_entitlements_update description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/CourseEntitlement' responses: '200': description: '' schema: $ref: '#/definitions/CourseEntitlement' tags: - entitlements patch: operationId: entitlements_v1_entitlements_partial_update description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/CourseEntitlement' responses: '200': description: '' schema: $ref: '#/definitions/CourseEntitlement' tags: - entitlements delete: operationId: entitlements_v1_entitlements_delete description: '' parameters: [] responses: '204': description: '' tags: - entitlements parameters: - name: uuid in: path required: true type: string pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}' /experiments/v0/custom/REV-934/: get: operationId: experiments_v0_custom_REV-934_list description: Return the if the course should be upsold in the mobile app, if the user has appropriate permissions. parameters: [] responses: '200': description: '' tags: - experiments parameters: [] /experiments/v0/data/: get: operationId: experiments_v0_data_list description: '' parameters: - name: experiment_id in: query description: '' required: false type: number - name: key in: query description: '' required: false type: string - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/ExperimentData' tags: - experiments post: operationId: experiments_v0_data_create description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentDataCreate' responses: '201': description: '' schema: $ref: '#/definitions/ExperimentDataCreate' tags: - experiments put: operationId: experiments_v0_data_update description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentData' responses: '200': description: '' schema: $ref: '#/definitions/ExperimentData' tags: - experiments parameters: [] /experiments/v0/data/bulk_upsert/: put: operationId: experiments_v0_data_bulk_upsert description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentData' responses: '200': description: '' schema: $ref: '#/definitions/ExperimentData' tags: - experiments parameters: [] /experiments/v0/data/{id}/: get: operationId: experiments_v0_data_read description: '' parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/ExperimentData' tags: - experiments put: operationId: experiments_v0_data_update description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentData' responses: '200': description: '' schema: $ref: '#/definitions/ExperimentData' tags: - experiments patch: operationId: experiments_v0_data_partial_update description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentData' responses: '200': description: '' schema: $ref: '#/definitions/ExperimentData' tags: - experiments delete: operationId: experiments_v0_data_delete description: '' parameters: [] responses: '204': description: '' tags: - experiments parameters: - name: id in: path description: A unique integer value identifying this Experiment Data. required: true type: integer /experiments/v0/key-value/: get: operationId: experiments_v0_key-value_list description: '' parameters: - name: experiment_id in: query description: '' required: false type: number - name: key in: query description: '' required: false type: string - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/ExperimentKeyValue' tags: - experiments post: operationId: experiments_v0_key-value_create description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentKeyValue' responses: '201': description: '' schema: $ref: '#/definitions/ExperimentKeyValue' tags: - experiments parameters: [] /experiments/v0/key-value/bulk_upsert/: put: operationId: experiments_v0_key-value_bulk_upsert description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentKeyValue' responses: '200': description: '' schema: $ref: '#/definitions/ExperimentKeyValue' tags: - experiments parameters: [] /experiments/v0/key-value/{id}/: get: operationId: experiments_v0_key-value_read description: '' parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/ExperimentKeyValue' tags: - experiments put: operationId: experiments_v0_key-value_update description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentKeyValue' responses: '200': description: '' schema: $ref: '#/definitions/ExperimentKeyValue' tags: - experiments patch: operationId: experiments_v0_key-value_partial_update description: '' parameters: - name: data in: body required: true schema: $ref: '#/definitions/ExperimentKeyValue' responses: '200': description: '' schema: $ref: '#/definitions/ExperimentKeyValue' tags: - experiments delete: operationId: experiments_v0_key-value_delete description: '' parameters: [] responses: '204': description: '' tags: - experiments parameters: - name: id in: path description: A unique integer value identifying this Experiment Key-Value Pair. required: true type: integer /grades/v1/courses/: get: operationId: grades_v1_courses_list description: "Gets a course progress status.\nArgs:\n request (Request):\ \ Django request object.\n course_id (string): URI element specifying the\ \ course location.\n Can also be passed as a GET parameter\ \ instead.\nReturn:\n A JSON serialized representation of the requesting\ \ user's current grade status." parameters: - name: cursor in: query description: The pagination cursor value. required: false type: string - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - grades parameters: [] /grades/v1/courses/{course_id}/: get: operationId: grades_v1_courses_read description: "Gets a course progress status.\nArgs:\n request (Request):\ \ Django request object.\n course_id (string): URI element specifying the\ \ course location.\n Can also be passed as a GET parameter\ \ instead.\nReturn:\n A JSON serialized representation of the requesting\ \ user's current grade status." parameters: [] responses: '200': description: '' tags: - grades parameters: - name: course_id in: path required: true type: string /grades/v1/gradebook/{course_id}/: get: operationId: grades_v1_gradebook_read description: "Checks for course author access for the given course by the requesting\ \ user.\nCalls the view function if has access, otherwise raises a 403." parameters: [] responses: '200': description: '' tags: - grades parameters: - name: course_id in: path required: true type: string /grades/v1/gradebook/{course_id}/bulk-update: post: operationId: grades_v1_gradebook_bulk-update_create description: "Checks for course author access for the given course by the requesting\ \ user.\nCalls the view function if has access, otherwise raises a 403." parameters: [] responses: '201': description: '' tags: - grades parameters: - name: course_id in: path required: true type: string /grades/v1/gradebook/{course_id}/grading-info: get: operationId: grades_v1_gradebook_grading-info_list description: "Checks for course author access for the given course by the requesting\ \ user.\nCalls the view function if has access, otherwise raises a 403." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - grades parameters: - name: course_id in: path required: true type: string /grades/v1/policy/courses/{course_id}/: get: operationId: grades_v1_policy_courses_read summary: '**Use Case**' description: "Get the course grading policy.\n\n**Example requests**:\n\n \ \ GET /api/grades/v1/policy/courses/{course_id}/\n\n**Response Values**\n\ \n * assignment_type: The type of the assignment, as configured by course\n\ \ staff. For example, course staff might make the assignment types Homework,\n\ \ Quiz, and Exam.\n\n * count: The number of assignments of the type.\n\ \n * dropped: Number of assignments of the type that are dropped.\n\n \ \ * weight: The weight, or effect, of the assignment type on the learner's\n\ \ final grade." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - grades parameters: - name: course_id in: path required: true type: string /grades/v1/subsection/{subsection_id}/: get: operationId: grades_v1_subsection_read description: "Returns subection grade data, override grade data and a history\ \ of changes made to\na specific users specific subsection grade.\n\nArgs:\n\ \ subsection_id: String representation of a usage_key, which is an opaque\ \ key of\n a persistant subection grade.\n user_id: An integer represenation\ \ of a user" parameters: [] responses: '200': description: '' tags: - grades parameters: - name: subsection_id in: path required: true type: string /mobile/{api_version}/course_info/{course_id}/handouts: get: operationId: mobile_course_info_handouts_list summary: '**Use Case**' description: "Get the HTML for course handouts.\n\n**Example Request**\n\n \ \ GET /api/mobile/v0.5/course_info/{course_id}/handouts\n\n**Response Values**\n\ \n If the request is successful, the request returns an HTTP 200 \"OK\"\ \n response along with the following value.\n\n * handouts_html: The\ \ HTML for course handouts." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - mobile parameters: - name: api_version in: path required: true type: string - name: course_id in: path required: true type: string /mobile/{api_version}/course_info/{course_id}/updates: get: operationId: mobile_course_info_updates_list summary: '**Use Case**' description: "Get the content for course updates.\n\n**Example Request**\n\n\ \ GET /api/mobile/v0.5/course_info/{course_id}/updates\n\n**Response Values**\n\ \n If the request is successful, the request returns an HTTP 200 \"OK\"\ \n response along with an array of course updates. Each course update\n\ \ contains the following values.\n\n * content: The content, as\ \ an HTML string, of the course update.\n * date: The date of the course\ \ update.\n * id: The unique identifier of the update.\n * status:\ \ Whether the update is visible or not." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - mobile parameters: - name: api_version in: path required: true type: string - name: course_id in: path required: true type: string /mobile/{api_version}/my_user_info: get: operationId: mobile_my_user_info_list description: Redirect to the currently-logged-in user's info page parameters: [] responses: '200': description: '' tags: - mobile parameters: - name: api_version in: path required: true type: string /mobile/{api_version}/users/{username}: get: operationId: mobile_users_read summary: '**Use Case**' description: "Get information about the specified user and access other resources\n\ \ the user has permissions for.\n\n Users are redirected to this endpoint\ \ after they sign in.\n\n You can use the **course_enrollments** value\ \ in the response to get a\n list of courses the user is enrolled in.\n\ \n**Example Request**\n\n GET /api/mobile/{version}/users/{username}\n\n\ **Response Values**\n\n If the request is successful, the request returns\ \ an HTTP 200 \"OK\" response.\n\n The HTTP 200 response has the following\ \ values.\n\n * course_enrollments: The URI to list the courses the currently\ \ signed\n in user is enrolled in.\n * email: The email address of\ \ the currently signed in user.\n * id: The ID of the user.\n * name:\ \ The full name of the currently signed in user.\n * username: The username\ \ of the currently signed in user." parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/mobile_api.User' tags: - mobile parameters: - name: api_version in: path required: true type: string - name: username in: path description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. required: true type: string pattern: ^[\w.@+-]+$ /mobile/{api_version}/users/{username}/course_enrollments/: get: operationId: mobile_users_course_enrollments_list summary: '**Use Case**' description: "Get information about the courses that the currently signed in\ \ user is\n enrolled in.\n\n v1 differs from v0.5 version by returning\ \ ALL enrollments for\n a user rather than only the enrollments the user\ \ has access to (that haven't expired).\n An additional attribute \"expiration\"\ \ has been added to the response, which lists the date\n when access to\ \ the course will expire or null if it doesn't expire.\n\n**Example Request**\n\ \n GET /api/mobile/v1/users/{username}/course_enrollments/\n\n**Response\ \ Values**\n\n If the request for information about the user is successful,\ \ the\n request returns an HTTP 200 \"OK\" response.\n\n The HTTP 200\ \ response has the following values.\n\n * expiration: The course expiration\ \ date for given user course pair\n or null if the course does not expire.\n\ \ * certificate: Information about the user's earned certificate in the\n\ \ course.\n * course: A collection of the following data about the\ \ course.\n\n * courseware_access: A JSON representation with access information\ \ for the course,\n including any access errors.\n\n * course_about:\ \ The URL to the course about page.\n * course_sharing_utm_parameters:\ \ Encoded UTM parameters to be included in course sharing url\n * course_handouts:\ \ The URI to get data for course handouts.\n * course_image: The path\ \ to the course image.\n * course_updates: The URI to get data for course\ \ updates.\n * discussion_url: The URI to access data for course discussions\ \ if\n it is enabled, otherwise null.\n * end: The end date of\ \ the course.\n * id: The unique ID of the course.\n * name: The\ \ name of the course.\n * number: The course number.\n * org: The\ \ organization that created the course.\n * start: The date and time\ \ when the course starts.\n * start_display:\n If start_type is\ \ a string, then the advertised_start date for the course.\n If start_type\ \ is a timestamp, then a formatted date for the start of the course.\n \ \ If start_type is empty, then the value is None and it indicates that\ \ the course has not yet started.\n * start_type: One of either \"string\"\ , \"timestamp\", or \"empty\"\n * subscription_id: A unique \"clean\"\ \ (alphanumeric with '_') ID of\n the course.\n * video_outline:\ \ The URI to get the list of all videos that the user\n can access\ \ in the course.\n\n * created: The date the course was created.\n *\ \ is_active: Whether the course is currently active. Possible values\n \ \ are true or false.\n * mode: The type of certificate registration for\ \ this course (honor or\n certified).\n * url: URL to the downloadable\ \ version of the certificate, if exists." parameters: [] responses: '200': description: '' schema: type: array items: $ref: '#/definitions/CourseEnrollment' tags: - mobile parameters: - name: api_version in: path required: true type: string - name: username in: path required: true type: string ? /mobile/{api_version}/users/{username}/course_status_info/(P{course_id}[/+]+{var}[/+]+api/mobile/{api_version}/users/{username}/course_status_info/(P{course_id}[/+]+(/|+)[/+]+{var}[/]+) : get: operationId: mobile_users_course_status_info_+]+api_mobile_users_course_status_info_+]+(_|+)[_]+)_list description: Get the ID of the module that the specified user last visited in the specified course. parameters: [] responses: '200': description: '' tags: - mobile patch: operationId: mobile_users_course_status_info_+]+api_mobile_users_course_status_info_+]+(_|+)[_]+)_partial_update description: Update the ID of the module that the specified user last visited in the specified course. parameters: [] responses: '200': description: '' tags: - mobile parameters: - name: api_version in: path required: true type: string - name: course_id in: path required: true type: string - name: username in: path required: true type: string - name: var in: path required: true type: string /notifier/v1/users/: get: operationId: notifier_v1_users_list description: "An endpoint that the notifier can use to retrieve users who have\ \ enabled\ndaily forum digests, including all information that the notifier\ \ needs about\nsuch users." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/NotifierUser' tags: - notifier parameters: [] /notifier/v1/users/{id}/: get: operationId: notifier_v1_users_read description: "An endpoint that the notifier can use to retrieve users who have\ \ enabled\ndaily forum digests, including all information that the notifier\ \ needs about\nsuch users." parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/NotifierUser' tags: - notifier parameters: - name: id in: path description: A unique integer value identifying this user. required: true type: integer /organizations/v0/organizations/: get: operationId: organizations_v0_organizations_list description: "Organization view to fetch list organization data or single organization\n\ using organization short name." parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/Organization' tags: - organizations parameters: [] /organizations/v0/organizations/{short_name}/: get: operationId: organizations_v0_organizations_read description: "Organization view to fetch list organization data or single organization\n\ using organization short name." parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/Organization' tags: - organizations parameters: - name: short_name in: path description: Please do not use spaces or special characters. Only allowed special characters are period (.), hyphen (-) and underscore (_). required: true type: string /profile_images/v1/{username}/remove: post: operationId: profile_images_v1_remove_create description: POST /api/profile_images/v1/{username}/remove parameters: [] responses: '201': description: '' tags: - profile_images parameters: - name: username in: path required: true type: string /profile_images/v1/{username}/upload: post: operationId: profile_images_v1_upload_create description: POST /api/profile_images/v1/{username}/upload parameters: [] responses: '201': description: '' consumes: - multipart/form-data - application/x-www-form-urlencoded tags: - profile_images parameters: - name: username in: path required: true type: string /program_enrollments/v1/integration-reset: post: operationId: program_enrollments_v1_integration-reset_create description: Reset enrollment and user data for organization parameters: [] responses: '201': description: '' tags: - program_enrollments parameters: [] /program_enrollments/v1/programs/enrollments/: get: operationId: program_enrollments_v1_programs_enrollments_list description: How to respond to a GET request to this endpoint parameters: [] responses: '200': description: '' tags: - program_enrollments parameters: [] /program_enrollments/v1/programs/readonly_access/: get: operationId: program_enrollments_v1_programs_readonly_access_list description: How to respond to a GET request to this endpoint parameters: [] responses: '200': description: '' tags: - program_enrollments parameters: [] /program_enrollments/v1/programs/{program_uuid}/courses/{course_id}/enrollments/: get: operationId: program_enrollments_v1_programs_courses_enrollments_list description: Get a list of students enrolled in a course within a program. parameters: - name: cursor in: query description: The pagination cursor value. required: false type: string - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - program_enrollments post: operationId: program_enrollments_v1_programs_courses_enrollments_create description: Enroll a list of students in a course in a program parameters: [] responses: '201': description: '' tags: - program_enrollments put: operationId: program_enrollments_v1_programs_courses_enrollments_update description: Create or Update the program course enrollments of a list of learners parameters: [] responses: '200': description: '' tags: - program_enrollments patch: operationId: program_enrollments_v1_programs_courses_enrollments_partial_update description: Modify the program course enrollments of a list of learners parameters: [] responses: '200': description: '' tags: - program_enrollments parameters: - name: course_id in: path required: true type: string - name: program_uuid in: path required: true type: string /program_enrollments/v1/programs/{program_uuid}/courses/{course_id}/grades/: get: operationId: program_enrollments_v1_programs_courses_grades_list description: Defines the GET list endpoint for ProgramCourseGrade objects. parameters: - name: cursor in: query description: The pagination cursor value. required: false type: string - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - program_enrollments parameters: - name: course_id in: path required: true type: string - name: program_uuid in: path required: true type: string /program_enrollments/v1/programs/{program_uuid}/enrollments/: get: operationId: program_enrollments_v1_programs_enrollments_list description: Defines the GET list endpoint for ProgramEnrollment objects. parameters: - name: cursor in: query description: The pagination cursor value. required: false type: string - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - program_enrollments post: operationId: program_enrollments_v1_programs_enrollments_create description: Create program enrollments for a list of learners parameters: [] responses: '201': description: '' tags: - program_enrollments put: operationId: program_enrollments_v1_programs_enrollments_update description: Create/update program enrollments for a list of learners parameters: [] responses: '200': description: '' tags: - program_enrollments patch: operationId: program_enrollments_v1_programs_enrollments_partial_update description: Update program enrollments for a list of learners parameters: [] responses: '200': description: '' tags: - program_enrollments parameters: - name: program_uuid in: path required: true type: string /program_enrollments/v1/programs/{program_uuid}/overview/: get: operationId: program_enrollments_v1_programs_overview_list description: "Defines the GET endpoint for overviews of course enrollments\n\ for a user as part of a program." parameters: [] responses: '200': description: '' tags: - program_enrollments parameters: - name: program_uuid in: path required: true type: string /team/v0/team_membership/: get: operationId: team_v0_team_membership_list description: GET /api/team/v0/team_membership parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - team post: operationId: team_v0_team_membership_create description: POST /api/team/v0/team_membership parameters: [] responses: '201': description: '' tags: - team parameters: [] /team/v0/team_membership/{team_id},{username}: get: operationId: team_v0_team_membership_read description: GET /api/team/v0/team_membership/{team_id},{username} parameters: [] responses: '200': description: '' tags: - team delete: operationId: team_v0_team_membership_delete description: DELETE /api/team/v0/team_membership/{team_id},{username} parameters: [] responses: '204': description: '' tags: - team parameters: - name: team_id in: path required: true type: string - name: username in: path required: true type: string /team/v0/teams/: get: operationId: team_v0_teams_list description: GET /api/team/v0/teams/ parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - team post: operationId: team_v0_teams_create description: POST /api/team/v0/teams/ parameters: [] responses: '201': description: '' tags: - team parameters: [] /team/v0/teams/{team_id}: get: operationId: team_v0_teams_read description: Retrieves the specified resource using the RetrieveModelMixin. parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - team patch: operationId: team_v0_teams_partial_update description: Checks for validation errors, then updates the model using the UpdateModelMixin. parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - team delete: operationId: team_v0_teams_delete description: DELETE /api/team/v0/teams/{team_id} parameters: [] responses: '204': description: '' consumes: - application/merge-patch+json tags: - team parameters: - name: team_id in: path required: true type: string /team/v0/topics/: get: operationId: team_v0_topics_list description: GET /api/team/v0/topics/?course_id={course_id} parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' tags: - team parameters: [] /team/v0/topics/{topic_id},{course_id}: get: operationId: team_v0_topics_read description: GET /api/team/v0/topics/{topic_id},{course_id}/ parameters: [] responses: '200': description: '' tags: - team parameters: - name: course_id in: path required: true type: string - name: topic_id in: path required: true type: string /third_party_auth/v0/providers/user_status: get: operationId: third_party_auth_v0_providers_user_status_list summary: GET /api/third_party_auth/v0/providers/user_status/ description: "**GET Response Values**\n{\n \"accepts_logins\": true,\n \ \ \"name\": \"Google\",\n \"disconnect_url\": \"/auth/disconnect/google-oauth2/?\"\ ,\n \"connect_url\": \"/auth/login/google-oauth2/?auth_entry=account_settings&next=%2Faccount%2Fsettings\"\ ,\n \"connected\": false,\n \"id\": \"oa2-google-oauth2\"\n}" parameters: [] responses: '200': description: '' tags: - third_party_auth parameters: [] /third_party_auth/v0/providers/{provider_id}{var}/users: get: operationId: third_party_auth_v0_providers_users_list summary: Map between the third party auth account IDs (remote_id) and EdX username. description: "This API is intended to be a server-to-server endpoint. An on-campus\ \ middleware or system should consume this.\n\n**Use Case**\n\n Get a paginated\ \ list of mappings between edX users and remote user IDs for all users currently\n\ \ linked to the given backend.\n\n The list can be filtered by edx username\ \ or third party ids. The filter is limited by the max length of URL.\n \ \ It is suggested to query no more than 50 usernames or remote_ids in each\ \ request to stay within above\n limitation\n\n The page size can be\ \ changed by specifying `page_size` parameter in the request.\n\n**Example\ \ Requests**\n\n GET /api/third_party_auth/v0/providers/{provider_id}/users\n\ \n GET /api/third_party_auth/v0/providers/{provider_id}/users?username={username1},{username2}\n\ \n GET /api/third_party_auth/v0/providers/{provider_id}/users?username={username1}&usernames={username2}\n\ \n GET /api/third_party_auth/v0/providers/{provider_id}/users?remote_id={remote_id1},{remote_id2}\n\ \n GET /api/third_party_auth/v0/providers/{provider_id}/users?remote_id={remote_id1}&remote_id={remote_id2}\n\ \n GET /api/third_party_auth/v0/providers/{provider_id}/users?username={username1}&remote_id={remote_id1}\n\ \n**URL Parameters**\n\n * provider_id: The unique identifier of third_party_auth\ \ provider (e.g. \"saml-ubc\", \"oa2-google\", etc.\n This is not the\ \ same thing as the backend_name.). (Optional/future: We may also want to\ \ allow\n this to be an 'external domain' like 'ssl:MIT' so that this\ \ API can also search the legacy\n ExternalAuthMap table used by Standford/MIT)\n\ \n**Query Parameters**\n\n * remote_ids: Optional. List of comma separated\ \ remote (third party) user IDs to filter the result set.\n e.g. ?remote_ids=8721384623\n\ \n * usernames: Optional. List of comma separated edX usernames to filter\ \ the result set.\n e.g. ?usernames=bob123,jane456\n\n * page, page_size:\ \ Optional. Used for paging the result set, especially when getting\n \ \ an unfiltered list.\n\n**Response Values**\n\n If the request for information\ \ about the user is successful, an HTTP 200 \"OK\" response\n is returned.\n\ \n The HTTP 200 response has the following values:\n\n * count: The\ \ number of mappings for the backend.\n\n * next: The URI to the next page\ \ of the mappings.\n\n * previous: The URI to the previous page of the\ \ mappings.\n\n * num_pages: The number of pages listing the mappings.\n\ \n * results: A list of mappings returned. Each collection in the list\n\ \ contains these fields.\n\n * username: The edx username\n\n\ \ * remote_id: The Id from third party auth provider" parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/UserMapping' tags: - third_party_auth parameters: - name: provider_id in: path required: true type: string - name: var in: path required: true type: string /third_party_auth/v0/users/: get: operationId: third_party_auth_v0_users_list summary: Read provider information for a user. description: "Allows reading the list of providers for a specified user.\n\n\ Args:\n request (Request): The HTTP GET request\n\nRequest Parameters:\n\ \ Must provide one of 'email' or 'username'. If both are provided,\n \ \ the username will be ignored.\n\nReturn:\n JSON serialized list of\ \ the providers linked to this user." parameters: [] responses: '200': description: '' tags: - third_party_auth parameters: [] /third_party_auth/v0/users/{username}: get: operationId: third_party_auth_v0_users_read summary: Read provider information for a user. description: "Allows reading the list of providers for a specified user.\n\n\ Args:\n request (Request): The HTTP GET request\n username (str): Fetch\ \ the list of providers linked to this user\n\nReturn:\n JSON serialized\ \ list of the providers linked to this user." parameters: [] responses: '200': description: '' tags: - third_party_auth parameters: - name: username in: path required: true type: string /user/v1/accounts: get: operationId: user_v1_accounts_list description: GET /api/user/v1/accounts?username={username1,username2} parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - user parameters: [] /user/v1/accounts/deactivate_logout/: post: operationId: user_v1_accounts_deactivate_logout_create summary: POST /api/user/v1/accounts/deactivate_logout/ description: "Marks the user as having no password set for deactivation purposes,\n\ and logs the user out." parameters: [] responses: '201': description: '' tags: - user parameters: [] /user/v1/accounts/replace_usernames/: post: operationId: user_v1_accounts_replace_usernames_create description: "POST /api/user/v1/accounts/replace_usernames/\n{\n \"username_mappings\"\ : [\n {\"current_username_1\": \"desired_username_1\"},\n {\"\ current_username_2\": \"desired_username_2\"}\n ]\n}\n\n**POST Parameters**\n\ \nA POST request must include the following parameter.\n\n* username_mappings:\ \ Required. A list of objects that map the current username (key)\n to the\ \ desired username (value)\n\n**POST Response Values**\n\nAs long as data\ \ validation passes, the request will return a 200 with a new mapping\nof\ \ old usernames (key) to new username (value)\n\n{\n \"successful_replacements\"\ : [\n {\"old_username_1\": \"new_username_1\"}\n ],\n \"failed_replacements\"\ : [\n {\"old_username_2\": \"new_username_2\"}\n ]\n}" parameters: [] responses: '201': description: '' tags: - user parameters: [] /user/v1/accounts/retire/: post: operationId: user_v1_accounts_post summary: POST /api/user/v1/accounts/retire/ description: "{\n 'username': 'user_to_retire'\n}\n\nRetires the user with\ \ the given username. This includes\nretiring this username, the associated\ \ email address, and\nany other PII associated with this user." parameters: [] responses: '201': description: '' tags: - user parameters: [] /user/v1/accounts/retire_misc/: post: operationId: user_v1_accounts_post summary: POST /api/user/v1/accounts/retire_misc/ description: "{\n 'username': 'user_to_retire'\n}\n\nRetires the user with\ \ the given username in the LMS." parameters: [] responses: '201': description: '' tags: - user parameters: [] /user/v1/accounts/retirement_cleanup/: post: operationId: user_v1_accounts_cleanup summary: POST /api/user/v1/accounts/retirement_cleanup/ description: "{\n 'usernames': ['user1', 'user2', ...]\n}\n\nDeletes a batch\ \ of retirement requests by username." parameters: [] responses: '201': description: '' tags: - user parameters: [] /user/v1/accounts/retirement_partner_report/: post: operationId: user_v1_accounts_retirement_partner_report_create summary: POST /api/user/v1/accounts/retirement_partner_report/ description: "Returns the list of UserRetirementPartnerReportingStatus users\n\ that are not already being processed and updates their status\nto indicate\ \ they are currently being processed." parameters: [] responses: '201': description: '' tags: - user put: operationId: user_v1_accounts_retirement_partner_report_update summary: PUT /api/user/v1/accounts/retirement_partner_report/ description: "{\n 'username': 'user_to_retire'\n}\n\nCreates a UserRetirementPartnerReportingStatus\ \ object for the given user\nas part of the retirement pipeline." parameters: [] responses: '200': description: '' tags: - user parameters: [] /user/v1/accounts/retirement_partner_report_cleanup/: post: operationId: user_v1_accounts_retirement_partner_cleanup summary: POST /api/user/v1/accounts/retirement_partner_report_cleanup/ description: "[{'original_username': 'user1'}, {'original_username': 'user2'},\ \ ...]\n\nDeletes UserRetirementPartnerReportingStatus objects for a list\ \ of users\nthat have been reported on." parameters: [] responses: '201': description: '' tags: - user parameters: [] /user/v1/accounts/retirement_queue/: get: operationId: user_v1_accounts_retirement_queue summary: "GET /api/user/v1/accounts/retirement_queue/\n{'cool_off_days': 7,\ \ 'states': ['PENDING', 'COMPLETE']}" description: "Returns the list of RetirementStatus users in the given states\ \ that were\ncreated in the retirement queue at least `cool_off_days` ago." parameters: [] responses: '200': description: '' tags: - user parameters: [] /user/v1/accounts/retirements_by_status_and_date/: get: operationId: user_v1_accounts_retirements_by_status_and_date summary: "GET /api/user/v1/accounts/retirements_by_status_and_date/\n?start_date=2018-09-05&end_date=2018-09-07&state=COMPLETE" description: "Returns a list of UserRetirementStatusSerializer serialized\n\ RetirementStatus rows in the given state that were created in the\nretirement\ \ queue between the dates given. Date range is inclusive,\nso to get one day\ \ you would set both dates to that day." parameters: [] responses: '200': description: '' tags: - user parameters: [] /user/v1/accounts/update_retirement_status/: patch: operationId: user_v1_accounts_update_retirement_status_partial_update summary: PATCH /api/user/v1/accounts/update_retirement_status/ description: "{\n 'username': 'user_to_retire',\n 'new_state': 'LOCKING_COMPLETE',\n\ \ 'response': 'User account locked and logged out.'\n}\n\nUpdates the RetirementStatus\ \ row for the given user to the new\nstatus, and append any messages to the\ \ message log.\n\nNote that this implementation DOES NOT use the \"merge patch\"\ \nimplementation seen in AccountViewSet. Slumber, the project\nwe use to power\ \ edx-rest-api-client, does not currently support\nit. The content type for\ \ this request is 'application/json'." parameters: [] responses: '200': description: '' tags: - user parameters: [] /user/v1/accounts/{username}: get: operationId: user_v1_accounts_read description: GET /api/user/v1/accounts/{username}/ parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - user patch: operationId: user_v1_accounts_partial_update summary: PATCH /api/user/v1/accounts/{username}/ description: "Note that this implementation is the \"merge patch\" implementation\ \ proposed in\nhttps://tools.ietf.org/html/rfc7396. The content_type must\ \ be \"application/merge-patch+json\" or\nelse an error response with status\ \ code 415 will be returned." parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - user parameters: - name: username in: path required: true type: string /user/v1/accounts/{username}/deactivate/: post: operationId: user_v1_accounts_deactivate_create summary: POST /api/user/v1/accounts/{username}/deactivate/ description: Marks the user as having no password set for deactivation purposes. parameters: [] responses: '201': description: '' tags: - user parameters: - name: username in: path required: true type: string /user/v1/accounts/{username}/image: post: operationId: user_v1_accounts_image_create description: POST /api/user/v1/accounts/{username}/image parameters: [] responses: '201': description: '' consumes: - multipart/form-data - application/x-www-form-urlencoded tags: - user delete: operationId: user_v1_accounts_image_delete description: DELETE /api/user/v1/accounts/{username}/image parameters: [] responses: '204': description: '' consumes: - multipart/form-data - application/x-www-form-urlencoded tags: - user parameters: - name: username in: path required: true type: string /user/v1/accounts/{username}/retirement_status/: get: operationId: user_v1_accounts_retirement_status_read description: "GET /api/user/v1/accounts/{username}/retirement_status/\nReturns\ \ the RetirementStatus of a given user, or 404 if that row\ndoesn't exist." parameters: [] responses: '200': description: '' tags: - user parameters: - name: username in: path required: true type: string /user/v1/accounts/{username}/verification_status/: get: operationId: user_v1_accounts_verification_status_read description: IDVerificationStatus detail endpoint. parameters: [] responses: '200': description: '' tags: - user parameters: - name: username in: path required: true type: string /user/v1/me: get: operationId: user_v1_get description: GET /api/user/v1/me parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - user parameters: [] /user/v1/preferences/{username}: get: operationId: user_v1_preferences_read description: GET /api/user/v1/preferences/{username}/ parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - user patch: operationId: user_v1_preferences_partial_update description: PATCH /api/user/v1/preferences/{username}/ parameters: [] responses: '200': description: '' consumes: - application/merge-patch+json tags: - user parameters: - name: username in: path required: true type: string /user/v1/preferences/{username}/{preference_key}: get: operationId: user_v1_preferences_read description: GET /api/user/v1/preferences/{username}/{preference_key} parameters: [] responses: '200': description: '' tags: - user put: operationId: user_v1_preferences_update description: PUT /api/user/v1/preferences/{username}/{preference_key} parameters: [] responses: '200': description: '' tags: - user delete: operationId: user_v1_preferences_delete description: DELETE /api/user/v1/preferences/{username}/{preference_key} parameters: [] responses: '204': description: '' tags: - user parameters: - name: preference_key in: path required: true type: string - name: username in: path required: true type: string /user/v1/validation/registration: post: operationId: user_v1_validation_registration_create summary: POST /api/user/v1/validation/registration/ description: "Expects request of the form\n>>> {\n>>> \"name\": \"Dan the\ \ Validator\",\n>>> \"username\": \"mslm\",\n>>> \"email\": \"mslm@gmail.com\"\ ,\n>>> \"confirm_email\": \"mslm@gmail.com\",\n>>> \"password\": \"\ password123\",\n>>> \"country\": \"PK\"\n>>> }\nwhere each key is the\ \ appropriate form field name and the value is\nuser input. One may enter\ \ individual inputs if needed. Some inputs\ncan get extra verification checks\ \ if entered along with others,\nlike when the password may not equal the\ \ username." parameters: [] responses: '201': description: '' tags: - user parameters: [] /val/v0/videos/: get: operationId: val_v0_videos_list description: GETs or POST video objects parameters: - name: page in: query description: A page number within the paginated result set. required: false type: integer - name: page_size in: query description: Number of results to return per page. required: false type: integer responses: '200': description: '' schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri x-nullable: true previous: type: string format: uri x-nullable: true results: type: array items: $ref: '#/definitions/Video' tags: - val post: operationId: val_v0_videos_create description: GETs or POST video objects parameters: - name: data in: body required: true schema: $ref: '#/definitions/Video' responses: '201': description: '' schema: $ref: '#/definitions/Video' tags: - val parameters: [] /val/v0/videos/missing-hls/: post: operationId: val_v0_videos_missing-hls_create summary: 'Retrieve video IDs that are missing HLS profiles. This endpoint supports 2 types of input data:' description: "1. If we want a batch of video ids which are missing HLS profile\ \ irrespective of their courses, the request\n data should be in following\ \ format:\n {\n 'batch_size': 50,\n 'offset':\ \ 0\n }\n And response will be in following format:\n {\n\ \ 'videos': ['video_id1', 'video_id2', 'video_id3', ... , video_id50],\n\ \ 'total': 300,\n 'offset': 50,\n 'batch_size':\ \ 50\n }\n\n2. If we want all the videos which are missing HLS profiles\ \ in a set of specific courses, the request data\n should be in following\ \ format:\n {\n 'courses': [\n 'course_id1',\n\ \ 'course_id2',\n ...\n ]\n \ \ }\n And response will be in following format:\n {\n \ \ 'videos': ['video_id1', 'video_id2', 'video_id3', ...]\n }" parameters: [] responses: '201': description: '' tags: - val put: operationId: val_v0_videos_missing-hls_update summary: Update a single profile for a given video. description: "Example request data:\n {\n 'edx_video_id': '1234'\n\ \ 'profile': 'hls',\n 'encode_data': {\n 'url': 'foo.com/qwe.m3u8'\n\ \ 'file_size': 34\n 'bitrate': 12\n }\n }" parameters: [] responses: '200': description: '' tags: - val parameters: [] /val/v0/videos/status/: patch: operationId: val_v0_videos_status_partial_update description: Update the status of a video. parameters: [] responses: '200': description: '' tags: - val parameters: [] /val/v0/videos/video-images/update/: post: operationId: val_v0_videos_video-images_update_create description: Update a course video image instance with auto generated image names. parameters: [] responses: '201': description: '' tags: - val parameters: [] /val/v0/videos/video-transcripts/create/: post: operationId: val_v0_videos_video-transcripts_create_create summary: Creates a video transcript instance with the given information. description: "Arguments:\n request: A WSGI request." parameters: [] responses: '201': description: '' tags: - val parameters: [] /val/v0/videos/{edx_video_id}: get: operationId: val_v0_videos_read description: Gets a video instance given its edx_video_id parameters: [] responses: '200': description: '' schema: $ref: '#/definitions/Video' tags: - val put: operationId: val_v0_videos_update description: Gets a video instance given its edx_video_id parameters: - name: data in: body required: true schema: $ref: '#/definitions/Video' responses: '200': description: '' schema: $ref: '#/definitions/Video' tags: - val patch: operationId: val_v0_videos_partial_update description: Gets a video instance given its edx_video_id parameters: - name: data in: body required: true schema: $ref: '#/definitions/Video' responses: '200': description: '' schema: $ref: '#/definitions/Video' tags: - val delete: operationId: val_v0_videos_delete description: Gets a video instance given its edx_video_id parameters: [] responses: '204': description: '' tags: - val parameters: - name: edx_video_id in: path required: true type: string pattern: ^[a-zA-Z0-9\-_]*$ /xblock/v2/xblocks/{usage_key_str}/: get: operationId: xblock_v2_xblocks_read description: Get metadata about the specified block. parameters: [] responses: '200': description: '' tags: - xblock parameters: - name: usage_key_str in: path required: true type: string /xblock/v2/xblocks/{usage_key_str}/handler/{user_id}-{secure_token}/{handler_name}/{suffix}: get: operationId: xblock_v2_xblocks_handler_read description: Run an XBlock's handler and return the result parameters: [] responses: '200': description: '' tags: - xblock post: operationId: xblock_v2_xblocks_handler_create description: Run an XBlock's handler and return the result parameters: [] responses: '201': description: '' tags: - xblock put: operationId: xblock_v2_xblocks_handler_update description: Run an XBlock's handler and return the result parameters: [] responses: '200': description: '' tags: - xblock patch: operationId: xblock_v2_xblocks_handler_partial_update description: Run an XBlock's handler and return the result parameters: [] responses: '200': description: '' tags: - xblock delete: operationId: xblock_v2_xblocks_handler_delete description: Run an XBlock's handler and return the result parameters: [] responses: '204': description: '' tags: - xblock parameters: - name: handler_name in: path required: true type: string - name: secure_token in: path required: true type: string - name: suffix in: path required: true type: string - name: usage_key_str in: path required: true type: string - name: user_id in: path required: true type: string /xblock/v2/xblocks/{usage_key_str}/handler_url/{handler_name}/: get: operationId: xblock_v2_xblocks_handler_url_read summary: "Get an absolute URL which can be used (without any authentication)\ \ to call\nthe given XBlock handler." description: The URL will expire but is guaranteed to be valid for a minimum of 2 days. parameters: [] responses: '200': description: '' tags: - xblock parameters: - name: handler_name in: path required: true type: string - name: usage_key_str in: path required: true type: string /xblock/v2/xblocks/{usage_key_str}/view/{view_name}/: get: operationId: xblock_v2_xblocks_view_read description: Get the HTML, JS, and CSS needed to render the given XBlock. parameters: [] responses: '200': description: '' tags: - xblock parameters: - name: usage_key_str in: path required: true type: string - name: view_name in: path required: true type: string definitions: BadgeClass: title: Badge class required: - slug - display_name - description - criteria type: object properties: slug: title: Slug type: string format: slug pattern: ^[-a-zA-Z0-9_]+$ maxLength: 255 minLength: 1 issuing_component: title: Issuing component type: string format: slug pattern: ^[-a-zA-Z0-9_]+$ default: '' maxLength: 50 display_name: title: Display name type: string maxLength: 255 minLength: 1 course_id: title: Course id type: string maxLength: 255 description: title: Description type: string minLength: 1 criteria: title: Criteria type: string minLength: 1 image_url: title: Image url type: string readOnly: true format: uri BadgeAssertion: required: - image_url - assertion_url type: object properties: badge_class: $ref: '#/definitions/BadgeClass' image_url: title: Image url type: string format: uri maxLength: 200 minLength: 1 assertion_url: title: Assertion url type: string format: uri maxLength: 200 minLength: 1 created: title: Created type: string format: date-time readOnly: true CCXCourse: required: - master_course_id - display_name - coach_email - start - due - max_students_allowed type: object properties: ccx_course_id: title: Ccx course id type: string readOnly: true master_course_id: title: Master course id type: string minLength: 1 display_name: title: Display name type: string minLength: 1 coach_email: title: Coach email type: string format: email minLength: 1 start: title: Start type: string due: title: Due type: string max_students_allowed: title: Max students allowed type: integer course_modules: title: Course modules type: string readOnly: true CohortUsersAPI: required: - username type: object properties: username: title: Username description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. type: string pattern: ^[\w.@+-]+$ maxLength: 150 minLength: 1 email: title: Email address type: string format: email maxLength: 254 name: title: Name type: string readOnly: true commerce.CourseMode: required: - name - price type: object properties: name: title: Name type: string minLength: 1 currency: title: Currency type: string maxLength: 8 minLength: 1 price: title: Price type: integer sku: title: SKU description: 'OPTIONAL: This is the SKU (stock keeping unit) of this mode in the external ecommerce service. Leave this blank if the course has not yet been migrated to the ecommerce service.' type: string maxLength: 255 x-nullable: true bulk_sku: title: Bulk SKU description: This is the bulk SKU (stock keeping unit) of this mode in the external ecommerce service. type: string maxLength: 255 x-nullable: true expires: title: Expires type: string format: date-time x-nullable: true commerce.Course: required: - id - modes type: object properties: id: title: Id type: string minLength: 1 name: title: Name type: string readOnly: true minLength: 1 verification_deadline: title: Verification deadline type: string format: date-time x-nullable: true modes: type: array items: $ref: '#/definitions/commerce.CourseMode' CourseGoal: required: - user - course_key type: object properties: user: title: User type: string pattern: ^[\w.@+-]+$ course_key: title: Course key type: string maxLength: 255 minLength: 1 goal_key: title: Goal key type: string enum: - certify - complete - explore - unsure course_modes.CourseMode: required: - course_id - mode_slug - mode_display_name - currency type: object properties: course_id: title: Course id type: string minLength: 1 mode_slug: title: Mode slug type: string minLength: 1 mode_display_name: title: Mode display name type: string minLength: 1 min_price: title: Min price type: integer currency: title: Currency type: string minLength: 1 expiration_datetime: title: Expiration datetime type: string format: date-time expiration_datetime_is_explicit: title: Expiration datetime is explicit type: boolean description: title: Description type: string minLength: 1 sku: title: Sku type: string minLength: 1 bulk_sku: title: Bulk sku type: string minLength: 1 _Media: title: Course image type: object properties: uri: title: Uri type: string readOnly: true Image: title: Image required: - raw - small - large type: object properties: raw: title: Raw type: string format: uri minLength: 1 small: title: Small type: string format: uri minLength: 1 large: title: Large type: string format: uri minLength: 1 _CourseApiMediaCollection: title: Media required: - course_image - course_video - image type: object properties: course_image: $ref: '#/definitions/_Media' course_video: $ref: '#/definitions/_Media' image: $ref: '#/definitions/Image' Course: required: - effort - end - enrollment_start - enrollment_end - id - media - name - number - org - short_description - start - start_display - start_type - pacing - mobile_available - invitation_only type: object properties: blocks_url: title: Blocks url type: string readOnly: true effort: title: Effort type: string minLength: 1 end: title: End type: string format: date-time enrollment_start: title: Enrollment start type: string format: date-time enrollment_end: title: Enrollment end type: string format: date-time id: title: Id type: string minLength: 1 media: $ref: '#/definitions/_CourseApiMediaCollection' name: title: Name type: string minLength: 1 number: title: Number type: string minLength: 1 org: title: Org type: string minLength: 1 short_description: title: Short description type: string minLength: 1 start: title: Start type: string format: date-time start_display: title: Start display type: string minLength: 1 start_type: title: Start type type: string minLength: 1 pacing: title: Pacing type: string minLength: 1 mobile_available: title: Mobile available type: boolean hidden: title: Hidden type: string readOnly: true invitation_only: title: Invitation only type: boolean course_id: title: Course id type: string readOnly: true minLength: 1 CourseDetail: required: - effort - end - enrollment_start - enrollment_end - id - media - name - number - org - short_description - start - start_display - start_type - pacing - mobile_available - invitation_only type: object properties: blocks_url: title: Blocks url type: string readOnly: true effort: title: Effort type: string minLength: 1 end: title: End type: string format: date-time enrollment_start: title: Enrollment start type: string format: date-time enrollment_end: title: Enrollment end type: string format: date-time id: title: Id type: string minLength: 1 media: $ref: '#/definitions/_CourseApiMediaCollection' name: title: Name type: string minLength: 1 number: title: Number type: string minLength: 1 org: title: Org type: string minLength: 1 short_description: title: Short description type: string minLength: 1 start: title: Start type: string format: date-time start_display: title: Start display type: string minLength: 1 start_type: title: Start type type: string minLength: 1 pacing: title: Pacing type: string minLength: 1 mobile_available: title: Mobile available type: boolean hidden: title: Hidden type: string readOnly: true invitation_only: title: Invitation only type: boolean course_id: title: Course id type: string readOnly: true minLength: 1 overview: title: Overview type: string readOnly: true CreditCourse: required: - course_key type: object properties: course_key: title: Course key type: string enabled: title: Enabled type: boolean CreditEligibility: required: - username type: object properties: username: title: Username type: string maxLength: 255 minLength: 1 course_key: title: Course key type: string readOnly: true deadline: title: Deadline description: Deadline for purchasing and requesting credit. type: string format: date-time CreditProvider: required: - id - display_name - url - status_url - description type: object properties: id: title: Id type: string minLength: 1 display_name: title: Display name description: Name of the credit provider displayed to users type: string maxLength: 255 minLength: 1 url: title: Url type: string format: uri minLength: 1 status_url: title: Status url type: string format: uri minLength: 1 description: title: Description type: string minLength: 1 enable_integration: title: Enable integration description: When true, automatically notify the credit provider when a user requests credit. In order for this to work, a shared secret key MUST be configured for the credit provider in secure auth settings. type: boolean fulfillment_instructions: title: Fulfillment instructions description: Plain text or html content for displaying further steps on receipt page *after* paying for the credit to get credit for a credit course against a credit provider. type: string x-nullable: true thumbnail_url: title: Thumbnail url description: Thumbnail image url of the credit provider. type: string format: uri maxLength: 255 minLength: 1 CourseEnrollmentsApiList: required: - course_id type: object properties: created: title: Created type: string format: date-time readOnly: true mode: title: Mode type: string maxLength: 100 minLength: 1 is_active: title: Is active type: boolean user: title: User type: string readOnly: true course_id: title: Course id type: string minLength: 1 CourseEntitlement: required: - user - course_uuid - mode type: object properties: user: title: User type: string pattern: ^[\w.@+-]+$ uuid: title: Uuid type: string format: uuid readOnly: true course_uuid: title: Course uuid description: UUID for the Course, not the Course Run type: string format: uuid enrollment_course_run: title: Enrollment course run type: string readOnly: true minLength: 1 expired_at: title: Expired at description: The date that an entitlement expired, if NULL the entitlement has not expired. type: string format: date-time x-nullable: true created: title: Created type: string format: date-time readOnly: true modified: title: Modified type: string format: date-time readOnly: true mode: title: Mode description: The mode of the Course that will be applied on enroll. type: string maxLength: 100 minLength: 1 refund_locked: title: Refund locked type: boolean order_number: title: Order number type: string maxLength: 128 minLength: 1 x-nullable: true support_details: title: Support details type: string readOnly: true ExperimentData: required: - experiment_id - key - value type: object properties: id: title: ID type: integer readOnly: true experiment_id: title: Experiment ID type: integer maximum: 65535 minimum: 0 user: title: User type: string pattern: ^[\w.@+-]+$ readOnly: true key: title: Key type: string maxLength: 255 minLength: 1 value: title: Value type: string minLength: 1 created: title: Created type: string format: date-time readOnly: true modified: title: Modified type: string format: date-time readOnly: true ExperimentDataCreate: required: - experiment_id - key - value type: object properties: id: title: ID type: integer readOnly: true experiment_id: title: Experiment ID type: integer maximum: 65535 minimum: 0 user: title: User type: string pattern: ^[\w.@+-]+$ key: title: Key type: string maxLength: 255 minLength: 1 value: title: Value type: string minLength: 1 created: title: Created type: string format: date-time readOnly: true modified: title: Modified type: string format: date-time readOnly: true ExperimentKeyValue: required: - experiment_id - key - value type: object properties: id: title: ID type: integer readOnly: true experiment_id: title: Experiment ID type: integer maximum: 65535 minimum: 0 key: title: Key type: string maxLength: 255 minLength: 1 value: title: Value type: string minLength: 1 created: title: Created type: string format: date-time readOnly: true modified: title: Modified type: string format: date-time readOnly: true mobile_api.User: required: - username type: object properties: id: title: ID type: integer readOnly: true username: title: Username description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. type: string pattern: ^[\w.@+-]+$ maxLength: 150 minLength: 1 email: title: Email address type: string format: email maxLength: 254 name: title: Name type: string readOnly: true course_enrollments: title: Course enrollments type: string readOnly: true CourseEnrollment: type: object properties: audit_access_expires: title: Audit access expires type: string readOnly: true created: title: Created type: string format: date-time readOnly: true mode: title: Mode type: string maxLength: 100 minLength: 1 is_active: title: Is active type: boolean course: title: Course type: string readOnly: true certificate: title: Certificate type: string readOnly: true NotifierUser: type: object properties: id: title: ID type: integer readOnly: true email: title: Email address type: string format: email readOnly: true minLength: 1 name: title: Name type: string readOnly: true preferences: title: Preferences type: string readOnly: true course_info: title: Course info type: string readOnly: true Organization: required: - name - short_name type: object properties: id: title: ID type: integer readOnly: true created: title: Created type: string format: date-time readOnly: true modified: title: Modified type: string format: date-time readOnly: true name: title: Name type: string maxLength: 255 minLength: 1 short_name: title: Short Name description: Please do not use spaces or special characters. Only allowed special characters are period (.), hyphen (-) and underscore (_). type: string maxLength: 255 minLength: 1 description: title: Description type: string x-nullable: true logo: title: Logo description: Please add only .PNG files for logo images. This logo will be used on certificates. type: string readOnly: true x-nullable: true format: uri active: title: Active type: boolean UserMapping: type: object properties: username: title: Username type: string readOnly: true remote_id: title: Remote id type: string readOnly: true EncodedVideo: required: - url - file_size - bitrate - profile type: object properties: created: title: Created type: string format: date-time modified: title: Modified type: string format: date-time url: title: Url type: string maxLength: 200 minLength: 1 file_size: title: File size type: integer minimum: 0 bitrate: title: Bitrate type: integer minimum: 0 profile: title: Profile type: string pattern: ^[a-zA-Z0-9\-_]*$ Video: required: - encoded_videos - edx_video_id - duration - status type: object properties: encoded_videos: type: array items: $ref: '#/definitions/EncodedVideo' courses: type: array items: type: string uniqueItems: true url: title: Url type: string readOnly: true created: title: Created type: string format: date-time edx_video_id: title: Edx video id type: string pattern: ^[a-zA-Z0-9\-_]*$ maxLength: 100 minLength: 1 client_video_id: title: Client video id type: string maxLength: 255 duration: title: Duration type: number minimum: 0 status: title: Status type: string maxLength: 255 minLength: 1