---
title: "Create portal navigation items in bulk"
method: POST
path: "/portal-navigation-items/_bulk"
tags: ["Portal Navigation Items"]
---

# Create portal navigation items in bulk

`POST /portal-navigation-items/_bulk`

User must have the ENVIRONMENT_DOCUMENTATION[update] permission.

## Request body

- CreatePortalNavigationItems — Portal navigation items to create in bulk
  - `items` CreatePortalNavigationItem[], required
    - 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 `200`

A list of portal navigation items

- object
  - `items` PortalNavigationItem[] — List of portal navigation items
    - 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` — Invalid navigation item payload or hierarchy
- `404` — A referenced API Product or parent does not exist in the current environment
- `409` — An 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/revisions/37e8cbe5f769/schema)
