> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.neetokb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update navigation links

> This API replaces the header links, the footer links or both. Each set you send becomes exactly the list you send, in that order. The position of a link is its index. A set you do not send is not changed. The change is all-or-nothing. The `put` method works too. For CLI sessions, this needs the Manage themes permission.


> [!NOTE]
>
> Replace `{your-subdomain}` with your workspace's subdomain. \
> Learn how to find your subdomain in [Workspace subdomain](https://apidocs.neetokb.com/api/workspace-subdomain.md).


## OpenAPI

````yaml bundled/navigation-links.yaml PATCH /navigation_links
openapi: 3.0.3
info:
  title: NeetoKB Navigation Links API
  description: >-
    APIs to read and replace the header and footer links of the knowledge base
    site.
  version: 1.0.0
servers:
  - description: NeetoKB API
    url: https://{your-subdomain}.neetokb.com/api/external/v2
    variables:
      your-subdomain:
        default: spinkart
        description: >-
          Replace **spinkart** with your [workspace's
          subdomain](/api/workspace-subdomain).
security: []
paths:
  /navigation_links:
    patch:
      tags:
        - Navigation links
      summary: Update navigation links
      description: >
        This API replaces the header links, the footer links or both. Each set
        you send becomes exactly the list you send, in that order. The position
        of a link is its index. A set you do not send is not changed. The change
        is all-or-nothing. The `put` method works too. For CLI sessions, this
        needs the Manage themes permission.
      parameters:
        - $ref: '#/components/parameters/api_key_header'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update_navigation_links_request'
      responses:
        '200':
          description: OK - Request succeeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/navigation_links'
        '401':
          $ref: '#/components/responses/unauthorized_response'
        '403':
          $ref: '#/components/responses/forbidden_response'
        '422':
          description: >-
            Unprocessable Entity - Neither set was sent, a label is too long or
            repeated, or a link or kind is missing
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Provide header_links, footer_links or both
components:
  parameters:
    api_key_header:
      in: header
      name: X-Api-Key
      description: >-
        Use the X-Api-Key header to provide your workspace API key. Refer to
        [Authentication](/api/authentication) for more information.
      required: true
      schema:
        type: string
        default: your-api-key
  schemas:
    update_navigation_links_request:
      type: object
      properties:
        header_links:
          type: array
          items:
            $ref: '#/components/schemas/navigation_link_input'
          description: >-
            The full list of header links, in order. Existing links that are not
            in the list are deleted. An empty array clears the set. Leave it out
            to keep the set as it is.
        footer_links:
          type: array
          items:
            $ref: '#/components/schemas/navigation_link_input'
          description: The full list of footer links, in order. Works like `header_links`.
    navigation_links:
      type: object
      properties:
        header_links:
          type: array
          items:
            $ref: '#/components/schemas/navigation_link'
        footer_links:
          type: array
          items:
            $ref: '#/components/schemas/navigation_link'
    navigation_link_input:
      type: object
      required:
        - label
        - link
        - kind
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Identifier of an existing link to keep. Without it, an existing link
            with the same label is matched.
        label:
          type: string
          maxLength: 25
          description: Unique within the set.
        link:
          type: string
        kind:
          type: string
          enum:
            - external_link
            - action
    navigation_link:
      type: object
      properties:
        id:
          type: string
          format: uuid
        label:
          type: string
          example: Docs
        link:
          type: string
          example: https://example.com/docs
        kind:
          type: string
          enum:
            - external_link
            - action
        sequence:
          type: integer
  responses:
    unauthorized_response:
      description: Unauthorized - API key is missing or invalid
    forbidden_response:
      description: >-
        Forbidden - The CLI session does not have the permission this change
        needs

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.