Navigation REST API

The navigation REST API enables you to retrieve information about the dotCMS file and folder tree through REST API calls.

Usage#


The Navigation API has a single method, /api/v1/nav, which retrieves a list of navigation elements (folders, files, pages, and menu links) that have the Show on Menu property set to true.

Parameters#

The API accepts the following parameters:

ParameterDefault ValueDescriptionExamples
path(None)The root path to begin traversing the folder tree.
  • / (e.g. /api/v1/nav/) starts from the root of the site
  • /about-us starts from the "About Us" folder
  • etc.
depth1The depth of the folder tree to return.
  • 1 returns only the element specified in the path.
  • 2 returns the element specified in the path, and if that element is a folder, returns all direct children of that folder.
  • 3 returns all children and grandchildren of the element specified in the path.
  • etc.
languageId1The language ID of content to return.
Note: The Default Language Fall-Through Configuration will be respected for returned content.

Examples#


Return a Site or Folder (depth=1)#

The following curl command returns information on the /about-us folder (without any of its children) on the dotCMS Demo Site:

curl --location --request GET "https://demo.dotcms.com/api/v1/nav/about-us"

The command returns the following JSON results (formatted here for readability):

{ "errors":[], "entity": { "code":null, "folder":"1049e7fe-1553-4731-bdf9-ba069f1dc08b", "host":"48190c8c-42c4-46af-8d1a-0cd5db894797", "languageId":1, "href":"/about-us", "title":"About Us", "type":"folder", "hash":1547125655, "target":"_self", "order":1 }, "messages":[], "i18nMessagesMap":{}, "permissions":[] }

Return the Direct Children of a Site or Folder (depth=2)#

The following curl command returns the /about-us folder on the dotCMS Demo Site, and all folders and files within it in the language with Language ID 2 (Spanish):

curl --location --request GET "https://demo.dotcms.com/api/v1/nav/about-us?depth=2&languageId=2"

The command returns the following JSON results (formatted here for readability):

{ "errors":[], "entity": { "code":null, "folder":"1049e7fe-1553-4731-bdf9-ba069f1dc08b", "children": [ { "code":null, "folder":null, "host":"48190c8c-42c4-46af-8d1a-0cd5db894797", "languageId":1, "href":"/about-us/index", "title":"About Us", "type":"htmlpage", "hash":467696219, "target":"_self", "order":0 }, { "code":null, "folder":"d19a2815-1037-4a17-bce5-7a36eeaa8d54", "host":"48190c8c-42c4-46af-8d1a-0cd5db894797", "languageId":1, "href":"/about-us/locations", "title":"Locations", "type":"folder", "hash":1931963491, "target":"_self", "order":2 }, { "code":null, "folder":"ce49e1e7-4d0f-4af2-a87c-5e9c5562278c", "host":"48190c8c-42c4-46af-8d1a-0cd5db894797", "languageId":1, "href":"/about-us/our-team", "title":"Our Team", "type":"folder", "hash":2075344630, "target":"_self", "order":3 } ], "host":"48190c8c-42c4-46af-8d1a-0cd5db894797", "languageId":1, "href":"/about-us", "title":"About Us", "type":"folder", "hash":1704969069, "target":"_self", "order":1 }, "messages":[], "i18nMessagesMap":{}, "permissions":[] }