Skip to Content
API ReferenceNavigation Items API

Navigation Items API

Endpoints for managing navigation panel (menu) items in the system.

Get list of navigation items

Get the complete list of navigation items.

Request

GET /api/navbar-items

Headers

NameTypeDescription
X-API-KeystringRequired. API key

Query parameters

NameTypeDescription
pageintegerOptional. Page number (default: 1)
per_pageintegerOptional. Number of records per page (default: 20)

Response

{ "navbar_items": [ { "id": 1, "title": "Home", "url": "/", "new_tab": false, "icon": "home", "position": 0, "visible_only_for_guests": false, "visible_only_for_logged_in": false, "visibility": "all", "parent_id": null }, { "id": 2, "title": "About", "url": "/about", "new_tab": false, "icon": "info", "position": 1, "visible_only_for_guests": false, "visible_only_for_logged_in": false, "visibility": "all", "parent_id": null } ] }

Response fields

FieldTypeDescription
navbar_itemsarrayArray of navigation items
idintegerNavigation item ID
titlestringItem title
urlstringItem URL (can be null)
new_tabbooleanOpen in new tab
iconstringItem icon (can be null)
positionintegerItem position in navigation
visible_only_for_guestsbooleanVisibility only for guests
visible_only_for_logged_inbooleanVisibility only for authenticated users
visibilitystringVisibility (all, desktop, mobile)
parent_idintegerParent item ID (can be null)

Response codes

CodeDescription
200Successful request
401Invalid or missing API key
403Insufficient permissions for the request

Get navigation item data

Get detailed information about a specific navigation item.

Request

GET /api/navbar-items/{id}

Path parameters

NameTypeDescription
idintegerNavigation item ID

Headers

NameTypeDescription
X-API-KeystringRequired. API key

Response

{ "navbar_item": { "id": 1, "title": "Home", "url": "/", "new_tab": false, "icon": "home", "position": 0, "visible_only_for_guests": false, "visible_only_for_logged_in": false, "visibility": "all", "parent_id": null, "roles": [ { "id": 1, "name": "admin" }, { "id": 2, "name": "user" } ], "children": [ { "id": 3, "title": "Subpage", "url": "/subpage", "new_tab": false, "icon": null, "position": 0, "visible_only_for_guests": false, "visible_only_for_logged_in": false, "visibility": "all", "parent_id": 1 } ] } }

Response fields

FieldTypeDescription
navbar_itemobjectNavigation item object
idintegerNavigation item ID
titlestringItem title
urlstringItem URL (can be null)
new_tabbooleanOpen in new tab
iconstringItem icon (can be null)
positionintegerItem position in navigation
visible_only_for_guestsbooleanVisibility only for guests
visible_only_for_logged_inbooleanVisibility only for authenticated users
visibilitystringVisibility (all, desktop, mobile)
parent_idintegerParent item ID (can be null)
rolesarrayArray of roles that have access to this item
childrenarrayArray of child navigation items

Response codes

CodeDescription
200Successful request
401Invalid or missing API key
403Insufficient permissions for the request
404Navigation item not found

Create navigation item

Create a new navigation item in the system.

Request

POST /api/navbar-items

Headers

NameTypeDescription
X-API-KeystringRequired. API key
Content-TypestringRequired. application/json

Request body

{ "title": "New Item", "url": "/new-page", "new_tab": false, "icon": "star", "position": 5, "visible_only_for_guests": false, "visible_only_for_logged_in": false, "visibility": "all", "parent_id": null, "roles": [1, 2] }

Request body parameters

NameTypeDescription
titlestringRequired. Item title
urlstringOptional. Item URL
new_tabbooleanOptional. Open in new tab (default: false)
iconstringOptional. Item icon
positionintegerOptional. Item position in navigation (default: 0)
visible_only_for_guestsbooleanOptional. Visibility only for guests (default: false)
visible_only_for_logged_inbooleanOptional. Visibility only for authenticated users (default: false)
visibilitystringOptional. Visibility (all, desktop, mobile) (default: all)
parent_idintegerOptional. Parent item ID
rolesarrayOptional. Array of role IDs that have access

Response

{ "message": "Navigation item created successfully", "navbar_item": { "id": 3, "title": "New Item", "url": "/new-page", "new_tab": false, "icon": "star", "position": 5, "visible_only_for_guests": false, "visible_only_for_logged_in": false, "visibility": "all", "parent_id": null } }

Response codes

CodeDescription
201Navigation item created successfully
401Invalid or missing API key
403Insufficient permissions for the request
422Invalid request parameters

Update navigation item

Update an existing navigation item.

Request

PUT /api/navbar-items/{id}

Path parameters

NameTypeDescription
idintegerNavigation item ID

Headers

NameTypeDescription
X-API-KeystringRequired. API key
Content-TypestringRequired. application/json

Request body

{ "title": "Updated Item", "url": "/updated-page", "new_tab": true, "icon": "edit", "position": 3, "visible_only_for_guests": false, "visible_only_for_logged_in": true, "visibility": "desktop", "parent_id": 1, "roles": [1] }

Request body parameters

NameTypeDescription
titlestringOptional. Item title
urlstringOptional. Item URL
new_tabbooleanOptional. Open in new tab
iconstringOptional. Item icon
positionintegerOptional. Item position in navigation
visible_only_for_guestsbooleanOptional. Visibility only for guests
visible_only_for_logged_inbooleanOptional. Visibility only for authenticated users
visibilitystringOptional. Visibility (all, desktop, mobile)
parent_idintegerOptional. Parent item ID
rolesarrayOptional. Array of role IDs that have access

Response

{ "message": "Navigation item updated successfully", "navbar_item": { "id": 3, "title": "Updated Item", "url": "/updated-page", "new_tab": true, "icon": "edit", "position": 3, "visible_only_for_guests": false, "visible_only_for_logged_in": true, "visibility": "desktop", "parent_id": 1 } }

Response codes

CodeDescription
200Navigation item updated successfully
401Invalid or missing API key
403Insufficient permissions for the request
404Navigation item not found
422Invalid request parameters

Delete navigation item

Delete a navigation item from the system.

Request

DELETE /api/navbar-items/{id}

Path parameters

NameTypeDescription
idintegerNavigation item ID

Headers

NameTypeDescription
X-API-KeystringRequired. API key

Response

{ "message": "Navigation item deleted successfully" }

Response codes

CodeDescription
200Navigation item deleted successfully
401Invalid or missing API key
403Insufficient permissions for the request
404Navigation item not found
422Cannot delete, there are child items

Reorder navigation items

Change the order of navigation items.

Request

POST /api/navbar-items/reorder

Headers

NameTypeDescription
X-API-KeystringRequired. API key
Content-TypestringRequired. application/json

Request body

{ "items": [ { "id": 1, "position": 0 }, { "id": 2, "position": 1 }, { "id": 3, "position": 2 } ] }

Request body parameters

NameTypeDescription
itemsarrayRequired. Array of items with new positions
idintegerNavigation item ID
positionintegerNew position for the item

Response

{ "message": "Navigation items reordered successfully" }

Response codes

CodeDescription
200Navigation items reordered successfully
401Invalid or missing API key
403Insufficient permissions for the request
422Invalid request parameters

Get navigation item roles

Get roles assigned to a specific navigation item.

Request

GET /api/navbar-items/{id}/roles

Path parameters

NameTypeDescription
idintegerNavigation item ID

Headers

NameTypeDescription
X-API-KeystringRequired. API key

Response

{ "roles": [ { "id": 1, "name": "admin", "color": "#ff0000" }, { "id": 2, "name": "user", "color": "#00ff00" } ] }

Response fields

FieldTypeDescription
rolesarrayArray of roles
idintegerRole ID
namestringRole name
colorstringRole color

Response codes

CodeDescription
200Successful request
401Invalid or missing API key
403Insufficient permissions for the request
404Navigation item not found

Assign roles to navigation item

Assign roles to a navigation item.

Request

POST /api/navbar-items/{id}/roles

Path parameters

NameTypeDescription
idintegerNavigation item ID

Headers

NameTypeDescription
X-API-KeystringRequired. API key
Content-TypestringRequired. application/json

Request body

{ "roles": [1, 2, 3] }

Request body parameters

NameTypeDescription
rolesarrayRequired. Array of role IDs

Response

{ "message": "Roles assigned to navigation item successfully" }

Response codes

CodeDescription
200Roles assigned successfully
401Invalid or missing API key
403Insufficient permissions for the request
404Navigation item not found
422Invalid request parameters

Remove roles from navigation item

Remove roles from a navigation item.

Request

DELETE /api/navbar-items/{id}/roles

Path parameters

NameTypeDescription
idintegerNavigation item ID

Headers

NameTypeDescription
X-API-KeystringRequired. API key
Content-TypestringRequired. application/json

Request body

{ "roles": [1, 2] }

Request body parameters

NameTypeDescription
rolesarrayRequired. Array of role IDs

Response

{ "message": "Roles removed from navigation item successfully" }

Response codes

CodeDescription
200Roles removed successfully
401Invalid or missing API key
403Insufficient permissions for the request
404Navigation item not found
422Invalid request parameters