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

# Settings

> Configure the global settings for your documentation

<Card title="The docs.json file" href="#reference" icon="file-code-2" horizontal>
  Skip to the reference
</Card>

Every documentation site requires a **docs.json** file.

This file contains the global configuration settings and controls everything from styling and navigation to integrations.

## Reference

This section contains the full reference for the docs.json file.

### Customization

<ResponseField name="theme" required>
  One of the following: `mint`, `maple`, `palm`, `willow`, `linden`, `almond`.

  The layout theme of the project. Check out the [Themes](/core-concepts/themes) page for more information.
</ResponseField>

<ResponseField name="name" type="string" required>
  The name of the project, organization, or product
</ResponseField>

<ResponseField name="colors" type="object" required>
  The colors to use in your documentation. At the very least, you must define the primary color. For example:

  ```json theme={null}
  {
    "colors": {
      "primary": "#ff0000"
    }
  }
  ```

  <Expandable title="Colors">
    <ResponseField name="primary" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$" required>
      The primary color of the theme

      Must be a hex code beginning with `#`
    </ResponseField>

    <ResponseField name="light" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
      The light color of the theme. Used for dark mode

      Must be a hex code beginning with `#`
    </ResponseField>

    <ResponseField name="dark" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
      The dark color of the theme. Used for light mode

      Must be a hex code beginning with `#`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="description" type="string">
  Optional description used for SEO and LLM indexing
</ResponseField>

<ResponseField name="logo" type="string or object">
  The logo (for both light and dark mode)

  <Expandable title="Logo">
    <ResponseField name="light" type="string" required>
      Path pointing to the light logo file to use in dark mode, including the file extension. Example: `/logo.png`
    </ResponseField>

    <ResponseField name="dark" type="string" required>
      Path pointing to the dark logo file to use in light mode, including the file extension. Example: `/logo-dark.png`
    </ResponseField>

    <ResponseField name="href" type="string (uri)">
      The URL to redirect to when clicking the logo. If not provided, the logo will link to the homepage. Example: `https://example.com`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="favicon" type="string or object">
  The path to your favicon file in the docs folder, including the file extension. The file will automatically be resized to appropriate favicon sizes.
  Can be a single file or a pair for light and dark mode. Example: `/favicon.png`

  <Expandable title="Favicon">
    <ResponseField name="light" type="string" required>
      Path pointing to the light favicon file to use in dark mode, including the file extension. Example: `/favicon.png`
    </ResponseField>

    <ResponseField name="dark" type="string" required>
      Path pointing to the dark favicon file to use in light mode, including the file extension. Example: `/favicon-dark.png`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="styling" type="object">
  Styling configurations

  <Expandable title="Styling">
    <ResponseField name="eyebrows" type="&#x22;section&#x22; | &#x22;breadcrumbs&#x22;">
      The eyebrows style of the content. Defaults to `section`.
    </ResponseField>

    <ResponseField name="codeblocks" type="&#x22;system&#x22; | &#x22;dark&#x22;">
      The codeblock theme. Defaults to `system`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="icons" type="object">
  Icon library settings

  <Expandable title="Icons">
    <ResponseField name="library" type="&#x22;fontawesome&#x22; | &#x22;lucide&#x22;" required>
      The icon library to be used. Defaults to `fontawesome`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="fonts" type="object">
  <Expandable title="Fonts">
    <ResponseField name="family" type="string" required>
      The font family, such as "Open Sans", "Playfair Display"
    </ResponseField>

    <ResponseField name="weight" type="number">
      The font weight, such as 400, 700. Precise font weights such as 550 are supported for variable fonts.
    </ResponseField>

    <ResponseField name="source" type="string (uri)">
      The font source, such as [https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2](https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2)
    </ResponseField>

    <ResponseField name="format" type="&#x22;woff&#x22; | &#x22;woff2&#x22;">
      The font format, can be one of woff, woff2
    </ResponseField>

    <ResponseField name="heading" type="object">
      <Expandable title="Heading">
        <ResponseField name="family" type="string" required>
          The font family, such as "Open Sans", "Playfair Display"
        </ResponseField>

        <ResponseField name="weight" type="number">
          The font weight, such as 400, 700. Precise font weights such as 550 are supported for variable fonts.
        </ResponseField>

        <ResponseField name="source" type="string (uri)">
          The font source, such as [https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2](https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2)
        </ResponseField>

        <ResponseField name="format" type="&#x22;woff&#x22; | &#x22;woff2&#x22;">
          The font format, can be one of woff, woff2
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="body" type="object">
      <Expandable title="Body">
        <ResponseField name="family" type="string" required>
          The font family, such as "Open Sans", "Playfair Display"
        </ResponseField>

        <ResponseField name="weight" type="number">
          The font weight, such as 400, 700. Precise font weights such as 550 are supported for variable fonts.
        </ResponseField>

        <ResponseField name="source" type="string (uri)">
          The font source, such as [https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2](https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2)
        </ResponseField>

        <ResponseField name="format" type="&#x22;woff&#x22; | &#x22;woff2&#x22;">
          The font format, can be one of woff, woff2
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="appearance" type="object">
  Light / dark mode toggle settings

  <Expandable title="Appearance">
    <ResponseField name="default" type="&#x22;system&#x22; | &#x22;light&#x22; | &#x22;dark&#x22;">
      The default light/dark mode. Defaults to `system`
    </ResponseField>

    <ResponseField name="strict" type="boolean">
      Whether to hide the light / dark mode toggle. Defaults to `true`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="background" type="object">
  Background color and decoration settings

  <Expandable title="Background">
    <ResponseField name="image" type="string or object">
      <Expandable title="Image">
        <ResponseField name="light" type="string" required />

        <ResponseField name="dark" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="decoration" type="&#x22;gradient&#x22; | &#x22;grid&#x22; | &#x22;windows&#x22;">
      The background decoration of the theme
    </ResponseField>

    <ResponseField name="color" type="object">
      The colors of the background

      <Expandable title="Color">
        <ResponseField name="light" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
          The color in hex format to use in light mode

          Must match pattern: ^#(\[a-fA-F0-9]{6}|\[a-fA-F0-9]{3})\$
        </ResponseField>

        <ResponseField name="dark" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
          The color in hex format to use in dark mode

          Must match pattern: ^#(\[a-fA-F0-9]{6}|\[a-fA-F0-9]{3})\$
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Structure

<ResponseField name="navbar" type="object">
  Navbar content and settings

  <Expandable title="Navbar">
    <ResponseField name="links" type="array of object">
      The links in the navbar

      <Expandable title="Links">
        <ResponseField name="label" type="string" required />

        <ResponseField name="href" type="string (uri)" required>
          A valid path or external link
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="primary" type="object">
      <Expandable title="Primary">
        <ResponseField name="type" type="&#x22;button&#x22; | &#x22;github&#x22;" required />

        <ResponseField name="label" type="string" required>
          The label for the primary button. This only applies when `type` is set to `button`.
        </ResponseField>

        <ResponseField name="href" type="string (uri)" required>
          A valid path or external link. If `type` is set to `github`, this will be the URL to the repository.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="navigation" type="object" required>
  The navigation structure of the content

  <Expandable title="Navigation">
    <ResponseField name="global" type="object">
      Add external links that will appear on all sections and pages irregardless of navigation nesting

      <Expandable title="Global">
        <ResponseField name="languages" type="array of object">
          <Expandable title="Languages">
            <ResponseField name="language" type="&#x22;en&#x22; | &#x22;cn&#x22; | &#x22;zh&#x22; | &#x22;zh-Hans&#x22; | &#x22;zh-Hant&#x22; | &#x22;es&#x22; | &#x22;fr&#x22; | &#x22;ja&#x22; | &#x22;jp&#x22; | &#x22;pt&#x22; | &#x22;pt-BR&#x22; | &#x22;de&#x22; | &#x22;ko&#x22; | &#x22;it&#x22; | &#x22;ru&#x22; | &#x22;id&#x22; | &#x22;ar&#x22; | &#x22;tr&#x22;" required>
              The name of the language in the ISO 639-1 format
            </ResponseField>

            <ResponseField name="default" type="boolean">
              Whether this language is the default language
            </ResponseField>

            <ResponseField name="hidden" type="boolean">
              Whether the current option is default hidden
            </ResponseField>

            <ResponseField name="href" type="string (uri)" required>
              A valid path or external link
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="versions" type="array of object">
          <Expandable title="Versions">
            <ResponseField name="version" type="string" required>
              The name of the version

              Minimum length: 1
            </ResponseField>

            <ResponseField name="default" type="boolean">
              Whether this version is the default version
            </ResponseField>

            <ResponseField name="hidden" type="boolean">
              Whether the current option is default hidden
            </ResponseField>

            <ResponseField name="href" type="string (uri)" required>
              An external link
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="tabs" type="array of object">
          <Expandable title="Tabs">
            <ResponseField name="tab" type="string" required>
              The name of the tab

              Minimum length: 1
            </ResponseField>

            <ResponseField name="icon" type="string or object">
              The icon to be displayed in the section
            </ResponseField>

            <ResponseField name="hidden" type="boolean">
              Whether the current option is default hidden
            </ResponseField>

            <ResponseField name="href" type="string (uri)" required>
              An external link
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="anchors" type="array of object">
          <Expandable title="Anchors">
            <ResponseField name="anchor" type="string" required>
              The name of the anchor

              Minimum length: 1
            </ResponseField>

            <ResponseField name="icon" type="string or object">
              The icon to be displayed in the section
            </ResponseField>

            <ResponseField name="color" type="object">
              <Expandable title="Color">
                <ResponseField name="light" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
                  The color in hex format to use in light mode

                  Must match pattern: ^#(\[a-fA-F0-9]{6}|\[a-fA-F0-9]{3})\$
                </ResponseField>

                <ResponseField name="dark" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
                  The color in hex format to use in dark mode

                  Must match pattern: ^#(\[a-fA-F0-9]{6}|\[a-fA-F0-9]{3})\$
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="hidden" type="boolean">
              Whether the current option is default hidden
            </ResponseField>

            <ResponseField name="href" type="string (uri)" required>
              A valid path or external link
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="dropdowns" type="array of object">
          <Expandable title="Dropdowns">
            <ResponseField name="dropdown" type="string" required>
              The name of the dropdown

              Minimum length: 1
            </ResponseField>

            <ResponseField name="icon" type="string or object">
              The icon to be displayed in the section
            </ResponseField>

            <ResponseField name="hidden" type="boolean">
              Whether the current option is default hidden
            </ResponseField>

            <ResponseField name="href" type="string (uri)" required>
              An external link
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="languages" type="array of object">
      Organizing by [languages](/core-concepts/navigation#localization)
    </ResponseField>

    <ResponseField name="versions" type="array of object">
      Organizing by [versions](/core-concepts/navigation#versions)
    </ResponseField>

    <ResponseField name="tabs" type="array of object">
      Organizing by [tabs](/core-concepts/navigation#divisions#tabs)
    </ResponseField>

    <ResponseField name="anchors" type="array of object">
      Organizing by [anchors](/core-concepts/navigation#divisions#anchors)
    </ResponseField>

    <ResponseField name="dropdowns" type="array of object">
      Organizing by [dropdowns](/core-concepts/navigation#divisions#dropdowns)
    </ResponseField>

    <ResponseField name="groups" type="array of object">
      Organizing by [groups](/core-concepts/navigation#pages#pages)
    </ResponseField>

    <ResponseField name="pages" type="array of string or object">
      An array of [page paths or groups](/core-concepts/navigation#pages#groups)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="footer" type="object">
  Footer configurations

  <Expandable title="Footer">
    <ResponseField name="socials" type="object">
      An object in which each key is the name of a social media platform, and each value is the url to your profile. For example:

      ```json theme={null}
      {
        "x": "https://x.com/mintlify"
      }
      ```

      Valid property names: `x`, `website`, `facebook`, `youtube`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news`, `medium`, `telegram`, `twitter`, `x-twitter`, `earth-americas`, `bluesky`, `threads`, `reddit`, `podcast`
    </ResponseField>

    <ResponseField name="links" type="array of object">
      The links to be displayed in the footer

      <Expandable title="Links">
        <ResponseField name="header" type="string">
          The header title of the column

          Minimum length: 1
        </ResponseField>

        <ResponseField name="items" type="array of object" required>
          The links to be displayed in the column

          <Expandable title="Items">
            <ResponseField name="label" type="string" required>
              The label of the link

              Minimum length: 1
            </ResponseField>

            <ResponseField name="href" type="string (uri)" required>
              The url of the link
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="banner" type="object">
  Banner configurations

  <Expandable title="Banner">
    <ResponseField name="content" type="string">
      The content of the banner. This can be a string of text or a markdown string. For example:

      ```json theme={null}
      {
        "content": "🚀 Banner is live! [Learn more](mintlify.com)"
      }
      ```
    </ResponseField>

    <ResponseField name="dismissible" type="boolean">
      Whether the banner is dismissible. Defaults to `false`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="redirects" type="array of object">
  <Expandable title="Redirects">
    <ResponseField name="source" type="string" required />

    <ResponseField name="destination" type="string" required />

    <ResponseField name="permanent" type="boolean" />
  </Expandable>
</ResponseField>

<ResponseField name="contextual" type="object">
  <Expandable title="Contextual">
    <ResponseField name="options" type="array of &#x22;copy&#x22; | &#x22;view&#x22; | &#x22;chatgpt&#x22; | &#x22;claude&#x22;" required>
      The options to be displayed in the contextual menu. The first option is the default option.

      * `copy`: Copy the current page as markdown to the clipboard
      * `view`: View the current page as markdown in a new tab
      * `chatgpt`: Feed the current page to ChatGPT
      * `claude`: Feed the current page to Claude

      <img src="https://mintlify.s3.us-west-1.amazonaws.com/palm/images/page-context-menu.png" alt="Contextual Menu" className="rounded-xl" />

      <Warning>
        The contextual menu is only available on preview & production deployments.
      </Warning>
    </ResponseField>
  </Expandable>
</ResponseField>

### API Configurations

<ResponseField name="api" type="object">
  API reference configuration and playground settings

  <Expandable title="Api">
    <ResponseField name="openapi" type="string or array or object">
      A string or an array of strings of absolute or relative urls pointing to the OpenAPI file(s)

      <Expandable title="Openapi">
        <ResponseField name="source" type="string">
          Minimum length: 1
        </ResponseField>

        <ResponseField name="directory" type="string">
          no starting slash in the directory
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="asyncapi" type="string or array or object">
      A string or an array of strings of absolute or relative urls pointing to the AsyncAPI file(s)

      <Expandable title="Asyncapi">
        <ResponseField name="source" type="string">
          Minimum length: 1
        </ResponseField>

        <ResponseField name="directory" type="string" />
      </Expandable>
    </ResponseField>

    <ResponseField name="playground" type="object">
      Configurations for the API playground

      <Expandable title="Playground">
        <ResponseField name="display" type="&#x22;interactive&#x22; | &#x22;simple&#x22; | &#x22;none&#x22;">
          The display mode of the API playground. Defaults to `interactive`.
        </ResponseField>

        <ResponseField name="proxy" type="boolean">
          Whether to pass API requests through a proxy server. Defaults to `true`.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="examples" type="object">
      Configurations for the autogenerated API examples

      <Expandable title="Examples">
        <ResponseField name="languages" type="array of string">
          Example languages for the autogenerated API snippets
        </ResponseField>

        <ResponseField name="defaults" type="&#x22;required&#x22; | &#x22;all&#x22;">
          Whether to show optional parameters in api examples, defaults to `all`
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="mdx" type="object">
      Configurations for API pages generated from MDX files

      <Expandable title="Mdx">
        <ResponseField name="auth" type="object">
          Authentication configuration for the API

          <Expandable title="Auth">
            <ResponseField name="method" type="&#x22;bearer&#x22; | &#x22;basic&#x22; | &#x22;key&#x22; | &#x22;cobo&#x22;">
              Authentication method for the API
            </ResponseField>

            <ResponseField name="name" type="string">
              Authentication name for the API
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="server" type="string or array" />
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### SEO & Search

<ResponseField name="seo" type="object">
  SEO indexing configurations

  <Expandable title="Seo">
    <ResponseField name="metatags" type="object">
      Meta tags added to every page. Must be a valid key-value pair. Possible options [here](https://www.mintlify.com/docs/settings/seo#supported-meta-tags)
    </ResponseField>

    <ResponseField name="indexing" type="&#x22;navigable&#x22; | &#x22;all&#x22;">
      Specify which pages to be indexed by search engines. Setting `navigable` indexes pages that are set in navigation, `all` indexes all pages. Defaults to `navigable`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="search" type="object">
  Search display settings

  <Expandable title="Search">
    <ResponseField name="prompt" type="string">
      The prompt to be displayed in the search bar placeholder
    </ResponseField>
  </Expandable>
</ResponseField>

### Integrations

<ResponseField name="integrations" type="object">
  Configurations for official integrations

  <Expandable title="Integrations">
    <ResponseField name="amplitude" type="object">
      <Expandable title="Amplitude">
        <ResponseField name="apiKey" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="clearbit" type="object">
      <Expandable title="Clearbit">
        <ResponseField name="publicApiKey" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="fathom" type="object">
      <Expandable title="Fathom">
        <ResponseField name="siteId" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="frontchat" type="object">
      <Expandable title="Frontchat">
        <ResponseField name="snippetId" type="string" required>
          Minimum length: 6
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="ga4" type="object">
      <Expandable title="Ga4">
        <ResponseField name="measurementId" type="string matching ^G" required>
          Must match pattern: ^G
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="gtm" type="object">
      <Expandable title="Gtm">
        <ResponseField name="tagId" type="string matching ^G" required>
          Must match pattern: ^G
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="heap" type="object">
      <Expandable title="Heap">
        <ResponseField name="appId" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="hotjar" type="object">
      <Expandable title="Hotjar">
        <ResponseField name="hjid" type="string" required />

        <ResponseField name="hjsv" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="intercom" type="object">
      <Expandable title="Intercom">
        <ResponseField name="appId" type="string" required>
          Minimum length: 6
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="koala" type="object">
      <Expandable title="Koala">
        <ResponseField name="publicApiKey" type="string" required>
          Minimum length: 2
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="logrocket" type="object">
      <Expandable title="Logrocket">
        <ResponseField name="appId" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="mixpanel" type="object">
      <Expandable title="Mixpanel">
        <ResponseField name="projectToken" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="osano" type="object">
      <Expandable title="Osano">
        <ResponseField name="scriptSource" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="pirsch" type="object">
      <Expandable title="Pirsch">
        <ResponseField name="id" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="posthog" type="object">
      <Expandable title="Posthog">
        <ResponseField name="apiKey" type="string matching ^phc\_" required>
          Must match pattern: ^phc\_
        </ResponseField>

        <ResponseField name="apiHost" type="string (uri)" />
      </Expandable>
    </ResponseField>

    <ResponseField name="plausible" type="object">
      <Expandable title="Plausible">
        <ResponseField name="domain" type="string" required />

        <ResponseField name="server" type="string" />
      </Expandable>
    </ResponseField>

    <ResponseField name="segment" type="object">
      <Expandable title="Segment">
        <ResponseField name="key" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="telemetry" type="object">
      <Expandable title="Telemetry">
        <ResponseField name="enabled" type="boolean" />
      </Expandable>
    </ResponseField>

    <ResponseField name="cookies" type="object">
      <Expandable title="Cookies">
        <ResponseField name="key" type="string" />

        <ResponseField name="value" type="string" />
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Errors

<ResponseField name="errors" type="object">
  <Expandable title="Errors">
    <ResponseField name="404" type="object">
      <Expandable title="404">
        <ResponseField name="redirect" type="boolean">
          Whether to redirect to the home page, if the page is not found
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Validation

It is advised to include the following schema reference at the top of your docs.json file to ensure proper validation while editing:

```json theme={null}
{
  "$schema": "https://mintlify.com/docs.json",
  ...
}
```
