createMenu
Requires permission settings:appearance:create.
Creates a menu. A parent, when given, must exist and must be a main menu. Needs the appearance settings create permission.
Errors: a failed call returns a GraphQL errors entry, not a field on the result, and data may be null or partial. Read the entry's extensions.code and message; every shape and code is in the Error reference.
Example:
- GraphQL
- cURL
mutation CreateMenu($input: CreateMenuInput!) {
createMenu(input: $input) {
id
name
createdAt
deletedAt
deletedBy
description
children {
id
name
createdAt
deletedAt
deletedBy
description
}
}
}
curl -X POST "https://<api-host>/graphql" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
--data @- <<'EOF'
{
"query": "mutation CreateMenu($input: CreateMenuInput!) {\n createMenu(input: $input) {\n id\n name\n createdAt\n deletedAt\n deletedBy\n description\n children {\n id\n name\n createdAt\n deletedAt\n deletedBy\n description\n }\n }\n}",
"variables": {
"input": {
"isActive": true,
"isMainMenu": true,
"label": "string",
"menuType": "MAIN",
"name": "string",
"order": 0
}
}
}
EOF
Variables:
{
"input": {
"isActive": true,
"isMainMenu": true,
"label": "string",
"menuType": "MAIN",
"name": "string",
"order": 0
}
}
Response:
{
"data": {
"createMenu": {
"id": "id",
"name": "string",
"createdAt": "2025-01-15T00:00:00Z",
"deletedAt": "2025-01-15T00:00:00Z",
"deletedBy": "string",
"description": "string",
"children": [
{
"id": "id",
"name": "string",
"createdAt": "2025-01-15T00:00:00Z",
"deletedAt": "2025-01-15T00:00:00Z",
"deletedBy": "string",
"description": "string"
}
]
}
}
}
createMenu(
input: CreateMenuInput!
): Menu!
Arguments
createMenu.input ● CreateMenuInput! non-null input
The menu's name, label, path, order, type and optional parent, icon, description and required permissions.
Type
Menu object
A menu item.