ResourcesCourses
Reorder course lessons
Replace lesson positions and section placement with one complete snapshot.
Send every lesson ID exactly once with a section_id from the same course. Entries are grouped in request order within each destination section. Invalid snapshots return 422 without partial writes.
Authorization
bearerAuth storeAuth AuthorizationBearer <token>
Provide your SellApp API key as a bearer token.
In: header
X-STORE<token>
Select the SellApp store for this API request.
In: header
Path Parameters
course*string
The course path parameter.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://sell.app/api/v2/courses/string/lessons/reorder" \ -H "Content-Type: application/json" \ -d '{ "resources": [ { "id": 1, "section_id": 1 } ] }'{
"data": {
"id": 0,
"title": "string",
"slug": "string",
"description": "string",
"visibility": "PUBLIC",
"is_draft": true,
"delivery_text": "string",
"category": "development",
"level": "all_levels",
"language": "string",
"subtitle": "string",
"author": "string",
"subcategory": "string",
"what_you_learn": [
"string"
],
"requirements": [
"string"
],
"certificate_enabled": true,
"access_type": "lifetime",
"access_duration_days": 1,
"enrollment_limit": 1,
"promo_video": {
"mux_playback_id": "string",
"mux_status": "string",
"duration_seconds": 0
},
"sections": [
{
"id": 0,
"title": "string",
"description": "string",
"sort_order": 1,
"lessons": [
{
"id": 0,
"section_id": 0,
"title": "string",
"content": "string",
"type": "lecture",
"is_preview": true,
"is_published": true,
"sort_order": 1,
"video": {
"source": "mux",
"external_url": "http://example.com",
"mux_playback_id": "string",
"mux_status": "string",
"duration_seconds": 0
},
"attachments": [
{
"id": 0,
"title": "string",
"mime_type": "string",
"size_bytes": 0,
"sort_order": 1
}
],
"assignment": {
"estimated_duration_minutes": 1,
"instructions": "string",
"questions": [
{
"id": 0,
"prompt": "string",
"question_type": "text",
"solution": "string",
"sort_order": 1,
"answers": [
{
"id": 0,
"answer": "string",
"is_correct": true,
"sort_order": 1
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
},
"questions": [
{
"id": 0,
"prompt": "string",
"question_type": "text",
"solution": "string",
"sort_order": 1,
"answers": [
{
"id": 0,
"answer": "string",
"is_correct": true,
"sort_order": 1
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}{
"message": "Unauthenticated."
}{
"message": "This action is unauthorized."
}{
"message": "Rule not found."
}{
"message": "The given data was invalid.",
"errors": {
"data": [
"The data field is required."
]
}
}