Reorder content blocks in a course
Reorders content blocks within a course. Scoped to your integration’s institution via Basic Auth credentials.
PUT
/courses/{id}/content-blocks/reorderPath parameters
idstringrequiredCourse ID (layer ID of the course)
Request body
requiredapplication/jsonpositionsobject[]requiredmin items 1
Show propertiesHide properties
Array of
objectidstringrequiredContent block ID
positionintegerrequiredNew position for the block
min 0
resolveConflictsbooleandefault: false
Responses
200Content blocks reordered
dataReorderContentBlocksResultrequiredShow propertiesHide properties
updatedobject[]requiredShow propertiesHide properties
Array of
objectidstringrequiredpositionintegerrequiredpreviousPositionintegerrequiredconflictsobject[]requiredShow propertiesHide properties
Array of
objectblockIdstringrequiredblockNamestringrequiredconditionIdstringrequiredrequiredBlockIdstringrequiredrequiredBlockNamestringrequiredtypestringrequiredAllowed:
DEPENDENCY_VIOLATIONmessagestringrequiredresolvedbooleanconflictsResolvedbooleanrequireddeletedConditionIdsstring[]Present when conflicts were auto-resolved via resolveConflicts.
metaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredAllowed:
v4400Bad Request
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring401Unauthorized
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring403Forbidden
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring404Not Found
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring429Too Many Requests
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring500Internal Server Error
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestringRequest
curl -X PUT "https://fuxam.app/api/v4/courses/string/content-blocks/reorder" \
-H "Content-Type: application/json" \
-d '{
"positions": [
{
"id": "string",
"position": 0
}
],
"resolveConflicts": false
}'const response = await fetch("https://fuxam.app/api/v4/courses/string/content-blocks/reorder", {
method: "PUT",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"positions": [
{
"id": "string",
"position": 0
}
],
"resolveConflicts": false
})
});import requests
response = requests.put(
"https://fuxam.app/api/v4/courses/string/content-blocks/reorder",
headers={
"Content-Type": "application/json"
},
json={
"positions": [
{
"id": "string",
"position": 0
}
],
"resolveConflicts": False
},
)Response
{
"data": {
"updated": [
{
"id": "string",
"position": 0,
"previousPosition": 0
}
],
"conflicts": [
{
"blockId": "string",
"blockName": "string",
"conditionId": "string",
"requiredBlockId": "string",
"requiredBlockName": "string",
"type": "DEPENDENCY_VIOLATION",
"message": "string",
"resolved": true
}
],
"conflictsResolved": true,
"deletedConditionIds": [
"string"
]
},
"meta": {
"requestId": "req_1234567890_abc",
"timestamp": "2026-06-02T07:00:00.000Z",
"version": "v4"
}
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}