---
title: "Create a portal navigation item"
method: POST
path: "/portal-navigation-items"
tags: ["Portal Navigation Items"]
---

# Create a portal navigation item

`POST /portal-navigation-items`

User must have the ENVIRONMENT_DOCUMENTATION[update] permission.

## Request body

- union
  - CreatePortalNavigationPage — Base portal navigation item. Newly created items are unpublished by default.
    - `id` string, uuid — The unique ID of the navigation item
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `order` integer — The order of the navigation item, from 0 to MAX + 1, where MAX is the maximum existing order within the target parent. If not provided or greater than MAX, the new item is appended to the end of the target parent.
    - `parentId` string, uuid — The parent ID of the navigation item, if not provided item is created at root
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `portalPageContentId` string, uuid — The UUID of the portal page content
    - `contentType` 'GRAVITEE_MARKDOWN' | 'OPENAPI' | 'ASYNCAPI' — Type of portal page content
    - `source` PortalNavigationItemSource — External source of the item content.
      - `type` string, required — Fetcher plugin id.
      - `configuration` object, required — Fetcher configuration.
      - `useAutoFetch` boolean — Whether the content is automatically re-fetched on a schedule.
      - `fetchCron` string — Cron expression driving the auto-fetch schedule. Only used when useAutoFetch is true.
      - `lastFetchedAt` string, date-time — Date of the last successful fetch.
      - `lastFetchAttemptAt` string, date-time — Date of the last fetch attempt, successful or not. This is the date the auto-fetch schedule is computed from, and it dates lastFetchError when the last attempt failed.
      - `lastFetchError` string — Error message of the last failed fetch. Absent when the last fetch succeeded.
  - CreatePortalNavigationFolder — Base portal navigation item. Newly created items are unpublished by default.
    - `id` string, uuid — The unique ID of the navigation item
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `order` integer — The order of the navigation item, from 0 to MAX + 1, where MAX is the maximum existing order within the target parent. If not provided or greater than MAX, the new item is appended to the end of the target parent.
    - `parentId` string, uuid — The parent ID of the navigation item, if not provided item is created at root
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `source` PortalNavigationItemSource — External source of the item content.
      - `type` string, required — Fetcher plugin id.
      - `configuration` object, required — Fetcher configuration.
      - `useAutoFetch` boolean — Whether the content is automatically re-fetched on a schedule.
      - `fetchCron` string — Cron expression driving the auto-fetch schedule. Only used when useAutoFetch is true.
      - `lastFetchedAt` string, date-time — Date of the last successful fetch.
      - `lastFetchAttemptAt` string, date-time — Date of the last fetch attempt, successful or not. This is the date the auto-fetch schedule is computed from, and it dates lastFetchError when the last attempt failed.
      - `lastFetchError` string — Error message of the last failed fetch. Absent when the last fetch succeeded.
  - CreatePortalNavigationLink — Base portal navigation item. Newly created items are unpublished by default.
    - `id` string, uuid — The unique ID of the navigation item
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `order` integer — The order of the navigation item, from 0 to MAX + 1, where MAX is the maximum existing order within the target parent. If not provided or greater than MAX, the new item is appended to the end of the target parent.
    - `parentId` string, uuid — The parent ID of the navigation item, if not provided item is created at root
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `url` string, required — The URL for the link
  - CreatePortalNavigationApi — Base portal navigation item. Newly created items are unpublished by default.
    - `id` string, uuid — The unique ID of the navigation item
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `order` integer — The order of the navigation item, from 0 to MAX + 1, where MAX is the maximum existing order within the target parent. If not provided or greater than MAX, the new item is appended to the end of the target parent.
    - `parentId` string, uuid — The parent ID of the navigation item, if not provided item is created at root
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `apiId` string, required — The apiId for the navigationItem
    - `categoryIds` string[] — The IDs of the Portal Next categories this API navigation item is assigned to. Defaults to an empty list if not provided.
  - CreatePortalNavigationApiProduct — Base portal navigation item. Newly created items are unpublished by default.
    - `id` string, uuid — The unique ID of the navigation item
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `order` integer — The order of the navigation item, from 0 to MAX + 1, where MAX is the maximum existing order within the target parent. If not provided or greater than MAX, the new item is appended to the end of the target parent.
    - `parentId` string, uuid — The parent ID of the navigation item, if not provided item is created at root
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `apiProductId` string, uuid, required — API Product referenced by the navigation item

## Response `201`

Portal navigation item created. Newly created items are unpublished by default.

- union
  - PortalNavigationPage — Base portal navigation item
    - `id` string, uuid, required — The unique ID of the navigation item
    - `organizationId` string, required — The organization ID
    - `environmentId` string, required — The environment ID
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `parentId` string, uuid — The parent ID of the navigation item
    - `rootId` string, uuid, required — The root parent ID of the navigation item hierarchy
    - `order` integer, required — The order of the navigation item (zero-based)
    - `published` boolean, required — Whether the navigation item is published or not
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `portalPageContentId` string, uuid, required — The UUID of the portal page content
    - `source` PortalNavigationItemSource — External source of the item content.
      - `type` string, required — Fetcher plugin id.
      - `configuration` object, required — Fetcher configuration.
      - `useAutoFetch` boolean — Whether the content is automatically re-fetched on a schedule.
      - `fetchCron` string — Cron expression driving the auto-fetch schedule. Only used when useAutoFetch is true.
      - `lastFetchedAt` string, date-time — Date of the last successful fetch.
      - `lastFetchAttemptAt` string, date-time — Date of the last fetch attempt, successful or not. This is the date the auto-fetch schedule is computed from, and it dates lastFetchError when the last attempt failed.
      - `lastFetchError` string — Error message of the last failed fetch. Absent when the last fetch succeeded.
  - PortalNavigationFolder — Base portal navigation item
    - `id` string, uuid, required — The unique ID of the navigation item
    - `organizationId` string, required — The organization ID
    - `environmentId` string, required — The environment ID
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `parentId` string, uuid — The parent ID of the navigation item
    - `rootId` string, uuid, required — The root parent ID of the navigation item hierarchy
    - `order` integer, required — The order of the navigation item (zero-based)
    - `published` boolean, required — Whether the navigation item is published or not
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `source` PortalNavigationItemSource — External source of the item content.
      - `type` string, required — Fetcher plugin id.
      - `configuration` object, required — Fetcher configuration.
      - `useAutoFetch` boolean — Whether the content is automatically re-fetched on a schedule.
      - `fetchCron` string — Cron expression driving the auto-fetch schedule. Only used when useAutoFetch is true.
      - `lastFetchedAt` string, date-time — Date of the last successful fetch.
      - `lastFetchAttemptAt` string, date-time — Date of the last fetch attempt, successful or not. This is the date the auto-fetch schedule is computed from, and it dates lastFetchError when the last attempt failed.
      - `lastFetchError` string — Error message of the last failed fetch. Absent when the last fetch succeeded.
  - PortalNavigationLink — Base portal navigation item
    - `id` string, uuid, required — The unique ID of the navigation item
    - `organizationId` string, required — The organization ID
    - `environmentId` string, required — The environment ID
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `parentId` string, uuid — The parent ID of the navigation item
    - `rootId` string, uuid, required — The root parent ID of the navigation item hierarchy
    - `order` integer, required — The order of the navigation item (zero-based)
    - `published` boolean, required — Whether the navigation item is published or not
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `url` string, required — The URL for the link
  - PortalNavigationApi — Base portal navigation item
    - `id` string, uuid, required — The unique ID of the navigation item
    - `organizationId` string, required — The organization ID
    - `environmentId` string, required — The environment ID
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `parentId` string, uuid — The parent ID of the navigation item
    - `rootId` string, uuid, required — The root parent ID of the navigation item hierarchy
    - `order` integer, required — The order of the navigation item (zero-based)
    - `published` boolean, required — Whether the navigation item is published or not
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `apiId` string, required — ApiId referenced from the navItem
    - `categoryIds` string[] — The IDs of the Portal Next categories this API navigation item is assigned to
  - PortalNavigationApiProduct — Base portal navigation item
    - `id` string, uuid, required — The unique ID of the navigation item
    - `organizationId` string, required — The organization ID
    - `environmentId` string, required — The environment ID
    - `title` string, required — The title of the navigation item
    - `type` 'PAGE' | 'FOLDER' | 'LINK' | 'API' | 'API_PRODUCT', required — The type of the navigation item
    - `area` 'HOMEPAGE' | 'TOP_NAVBAR', required — The portal area (used by portal navigation items)
    - `parentId` string, uuid — The parent ID of the navigation item
    - `rootId` string, uuid, required — The root parent ID of the navigation item hierarchy
    - `order` integer, required — The order of the navigation item (zero-based)
    - `published` boolean, required — Whether the navigation item is published or not
    - `visibility` 'PUBLIC' | 'PRIVATE', required — The portal visibility (used by portal navigation items)
    - `apiProductId` string, uuid, required — API Product referenced by the navigation item

## Other responses

- `400` — Missing API Product reference, invalid parent, invalid TOP_NAVBAR root placement, or malformed request
- `404` — Referenced API Product does not exist in the current environment
- `409` — The API Product is already represented in the environment navigation tree
- `default` — Generic error response

---

[API](https://skmtc.net/gravitee-io/apis/gravitee-io-apim-management-api-environments.md) · [All operations](https://skmtc.net/gravitee-io/apis/gravitee-io-apim-management-api-environments/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gravitee-io/gravitee-io-apim-management-api-environments/versions/37e8cbe5f769/schema)
