Show examples in:
Javascript HTTP
Endpoint info
Available examples
Content Management API > Menu Item

Reorders a set of menu items

Warning: Experimental API

Please note that this API method is marked as unstable and should be avoided in production environments. Changes may occur at any time without warning, potentially impacting your scripts. We recommend contacting our Support Team to explore alternative approaches that are safer and more reliable!

Returns

Returns a Job ID. You can then poll for the completion of the job that will eventually return an array of resource objects of type menu_item

Examples

The response contains the ID of the asynchronous job that started:

POST https://site-api.datocms.com/menu-items/reorder HTTP/1.1
Authorization: Bearer YOUR-API-TOKEN
Accept: application/json
X-Api-Version: 3
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "uinr2zfqQLeCo_1O0-ao-Q",
"type": "menu_item",
"attributes": {
"position": 1
},
"relationships": {
"parent": {
"data": null
}
}
}
]
}
Terminal window
curl -g 'https://site-api.datocms.com/menu-items/reorder' \
-X POST \
-H "Authorization: Bearer YOUR-API-TOKEN" \
-H "Accept: application/json" \
-H "X-Api-Version: 3" \
-H "Content-Type: application/vnd.api+json" \
--data-binary '{"data":[{"id":"uinr2zfqQLeCo_1O0-ao-Q","type":"menu_item","attributes":{"position":1},"relationships":{"parent":{"data":null}}}]}'
await fetch("https://site-api.datocms.com/menu-items/reorder", {
method: "POST",
headers: {
Authorization: "Bearer YOUR-API-TOKEN",
Accept: "application/json",
"X-Api-Version": "3",
"Content-Type": "application/vnd.api+json",
},
body: JSON.stringify({
data: [
{
id: "uinr2zfqQLeCo_1O0-ao-Q",
type: "menu_item",
attributes: { position: 1 },
relationships: { parent: { data: null } },
},
],
}),
});
HTTP/1.1 202 Accepted
Content-Type: application/json
Cache-Control: cache-control: max-age=0, private, must-revalidate
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 28
{
"data": {
"type": "job",
"id": "4235"
}
}

To get the asynchronous job result, poll the job result endpoint. While the task is in progress, the endpoint returns a 404 status code. When the job completes, the status changes to 200 OK:

GET https://site-api.datocms.com/job-results/:job_result_id HTTP/1.1
Authorization: Bearer YOUR-API-TOKEN
Accept: application/json
X-Api-Version: 3
Terminal window
curl -g 'https://site-api.datocms.com/job-results/:job_result_id' \
\
-H "Authorization: Bearer YOUR-API-TOKEN" \
-H "Accept: application/json" \
-H "X-Api-Version: 3"
await fetch("https://site-api.datocms.com/job-results/:job_result_id", {
headers: {
Authorization: "Bearer YOUR-API-TOKEN",
Accept: "application/json",
"X-Api-Version": "3",
},
});
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: cache-control: max-age=0, private, must-revalidate
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 28
{
"data": {
"type": "job_result",
"id": "34",
"attributes": {
"status": 200,
"payload": {
"data": [
{
"type": "menu_item",
"id": "uinr2zfqQLeCo_1O0-ao-Q",
"relationships": {
"item_type": {
"data": {
"type": "item_type",
"id": "DxMaW10UQiCmZcuuA-IkkA"
}
},
"item_type_filter": {
"data": {
"type": "item_type_filter",
"id": "FF-P5of6Qp-DD2w0xoaa6Q"
}
},
"parent": {
"data": null
},
"children": {
"data": [
{
"type": "menu_item",
"id": "uinr2zfqQLeCo_1O0-ao-Q"
}
]
}
},
"attributes": {
"label": "Posts",
"position": 1,
"external_url": "",
"open_in_new_tab": true
}
}
]
}
}
}
}