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.1Authorization: Bearer YOUR-API-TOKENAccept: application/jsonX-Api-Version: 3Content-Type: application/vnd.api+json
{ "data": [ { "id": "uinr2zfqQLeCo_1O0-ao-Q", "type": "menu_item", "attributes": { "position": 1 }, "relationships": { "parent": { "data": null } } } ]}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 AcceptedContent-Type: application/jsonCache-Control: cache-control: max-age=0, private, must-revalidateX-RateLimit-Limit: 30X-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.1Authorization: Bearer YOUR-API-TOKENAccept: application/jsonX-Api-Version: 3curl -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 OKContent-Type: application/jsonCache-Control: cache-control: max-age=0, private, must-revalidateX-RateLimit-Limit: 30X-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 } } ] } } }}