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

# Global Settings

> Configure your documentation using the `docs.json` file

Every documentation site requires a `docs.json` file that contains the core configuration settings. This file controls everything from styling and navigation to integrations and analytics.

<Note>
  If you're currently using the legacy `mint.json` configuration file, please update the CLI:

  ```sh theme={null}
  npm i -g mintlify@latest
  ```

  And run the new `upgrade` command in your docs repository:

  ```sh theme={null}
  mintlify upgrade
  ```

  This will generate a `docs.json` based off of your `mint.json`. Then, please delete the `mint.json` file from your repository.
</Note>

## Properties

### Customization

<ResponseField name="theme" type="&#x22;mint&#x22; | &#x22;maple&#x22; | &#x22;palm&#x22;" required>
  The layout theme of the project. Examples:
  [Maple](https://maple.mintlify.app/), [Palm](https://palm.mintlify.app/),
</ResponseField>

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

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

### Styling

<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 match pattern: ^#(\[a-fA-F0-9]{6}|\[a-fA-F0-9]{3})\$
    </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 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 dark color of the theme. Used for light mode

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

        <ResponseField name="href" type="string (uri)" required>
          A valid path or external link
        </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;es&#x22; | &#x22;fr&#x22; | &#x22;jp&#x22; | &#x22;pt&#x22; | &#x22;pt-BR&#x22; | &#x22;de&#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>
      </Expandable>
    </ResponseField>

    <ResponseField name="languages" type="array of object">
      Organizing by languages
    </ResponseField>

    <ResponseField name="versions" type="array of object">
      Organizing by versions
    </ResponseField>

    <ResponseField name="tabs" type="array of object">
      Organizing by tabs
    </ResponseField>

    <ResponseField name="anchors" type="array of object">
      Organizing by anchors
    </ResponseField>

    <ResponseField name="groups" type="array of object">
      Organizing by groups
    </ResponseField>

    <ResponseField name="pages" type="array of string or object">
      An array of page paths or 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: bluesky, discord, facebook, github, hacker-news, instagram, linkedin, medium, podcast, reddit, slack, telegram, threads, twitter, website, x, youtube
    </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>

### 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" />
      </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 `false`.
        </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>
      </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://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>
  </Expandable>
</ResponseField>

## Best Practices

When configuring your `docs.json` file, consider these best practices:

1. Keep the configuration organized by grouping related settings together
2. Use meaningful names for groups and pages in your navigation structure
3. Provide complete paths for all assets (logos, favicons, etc.)
4. Test your configuration in both light and dark modes
5. Verify all external links and integrations are correctly configured
6. Use appropriate color contrasts for accessibility
7. Configure SEO settings for better search engine visibility

## Validation

The `docs.json` file is validated against a JSON schema to ensure proper configuration. You can reference the schema by including:

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

## `mint.json` (Legacy)

<Accordion title="Documentation for the legacy `mint.json` config file">
  Every Mintlify site needs a `mint.json` file with the core configuration
  settings. Learn more about the [properties](#properties) or from an
  [example](#example-mint-json)

  ## Properties

  ### Styling

  {" "}

  <ResponseField name="name" type="string" required>
    Name of your company or project. Used for the global title.
  </ResponseField>

  <ResponseField name="logo" type="string or Logo">
    Path to logo image or object with path to "light" and "dark" mode logo images,
    and where the logo links to. SVG format is recommended. It does not pixelate
    and the file size is generally smaller.

    <Expandable title="Logo">
      <ResponseField name="light" type="string">
        Path to the logo in light mode. For example: `/path/to/logo.svg`
      </ResponseField>

      <ResponseField name="dark" type="string">
        Path to the logo in dark mode. For example: `/path/to/logo.svg`
      </ResponseField>

      <ResponseField name="href" type="string" default="/">
        Where clicking on the logo links you to
      </ResponseField>
    </Expandable>
  </ResponseField>

  {" "}

  <ResponseField name="favicon" type="string">
    Path to the favicon image. For example: `/path/to/favicon.svg`
  </ResponseField>

  <ResponseField name="colors" type="Colors">
    Hex color codes for your global theme

    <Expandable title="Colors">
      <ResponseField name="primary" type="string" required>
        The primary color. Used most often for highlighted content, section
        headers, accents, in light mode
      </ResponseField>

      <ResponseField name="light" type="string">
        The primary color for dark mode. Used most often for highlighted content,
        section headers, accents, in dark mode
      </ResponseField>

      <ResponseField name="dark" type="string">
        The primary color for important buttons
      </ResponseField>

      <ResponseField name="background" type="object">
        The color of the background in both light and dark mode

        <Expandable title="Object">
          <ResponseField name="light" type="string" required>
            The hex color code of the background in light mode
          </ResponseField>

          <ResponseField name="dark" type="string" required>
            The hex color code of the background in dark mode
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  {" "}

  <ResponseField name="theme" type={'"venus" | "quill" | "prism"'}>
    A preset theme configuration that changes the look and feel of the project. A
    theme is a set of default styling configurations. Examples:
    [Venus](https://starter-venus.mintlify.app),
    [Quill](https://starter-quill.mintlify.app),
    [Prism](https://starter-prism.mintlify.app)
  </ResponseField>

  {" "}

  <ResponseField name="layout" type={'"topnav" | "sidenav" | "solidSidenav"'} default="topnav">
    The global layout style of the documentation.
  </ResponseField>

  <ResponseField name="background" type="Background">
    Set a decorative background.

    <Expandable title="Background">
      <ResponseField name="style" type={'"gradient" | "grid" | "windows"'}>
        The style of the decorative background.
      </ResponseField>
    </Expandable>
  </ResponseField>

  {" "}

  <ResponseField name="backgroundImage" type="string">
    Set a custom background image to be displayed behind every page.
  </ResponseField>

  <ResponseField
    name="font"
    type={
"FontDetailsType | { headings?: FontDetailsType, body?: FontDetailsType }"
}
  >
    Custom fonts. Apply globally or set different fonts for headings and the body
    text.

    Example:

    ```json theme={null}
    "font": {
      "headings": {
        "family": "Roboto"
      },
      "body": {
        "family": "Oswald"
      }
    }
    ```

    <Expandable title="FontDetailsType">
      <ResponseField name="family" type="string" required>
        The font family name. Custom fonts and all [Google
        Fonts](https://fonts.google.com/) are supported. e.g. "Open Sans",
        "Playfair Display"
      </ResponseField>

      <ResponseField name="weight" type="number">
        The font weight. Precise values such as `560` are also supported for
        variable fonts. Check under the Styles section for your Google Font for
        the available weights.
      </ResponseField>

      <ResponseField name="url" type="string">
        The URL to the font file. Can be used to specify a font that is not from
        Google Fonts.
      </ResponseField>

      <ResponseField name="format" type="'woff' | 'woff2'">
        The font format. Required if using a custom font source (`url`).
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="modeToggle" type="ModeToggle">
    Customize the dark mode toggle.

    <Expandable title="ModeToggle">
      <ResponseField name="default" type={'"light" or "dark"'}>
        Set if you always want to show light or dark mode for new users. When not
        set, we default to the same mode as the user's operating system.
      </ResponseField>

      <ResponseField name="isHidden" type="boolean" default={false}>
        Set to true to hide the dark/light mode toggle. You can combine `isHidden` with `default` to force your docs to only use light or dark mode. For example:

        <CodeGroup>
          ```json Only Dark Mode theme={null}
          "modeToggle": {
            "default": "dark",
            "isHidden": true
          }
          ```

          ```json Only Light Mode theme={null}
          "modeToggle": {
            "default": "light",
            "isHidden": true
          }
          ```
        </CodeGroup>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="sidebar" type="Sidebar">
    Customize the styling of components within the sidebar.

    <Expandable title="Sidebar">
      <ResponseField name="items" type={'"container" | "card" | "border" | "undecorated"'} default="container">
        The styling of the navigation item.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="topbar" type="Topbar">
    Styling configurations for the topbar.

    <Expandable title="Topbar">
      <ResponseField name="style" type={'"default" | "gradient"'} default="default">
        The styling of the navigation item.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="search" type="Search">
    The location options for the search bar.

    <Expandable title="Search">
      <ResponseField name="location" type={'"side" | "top"'}>
        The location of the search bar.
      </ResponseField>
    </Expandable>
  </ResponseField>

  {" "}

  <ResponseField name="rounded" type={'"default" | "sharp"'}>
    The style of the rounded edges.
  </ResponseField>

  <ResponseField name="codeBlock" type="CodeBlock">
    The style of the code block.

    <Expandable title="CodeBlock">
      <ResponseField name="mode" type={'"dark" | "auto"'} default="dark">
        `auto` will automatically switch between light and dark mode based on the
        user's system preferences.
      </ResponseField>
    </Expandable>
  </ResponseField>

  ### Structure

  <ResponseField name="navigation" type="Navigation[]" required>
    An array of groups with all the pages within that group

    <Expandable title="Navigation">
      <ResponseField name="group" type="string">
        The name of the group.
      </ResponseField>

      <ResponseField name="pages" type="string[]">
        The relative paths to the markdown files that will serve as pages. Note: groups are recursive, so to add a sub-folder add another group object in the page array.
      </ResponseField>

      <ResponseField name="icon" type="string">
        The [Font Awesome](https://fontawesome.com/icons) or [Lucide](https://lucide.dev/icons) icon for the group. Note: this only applies to sub-folders.
      </ResponseField>

      <ResponseField name="iconType" type="string">
        The type of icon (only for [Font Awesome](https://fontawesome.com/icons) icons). Must be one of: brands, duotone, light, sharp-solid, solid, thin
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="topbarLinks" type="TopbarLink[]">
    Array of names and urls of links you want to include in the topbar

    <Expandable title="TopbarLink">
      <ResponseField name="name" type="string">
        The name of the button.
      </ResponseField>

      <ResponseField name="url" type="string">
        The url once you click on the button. Example: `https://mintlify.com/contact`
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="topbarCtaButton" type="Call to Action">
    <Expandable title="Topbar Call to Action">
      <ResponseField name="type" type={"link or github"} default="link">
        Link shows a button. GitHub shows the repo information at the url provided
        including the number of GitHub stars.
      </ResponseField>

      <ResponseField name="url" type="string">
        If type is a link: What the button links to. If type is a github: Link to
        the repository to load GitHub information from.
      </ResponseField>

      <ResponseField name="name" type="string">
        Text inside the button. Only required if type is a link.
      </ResponseField>

      <ResponseField name="style" type={'"pill" | "roundedRectangle"'}>
        The style of the button.
      </ResponseField>

      <ResponseField name="arrow" type="boolean">
        Whether to display the arrow
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="versions" type="string[]">
    Array of version names. Only use this if you want to show different versions
    of docs with a dropdown in the navigation bar.

    Versions can be leveraged for localization. You can store translated content
    under a version, and once you specify the `locale` any fixed text in Mintlify,
    such as 'Was this page helpful?', will automatically be translated based on the
    locale. We currently support localization in English, Chinese, Spanish, French,
    Japanese, and Portuguese.

    {" "}

    <Info>
      Localization auto-translates the UI and fixed assets in the docs, such as "Was
      this page helpful?". You must translate the content of the pages yourself.
    </Info>

    For more information, please refer to our
    [versioning & localization documentation](/navigation/versions).

    Example:

    <CodeGroup>
      ```json Default theme={null}
      "versions": ["v1.0", "v1.1"]
      ```

      ```json Localization theme={null}
      "versions": [
        {
          "name": "English",
          "locale": "en",
        },
        {
          "name": "Español",
          "locale": "es"
        }
      ]
      ```
    </CodeGroup>

    <Expandable title="Version">
      <ResponseField name="name" type="string" required>
        The version name.
      </ResponseField>

      <ResponseField name="locale" type="string">
        The locale of the version. Supported locales are `en`, `cn`, `es`, `fr`, `jp`, `pt`, `pt-BR`, `de`.
      </ResponseField>

      <ResponseField name="default" type="true">
        Whether the version is the default version. Handy for when you have a "latest" and "stable" version and you want to default to the stable version.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="anchors" type="Anchor[]">
    An array of the anchors, includes the icon, color, and url.

    {" "}

    {" "}

    <img className="block h-32 dark:hidden" src="https://mintlify-assets.b-cdn.net/anchors-light.png" />

    {" "}

    {" "}

    <img className="hidden h-32 dark:block" src="https://mintlify-assets.b-cdn.net/anchors-dark.png" />

    <Expandable title="Anchor">
      <ResponseField name="name" type="string" required>
        The name of the anchor label.

        Example: `Community`
      </ResponseField>

      <ResponseField name="icon" type="string">
        The [Font Awesome](https://fontawesome.com/icons) or [Lucide](https://lucide.dev/icons) icon used to feature the anchor.

        Example: `comments`
      </ResponseField>

      <ResponseField name="url" type="string">
        The start of the URL that marks what pages go in the anchor. Generally, this is the name of the folder you put your pages in.
      </ResponseField>

      <ResponseField name="color" type="string">
        The hex color of the anchor icon background. Can also be a gradient if you pass an object with the properties `from` and `to` that are each a hex color.
      </ResponseField>

      <ResponseField name="version" type="string">
        Used if you want to hide an anchor until the correct docs version is selected.
      </ResponseField>

      <ResponseField name="isDefaultHidden" type="boolean" default={false}>
        Pass `true` if you want to hide the anchor until you directly link someone to docs inside it.
      </ResponseField>

      <ResponseField name="iconType" default="duotone" type="string">
        One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin"
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="topAnchor" type="Anchor">
    Override the default configurations for the top-most anchor. Note: if you have
    tabs configured, this does not apply.

    <Expandable title="Anchor">
      <ResponseField name="name" default="Documentation" type="string" required>
        The name of the top-most anchor
      </ResponseField>

      <ResponseField name="icon" default="book-open" type="string">
        Font Awesome icon.
      </ResponseField>

      <ResponseField name="iconType" default="duotone" type="string">
        One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin"
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="tabs" type="Tabs[]">
    An array of navigational tabs.

    Example:

    ```json theme={null}
    "tabs": [
      {
        "name": "Writing Content",
        "url": "content"
      },
      {
        "name": "API References",
        "url": "api-playground"
      }
    ]
    ```

    <Expandable title="Tabs">
      <ResponseField name="name" type="string">
        The name of the tab label.
      </ResponseField>

      <ResponseField name="url" type="string">
        The start of the URL that marks what pages go in the tab. Generally, this
        is the name of the folder you put your pages in.
      </ResponseField>

      <ResponseField name="isDefaultHidden" type="boolean" default={false}>
        Pass `true` if you want to hide the tab until you directly link someone to docs inside it.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="footer" type="{ socials?: FooterSocials, links?: FooterLinksColumn[] }">
    An object to configure the footer with socials and links.
    Example:

    ```json theme={null}
    "footer": {
      "socials": { "x": "https://x.com/mintlify", "website": "https://mintlify.com" },
      "links": [
        {
          "title": "Column 1",
          "links": [
            { "label": "Column 1 Link 1", "url": "https://mintlify.com" },
            { "label": "Column 1 Link 2", "url": "https://mintlify.com" }
          ]
        },
        {
          "title": "Column 2",
          "links": [
            { "label": "Column 2 Link 1", "url": "https://mintlify.com" },
            { "label": "Column 2 Link 2", "url": "https://mintlify.com" }
          ]
        }
      ]
    }
    ```

    <Expandable title="FooterSocials">
      <ResponseField name="[key]" type="string">
        One of the following values `website`, `facebook`, `x`, `youtube`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news`, `medium`, `telegram`, `twitter`

        Example: `x`
      </ResponseField>

      <ResponseField name="value" type="string">
        The URL to the social platform.

        Example: `https://x.com/mintlify`
      </ResponseField>
    </Expandable>

    <Expandable title="FooterLinksColumn">
      <ResponseField name="title" type="string">
        Title of the column
      </ResponseField>

      <ResponseField name="links" type="{ label: string, url: string }[]">
        The link items in the column. External urls that starts with `https://` or `http://` will be opened in new tab.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="feedback" type="Feedback">
    Configurations to enable feedback buttons

    <Expandable title="Feedback">
      <ResponseField name="thumbsRating" type="boolean" default={false}>
        Enables a rating system for users to indicate whether the page has been helpful
      </ResponseField>

      <ResponseField name="suggestEdit" type="boolean" default={false}>
        Enables a button to allow users to suggest edits via pull requests for public repositories.

        <Warning>
          If your docs repo is private, `suggestEdit` will not work.
        </Warning>
      </ResponseField>

      <ResponseField name="raiseIssue" type="boolean" default={false}>
        Enables a button to allow users to raise an issue about the documentation
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="search" type="Search">
    Configurations to change the search prompt

    <Expandable title="Search">
      <ResponseField name="prompt" type="string" default="undefined">
        Set the prompt for the search bar. Default is `Search...`
      </ResponseField>
    </Expandable>
  </ResponseField>

  ### API Configurations

  <ResponseField name="api" type="API">
    Configuration for API settings. Learn more about API pages at [API Components](/api-playground).

    <Expandable title="API">
      <ResponseField name="baseUrl" type="string">
        The base url for all API endpoints. If `baseUrl` is an array, it will enable for multiple base url
        options that the user can toggle.
      </ResponseField>

      <ResponseField name="auth" type="Auth">
        <Expandable title="Auth">
          <ResponseField name="method" type="&#x22;bearer&#x22; | &#x22;basic&#x22; | &#x22;key&#x22;">
            The authentication strategy used for all API endpoints.
          </ResponseField>

          <ResponseField name="name" type="string">
            The name of the authentication parameter used in the API playground.

            If method is `basic`, the format should be `[usernameName]:[passwordName]`
          </ResponseField>

          <ResponseField name="inputPrefix" type="string">
            The default value that's designed to be a prefix for the authentication input field.

            E.g. If an `inputPrefix` of `AuthKey` would inherit the default input result of the authentication field as `AuthKey`.
          </ResponseField>
        </Expandable>
      </ResponseField>

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

        <Expandable title="Playground">
          <ResponseField name="mode" default="show" type="&#x22;show&#x22; | &#x22;simple&#x22; | &#x22;hide&#x22;">
            Whether the playground is showing, hidden, or only displaying the endpoint with no added user interactivity `simple`

            Learn more at the [playground guides](/api-playground)
          </ResponseField>

          <ResponseField name="disableProxy" type="boolean" default={false}>
            By default, API playground requests are proxied by Mintlify. This setting can be used to disable this behavior.

            Required for select request types, such as file uploads.
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="request" type="object">
        Configurations for API requests

        <Expandable title="Request">
          <ResponseField name="example" type="object">
            Configurations for the auto-generated API request examples

            <Expandable>
              <ResponseField name="languages" type="string[]">
                An array of strings that determine the order of the languages of the auto-generated request examples. You can either define custom languages utilizing [x-codeSamples](/api-playground/openapi/advanced-features#x-codesamples) or use our default languages which include `bash`, `python`, `javascript`, `php`, `go`, `java`
              </ResponseField>
            </Expandable>
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="paramFields" type="ApiParamFields">
        Configurations for the param fields in the API Playground

        <Expandable title="ApiParamFields">
          <ResponseField name="expanded" default="none" type="&#x22;all&#x22; | &#x22;topLevel&#x22; | &#x22;topLevelOneOfs&#x22; | &#x22;none&#x22;">
            The default expanded state of expandable options in the API playground.

            `"all"` - every expandable component is expanded

            `"topLevel"` - every top-level expandable component is expanded

            `"topLevelOneOfs"` - every top-level `oneOf` type is expanded

            `"none"` - every expandable component is closed (default behavior)
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="openapi" type="string | string[]">
    A string or an array of strings of URL(s) or relative path(s) pointing to your
    OpenAPI file.

    Examples:

    <CodeGroup>
      ```json Absolute theme={null}
      "openapi": "https://example.com/openapi.json"
      ```

      ```json Relative theme={null}
      "openapi": "/openapi.json"
      ```

      ```json Multiple theme={null}
      "openapi": ["https://example.com/openapi1.json", "/openapi2.json", "/openapi3.json"]
      ```
    </CodeGroup>
  </ResponseField>

  ### Integrations

  <ResponseField name="integrations" type="Integrations">
    Configurations to add third-party integrations (excluding analytics integrations)

    <Expandable title="Integrations">
      <ResponseField name="intercom" type="string">
        Enables Intercom widget on docs site. The value should be your Intercom App ID.
      </ResponseField>

      <ResponseField name="frontchat" type="string">
        Enables Frontchat widget on docs site. The value should be your Frontchat App ID.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="analytics" type="Analytics">
    Configurations to add third-party analytics integrations. See full list of
    supported analytics [here](/integrations/analytics/overview).
  </ResponseField>

  ### Redirects

  <ResponseField name="redirects" type="Redirect[]">
    An array of paths you want to configure to permanently redirect to another path

    Example:

    ```json theme={null}
    "redirects": [
      {
        "source": "/source/path",
        "destination": "/destination/path"
      }
    ]
    ```

    <Expandable title="Redirect">
      <ResponseField name="source" type="string">
        The path that you want to redirect from.

        Example: `/source`
      </ResponseField>

      <ResponseField name="destination" type="string">
        The path that you want to redirect to.

        Example: `/destination`
      </ResponseField>
    </Expandable>
  </ResponseField>

  ### Search Engine Optimization

  <ResponseField name="seo" type="SEO">
    Settings for Search Engine Optimization.

    Example:

    ```json theme={null}
    "seo": {
      "indexHiddenPages": true
    }
    ```

    <Expandable title="SEO">
      <ResponseField name="indexHiddenPages" type="boolean" default="false">
        Enables indexing pages not included in `navigation`.
      </ResponseField>
    </Expandable>
  </ResponseField>

  ## Example `mint.json`

  Click on the following dropdown to view a sample configuration file

  <Accordion title="View Example Configuration">
    ```json theme={null}
    {
      "name": "Mintlify",
      "logo": {
        "light": "/logo/light.svg",
        "dark": "/logo/dark.svg"
      },
      "favicon": "/favicon.svg",
      "colors": {
        "primary": "#16A34A",
        "light": "#4ADE80",
        "dark": "#166534"
      },
      "topbarLinks": [
        {
          "name": "Contact Us",
          "url": "mailto:support@mintlify.com"
        }
      ],
      "topbarCtaButton": {
        "name": "Get Started",
        "url": "https://mintlify.com/start"
      },
      "anchors": [
        {
          "name": "API Components",
          "icon": "rectangle-terminal",
          "color": "#f59f0b",
          "url": "api-components"
        },
        {
          "name": "Community",
          "icon": "comments",
          "color": "#2564eb",
          "url": "https://mintlify.com/community"
        }
      ],
      "navigation": [
        {
          "group": "Getting Started",
          "pages": ["introduction", "quickstart"]
        },
        {
          "group": "API Components",
          "pages": ["api-playground/overview", "api-playground/configuration"]
        },
        {
          "group": "Settings",
          "pages": ["settings/global", "settings/page"]
        },
        {
          "group": "Analytics",
          "pages": ["analytics/posthog"]
        }
      ],
      "footerSocials": {
        "github": "https://github.com/mintlify",
        "slack": "https://mintlify.com/community",
        "x": "https://x.com/mintlify"
      },
      "integrations": {
        "intercom": "APP_ID",
        "frontchat": "CHAT_ID"
      }
    }
    ```
  </Accordion>
</Accordion>
