Files
mintlify__docs/settings.mdx
Ethan Palm 91b02b70cf Add aspen to themes (#867)
* add aspen to themes

* added images

* added images to the repo

---------

Co-authored-by: Ruhan <ruponnada@gmail.com>
2025-07-11 14:32:19 -07:00

1459 lines
47 KiB
Plaintext

---
title: "Global settings"
description: "Configure site-wide settings with the `docs.json` file"
icon: "settings-2"
keywords: ["docs.json", "settings", "customization", "configuration"]
---
The `docs.json` file lets you turn a collection of Markdown files into a navigable, customized documentation site. This required configuration file controls styling, navigation, integrations, and more.
Settings in `docs.json` apply globally to all pages.
## Setting up your `docs.json`
To get started, you only need to specify `theme`, `name`, `colors.primary`, and `navigation`. Other fields are optional and you can add them as your documentation needs grow.
For the best editing experience, include the schema reference at the top of your `docs.json` file. This enables autocomplete, validation, and helpful tooltips in most code editors:
```json
{
"$schema": "https://mintlify.com/docs.json",
"theme": "mint",
"name": "Your Docs",
"colors": {
"primary": "#ff0000"
},
"navigation": {
// Your navigation structure
}
// The rest of your configuration
}
```
## Reference
This section contains the full reference for the `docs.json` file.
### Customization
<ResponseField name="theme" required>
The layout theme of your site.
One of the following: `mint`, `maple`, `palm`, `willow`, `linden`, `almond`, `aspen`.
See [Themes](themes) for more information.
</ResponseField>
<ResponseField name="name" type="string" required>
The name of your project, organization, or product.
</ResponseField>
<ResponseField name="colors" type="object" required>
The colors to use in your documentation. A primary color is required. For example:
```json
{
"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 your 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})$">
Light color variant of your theme.
Must be a hex code beginning with `#`.
</ResponseField>
<ResponseField name="dark" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
Dark color variant of your theme.
Must be a hex code beginning with `#`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="description" type="string">
Description of your site for SEO and AI indexing.
</ResponseField>
<ResponseField name="logo" type="string or object">
Your logo for both light and dark mode.
<Expandable title="Logo">
<ResponseField name="light" type="string" required>
Path pointing to your logo file for light mode. Include the file extension. Example: `/logo.png`
</ResponseField>
<ResponseField name="dark" type="string" required>
Path pointing to your logo file for dark mode. Include 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 your homepage. Example: `https://mintlify.com`
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="favicon" type="string or object">
Path to your favicon file, including the file extension. Automatically resized to appropriate favicon sizes.
Can be a single file or separate files for light and dark mode. Example: `/favicon.png`
<Expandable title="Favicon">
<ResponseField name="light" type="string" required>
Path to your favicon file for light mode. Include the file extension. Example: `/favicon.png`
</ResponseField>
<ResponseField name="dark" type="string" required>
Path to your favicon file for dark mode. Include the file extension. Example: `/favicon-dark.png`
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="thumbnails" type="object">
Thumbnail customization for social media and page previews.
<Expandable title="Thumbnails">
<ResponseField name="appearance" type="&quot;light&quot; | &quot;dark&quot;">
The visual theme of your thumbnails. If not specified, thumbnails use your site's color scheme defined by the `colors` field.
</ResponseField>
<ResponseField name="background" type="string">
Background image for your thumbnails. Can be a relative path or absolute URL.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="styling" type="object">
Visual styling configurations.
<Expandable title="Styling">
<ResponseField name="eyebrows" type="&quot;section&quot; | &quot;breadcrumbs&quot;">
The style of the page eyebrow. Choose `section` to show the section name or `breadcrumbs` to show the full navigation path. Defaults to `section`.
</ResponseField>
<ResponseField name="codeblocks" type="&quot;system&quot; | &quot;dark&quot;">
The theme of the code blocks. Choose `system` to match the site theme or `dark` for always dark code blocks. Defaults to `system`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="icons" type="object">
Icon library settings.
<Expandable title="Icons">
<ResponseField name="library" type="&quot;fontawesome&quot; | &quot;lucide&quot;" required>
Icon library to use throughout your documentation. Defaults to `fontawesome`.
<Note>
You can specify a URL for any individual icon, regardless of the library setting.
</Note>
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="fonts" type="object">
Font configuration for your documentation. The default font is [Inter](https://fonts.google.com/specimen/Inter).
<Expandable title="Fonts">
<ResponseField name="family" type="string" required>
Font family, such as "Open Sans", "Playfair Display."
</ResponseField>
<ResponseField name="weight" type="number">
Font weight, such as 400 or 700. Variable fonts support precise weights such as 550.
</ResponseField>
<ResponseField name="source" type="string (uri)">
URL to your font source, such as https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2. [Google Fonts](https://fonts.google.com) are loaded automatically when you specify a Google Font `family` name, so no source URL is needed.
</ResponseField>
<ResponseField name="format" type="&quot;woff&quot; | &quot;woff2&quot;">
Font file format.
</ResponseField>
<ResponseField name="heading" type="object">
Override font settings specifically for headings.
<Expandable title="Heading">
<ResponseField name="family" type="string" required>
Font family, such as "Open Sans", "Playfair Display."
</ResponseField>
<ResponseField name="weight" type="number">
Font weight, such as 400, 700. Variable fonts support precise weights such as 550.
</ResponseField>
<ResponseField name="source" type="string (uri)">
URL to your font source, such as https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2. [Google Fonts](https://fonts.google.com) are loaded automatically when you specify a Google Font `family` name, so no source URL is needed.
</ResponseField>
<ResponseField name="format" type="&quot;woff&quot; | &quot;woff2&quot;">
Font file format.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="body" type="object">
Override font settings specifically for body text.
<Expandable title="Body">
<ResponseField name="family" type="string" required>
Font family, such as "Open Sans", "Playfair Display."
</ResponseField>
<ResponseField name="weight" type="number">
Font weight, such as 400, 700. Variable fonts support precise weights such as 550.
</ResponseField>
<ResponseField name="source" type="string (uri)">
URL to your font source, such as https://mintlify-assets.b-cdn.net/fonts/Hubot-Sans.woff2. [Google Fonts](https://fonts.google.com) are loaded automatically when you specify a Google Font `family` name, so no source URL is needed.
</ResponseField>
<ResponseField name="format" type="&quot;woff&quot; | &quot;woff2&quot;">
Font file format.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="appearance" type="object">
Light/dark mode toggle settings.
<Expandable title="Appearance">
<ResponseField name="default" type="&quot;system&quot; | &quot;light&quot; | &quot;dark&quot;">
Default theme mode. Choose `system` to match users' OS settings, or `light` or `dark` to force a specific 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">
Background image for your site. Can be a single file or separate files for light and dark mode.
<Expandable title="Image">
<ResponseField name="light" type="string" required>
Path to your background image for light mode. Include the file extension. Example: `/background.png`.
</ResponseField>
<ResponseField name="dark" type="string" required>
Path to your background image for dark mode. Include the file extension. Example: `/background-dark.png`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="decoration" type="&quot;gradient&quot; | &quot;grid&quot; | &quot;windows&quot;">
Background decoration for your theme.
</ResponseField>
<ResponseField name="color" type="object">
Custom background colors for light and dark modes.
<Expandable title="Color">
<ResponseField name="light" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
Background color for light 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})$">
Background color for dark mode.
Must be a hex code beginning with `#`.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
### Structure
<ResponseField name="navbar" type="object">
Navigation bar items.
<Expandable title="Navbar">
<ResponseField name="links" type="array of object">
Links to display in the navbar
<Expandable title="Links">
<ResponseField name="label" type="string" required>
Text for the link.
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
URL or path for the link destination.
</ResponseField>
<ResponseField name="icon" type="string | object">
Icon for the link. Can be a URL (relative or external), Font Awesome icon, or Lucide icon.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="primary" type="object">
Primary button in the navbar.
<Expandable title="Primary">
<ResponseField name="type" type="&quot;button&quot; | &quot;github&quot;" required>
Button style. Choose `button` for a standard button with a label or `github` for a link to a GitHub repository with icon.
</ResponseField>
<ResponseField name="label" type="string" required>
Button text. Only applies when `type` is `button`.
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
Button destination. Must be a valid path or external URL. If `type` is `github`, must be a GitHub repository URL.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="navigation" type="object" required>
The navigation structure of your content.
<Expandable title="Navigation">
<ResponseField name="global" type="object">
Global navigation elements that appear accross all pages and sections.
<Expandable title="Global">
<ResponseField name="languages" type="array of object">
Language switcher configuration for multi-language sites.
<Expandable title="Languages">
<ResponseField name="language" type="&quot;en&quot; | &quot;cn&quot; | &quot;zh&quot; | &quot;zh-Hans&quot; | &quot;zh-Hant&quot; | &quot;es&quot; | &quot;fr&quot; | &quot;ja&quot; | &quot;jp&quot; | &quot;pt&quot; | &quot;pt-BR&quot; | &quot;de&quot; | &quot;ko&quot; | &quot;it&quot; | &quot;ru&quot; | &quot;id&quot; | &quot;ar&quot; | &quot;tr&quot;" required>
Language code in ISO 639-1 format
</ResponseField>
<ResponseField name="default" type="boolean">
Whether this is the default language.
</ResponseField>
<ResponseField name="hidden" type="boolean">
Whether to hide this language option by default.
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
A valid path or external link to this language version of your documentation.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="versions" type="array of object">
Version switcher configuration for multi-version sites.
<Expandable title="Versions">
<ResponseField name="version" type="string" required>
Display name of the version.
Minimum length: 1
</ResponseField>
<ResponseField name="default" type="boolean">
Whether this is the default version.
</ResponseField>
<ResponseField name="hidden" type="boolean">
Whether to hide this version option by default.
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
URL or path to this version of your documentation.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="tabs" type="array of object">
Top-level navigation tabs for organizing major sections.
<Expandable title="Tabs">
<ResponseField name="tab" type="string" required>
Display name of the tab.
Minimum length: 1
</ResponseField>
<ResponseField name="icon" type="string or object">
Icon for the tab. Can be a URL (relative or external), Font Awesome icon, or Lucide icon.
</ResponseField>
<ResponseField name="hidden" type="boolean">
Whether to hide this tab by default.
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
URL or path for the tab destination.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="anchors" type="array of object">
Anchored links that appear prominently in the sidebar navigation.
<Expandable title="Anchors">
<ResponseField name="anchor" type="string" required>
Display name of the anchor.
Minimum length: 1
</ResponseField>
<ResponseField name="icon" type="string or object">
Icon for the anchor. Can be a URL (relative or external), Font Awesome icon, or Lucide icon.
</ResponseField>
<ResponseField name="color" type="object">
Custom colors for the anchor.
<Expandable title="Color">
<ResponseField name="light" type="string matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$">
Anchor color for light 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})$">
Anchor color for dark mode.
Must be a hex code beginning with `#`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="hidden" type="boolean">
Whether to hide this anchor by default.
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
URL or path for the anchor destination.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="dropdowns" type="array of object">
Dropdown menus for organizing related content.
<Expandable title="Dropdowns">
<ResponseField name="dropdown" type="string" required>
Display name of the dropdown.
Minimum length: 1
</ResponseField>
<ResponseField name="icon" type="string or object">
Icon for the dropdown. Can be a URL (relative or external), Font Awesome icon, or Lucide icon.
</ResponseField>
<ResponseField name="hidden" type="boolean">
Whether to hide this dropdown by default.
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
URL or path for the dropdown destination.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="languages" type="array of object">
Language switcher for [multi-language](navigation#languages) sites.
</ResponseField>
<ResponseField name="versions" type="array of object">
Version switcher for sites with multiple [versions](navigation#versions).
</ResponseField>
<ResponseField name="tabs" type="array of object">
Top-level navigation [tabs](navigation#tabs).
</ResponseField>
<ResponseField name="anchors" type="array of object">
Sidebar [anchors](navigation#anchors).
</ResponseField>
<ResponseField name="dropdowns" type="array of object">
[Dropdowns](navigation#dropdowns) for grouping related content.
</ResponseField>
<ResponseField name="groups" type="array of object">
[Groups](navigation#groups) for organizing content into sections.
</ResponseField>
<ResponseField name="pages" type="array of string or object">
Individual [pages](navigation#pages) that make up your documentation.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="footer" type="object">
Footer content and social media links.
<Expandable title="Footer">
<ResponseField name="socials" type="object">
Social media profiles to display in the footer. Each key is a platform name and each value is your profile URL. For example:
```json
{
"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">
Links to display in the footer.
<Expandable title="Links">
<ResponseField name="header" type="string">
Header title for the column.
Minimum length: 1
</ResponseField>
<ResponseField name="items" type="array of object" required>
Links to display in the column.
<Expandable title="Items">
<ResponseField name="label" type="string" required>
Link text.
Minimum length: 1
</ResponseField>
<ResponseField name="href" type="string (uri)" required>
Link destination URL.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="banner" type="object">
Site-wide banner displayed at the top of pages.
<Expandable title="Banner">
<ResponseField name="content" type="string">
The content of the banner. Supports plain text and Markdown formatting. For example:
```json
{
"content": "🚀 Banner is live! [Learn more](mintlify.com)"
}
```
</ResponseField>
<ResponseField name="dismissible" type="boolean">
Whether users can dismiss the banner. Defaults to `false`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="redirects" type="array of object">
Redirects for moved, renamed, or deleted pages.
<Expandable title="Redirects">
<ResponseField name="source" type="string" required>
Source path to redirect from. Example: `/old-page`
</ResponseField>
<ResponseField name="destination" type="string" required>
Destination path to redirect to. Example: `/new-page`
</ResponseField>
<ResponseField name="permanent" type="boolean">
Whether to use a permanent redirect (301). Defaults to `true`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="contextual" type="object">
Contextual menu for AI-optimized content and integrations.
<Expandable title="Contextual">
<ResponseField name="options" type="array of &quot;copy&quot; | &quot;view&quot; | &quot;chatgpt&quot; | &quot;claude&quot;" required>
Actions available in the contextual menu. The first option appears as the default.
- `copy`: Copy the current page as Markdown to the clipboard.
- `view`: View the current page as Markdown in a new tab.
- `chatgpt`: Send the current page content to ChatGPT.
- `claude`: Send the current page content to Claude.
<img src="/images/page-context-menu.png" alt="Contextual Menu" className="rounded-xl" />
<Note>
The contextual menu is only available on preview and production deployments.
</Note>
</ResponseField>
</Expandable>
</ResponseField>
### API Configurations
<ResponseField name="api" type="object">
API documentation and interactive playground settings.
<Expandable title="Api">
<ResponseField name="openapi" type="string or array or object">
OpenAPI specification files for generating API documentation. Can be a single URL/path or an array of URLs/paths.
<Expandable title="Openapi">
<ResponseField name="source" type="string">
URL or path to your OpenAPI specification file.
Minimum length: 1
</ResponseField>
<ResponseField name="directory" type="string">
Directory to search for OpenAPI files.
Do not include a leading slash.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="asyncapi" type="string or array or object">
AsyncAPI specification files for generating API documentation. Can be a single URL/path or an array of URLs/paths.
<Expandable title="Asyncapi">
<ResponseField name="source" type="string">
URL or path to your AsyncAPI specification file.
Minimum length: 1
</ResponseField>
<ResponseField name="directory" type="string">
Directory to search for AsyncAPI files.
Do not include a leading slash.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="params" type="object">
Display settings for API parameters.
<Expandable title="Params">
<ResponseField name="expanded" type="&quot;all&quot; | &quot;closed&quot;">
Whether to expand all parameters by default. Defaults to `closed`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="playground" type="object">
API playground settings.
<Expandable title="Playground">
<ResponseField name="display" type="&quot;interactive&quot; | &quot;simple&quot; | &quot;none&quot;">
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="&quot;required&quot; | &quot;all&quot;">
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 MDX-based API requests.
<Expandable title="Auth">
<ResponseField name="method" type="&quot;bearer&quot; | &quot;basic&quot; | &quot;key&quot; | &quot;cobo&quot;">
Authentication method for API requests.
</ResponseField>
<ResponseField name="name" type="string">
Authentication name for API requests.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="server" type="string or array">
Server configuration for API requests.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
### SEO and 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. See [common meta tags reference](/settings/seo#common-meta-tags-reference) for options.
</ResponseField>
<ResponseField name="indexing" type="&quot;navigable&quot; | &quot;all&quot;">
Specify which pages search engines should index. Choose `navigable` to index only pages that are in your `docs.json` navigation or choose `all` to index every page. Defaults to `navigable`.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="search" type="object">
Search display settings.
<Expandable title="Search">
<ResponseField name="prompt" type="string">
Placeholder text to display in the search bar.
</ResponseField>
</Expandable>
</ResponseField>
### Integrations
<ResponseField name="integrations" type="object">
Third-party integrations.
<Expandable title="Integrations">
<ResponseField name="amplitude" type="object">
Amplitude analytics integration.
<Expandable title="Amplitude">
<ResponseField name="apiKey" type="string" required>
Your Amplitude API key.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="clearbit" type="object">
Clearbit data enrichment integration.
<Expandable title="Clearbit">
<ResponseField name="publicApiKey" type="string" required>
Your Clearbit API key.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="fathom" type="object">
Fathom analytics integration.
<Expandable title="Fathom">
<ResponseField name="siteId" type="string" required>
Your Fathom site ID.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="frontchat" type="object">
Front chat integration.
<Expandable title="Frontchat">
<ResponseField name="snippetId" type="string" required>
Your Front chat snippet ID.
Minimum length: 6
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="ga4" type="object">
Google Analytics 4 integration.
<Expandable title="Ga4">
<ResponseField name="measurementId" type="string matching ^G" required>
Your Google Analytics 4 measurement ID.
Must match pattern: ^G
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="gtm" type="object">
Google Tag Manager integration.
<Expandable title="Gtm">
<ResponseField name="tagId" type="string matching ^G" required>
Your Google Tag Manager tag ID.
Must match pattern: ^G
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="heap" type="object">
Heap analytics integration.
<Expandable title="Heap">
<ResponseField name="appId" type="string" required>
Your Heap app ID.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="hotjar" type="object">
Hotjar integration.
<Expandable title="Hotjar">
<ResponseField name="hjid" type="string" required>
Your Hotjar ID.
</ResponseField>
<ResponseField name="hjsv" type="string" required>
Your Hotjar script version.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="intercom" type="object">
Intercom integration.
<Expandable title="Intercom">
<ResponseField name="appId" type="string" required>
Your Intercom app ID.
Minimum length: 6
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="koala" type="object">
Koala integration.
<Expandable title="Koala">
<ResponseField name="publicApiKey" type="string" required>
Your Koala public API key.
Minimum length: 2
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="logrocket" type="object">
LogRocket integration.
<Expandable title="Logrocket">
<ResponseField name="appId" type="string" required>
Your LogRocket app ID.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="mixpanel" type="object">
Mixpanel integration.
<Expandable title="Mixpanel">
<ResponseField name="projectToken" type="string" required>
Your Mixpanel project token.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="osano" type="object">
Osano integration.
<Expandable title="Osano">
<ResponseField name="scriptSource" type="string" required>
Your Osano script source.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="pirsch" type="object">
Pirsch analytics integration.
<Expandable title="Pirsch">
<ResponseField name="id" type="string" required>
Your Pirsch ID.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="posthog" type="object">
PostHog integration.
<Expandable title="Posthog">
<ResponseField name="apiKey" type="string matching ^phc\_" required>
Your PostHog API key.
Must match pattern: ^phc\_
</ResponseField>
<ResponseField name="apiHost" type="string (uri)">
Your PostHog API host.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="plausible" type="object">
Plausible analytics integration.
<Expandable title="Plausible">
<ResponseField name="domain" type="string" required>
Your Plausible domain.
</ResponseField>
<ResponseField name="server" type="string">
Your Plausible server.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="segment" type="object">
Segment integration.
<Expandable title="Segment">
<ResponseField name="key" type="string" required>
Your Segment key.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="telemetry" type="object">
Telemetry settings.
<Expandable title="Telemetry">
<ResponseField name="enabled" type="boolean">
Whether to enable telemetry.
</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="cookies" type="object">
Cookie settings.
<Expandable title="Cookies">
<ResponseField name="key" type="string">
Key for cookies.
</ResponseField>
<ResponseField name="value" type="string">
Value for cookies.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
### Errors
<ResponseField name="errors" type="object">
Error handling settings.
<Expandable title="Errors">
<ResponseField name="404" type="object">
404 "Page not found" error handling.
<Expandable title="404">
<ResponseField name="redirect" type="boolean">
Whether to automatically redirect to the home page when a page is not
found.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
## Examples
<Tabs>
<Tab title="Basic example">
```json title="docs.json" wrap lines
{
"$schema": "https://mintlify.com/docs.json",
"theme": "maple",
"name": "Example Co.",
"description": "Example Co. is a company that provides example content and placeholder text.",
"colors": {
"primary": "#3B82F6",
"light": "#F8FAFC",
"dark": "#0F172A"
},
"navigation": {
"dropdowns": [
{
"dropdown": "Documentation",
"icon": "book",
"description": "How to use the Example Co. product",
"groups": [
{
"group": "Getting started",
"pages": [
"index",
"quickstart"
]
},
{
"group": "Customization",
"pages": [
"settings",
"users",
"features"
]
},
{
"group": "Billing",
"pages": [
"billing/overview",
"billing/payments",
"billing/subscriptions"
]
}
]
},
{
"dropdown": "Changelog",
"icon": "history",
"description": "Updates and changes",
"pages": [
"changelog"
]
}
]
},
"logo": {
"light": "/logo-light.svg",
"dark": "/logo-dark.svg",
"href": "https://example.com"
},
"navbar": {
"links": [
{
"label": "Community",
"href": "https://example.com/community"
}
],
"primary": {
"type": "button",
"label": "Get Started",
"href": "https://example.com/start"
}
},
"footer": {
"socials": {
"x": "https://x.com/example",
"linkedin": "https://www.linkedin.com/company/example",
"github": "https://github.com/example",
"slack": "https://example.com/community"
},
"links": [
{
"header": "Resources",
"items": [
{
"label": "Customers",
"href": "https://example.com/customers"
},
{
"label": "Enterprise",
"href": "https://example.com/enterprise"
},
{
"label": "Request Preview",
"href": "https://example.com/preview"
}
]
},
{
"header": "Company",
"items": [
{
"label": "Careers",
"href": "https://example.com/careers"
},
{
"label": "Blog",
"href": "https://example.com/blog"
},
{
"label": "Privacy Policy",
"href": "https://example.com/legal/privacy"
}
]
}
]
},
"integrations": {
"ga4": {
"measurementId": "G-XXXXXXXXXX"
},
"koala": {
"publicApiKey": "pk_example_key_123"
},
"telemetry": {
"enabled": true
},
"cookies": {
"key": "example_cookie_key",
"value": "example_cookie_value"
}
},
"contextual": {
"options": [
"copy",
"view",
"chatgpt",
"claude"
]
},
"errors": {
"404": {
"redirect": true
}
}
}
```
</Tab>
<Tab title="Interactive API example">
```json title="docs.json" wrap lines highlight={43-61, 72-79}
{
"$schema": "https://mintlify.com/docs.json",
"theme": "maple",
"name": "Example Co.",
"description": "Example Co. is a company that provides example content and placeholder text.",
"colors": {
"primary": "#3B82F6",
"light": "#F8FAFC",
"dark": "#0F172A"
},
"navigation": {
"dropdowns": [
{
"dropdown": "Documentation",
"icon": "book",
"description": "How to use the Example Co. product",
"groups": [
{
"group": "Getting started",
"pages": [
"index",
"quickstart"
]
},
{
"group": "Customization",
"pages": [
"settings",
"users",
"features"
]
},
{
"group": "Billing",
"pages": [
"billing/overview",
"billing/payments",
"billing/subscriptions"
]
}
]
},
{
"dropdown": "API reference",
"icon": "terminal",
"description": "How to use the Example Co. API",
"groups": [
{
"group": "API reference",
"pages": [
"api-reference/introduction"
]
},
{
"group": "Endpoints",
"openapi": {
"source": "openapi.json"
}
}
]
},
{
"dropdown": "Changelog",
"icon": "history",
"description": "Updates and changes",
"pages": [
"changelog"
]
}
]
},
"api": {
"playground": {
"display": "interactive"
},
"examples": {
"languages": ["javascript", "curl", "python"]
}
},
"logo": {
"light": "/logo-light.svg",
"dark": "/logo-dark.svg",
"href": "https://example.com"
},
"navbar": {
"links": [
{
"label": "Community",
"href": "https://example.com/community"
}
],
"primary": {
"type": "button",
"label": "Get Started",
"href": "https://example.com/start"
}
},
"footer": {
"socials": {
"x": "https://x.com/example",
"linkedin": "https://www.linkedin.com/company/example",
"github": "https://github.com/example",
"slack": "https://example.com/community"
},
"links": [
{
"header": "Resources",
"items": [
{
"label": "Customers",
"href": "https://example.com/customers"
},
{
"label": "Enterprise",
"href": "https://example.com/enterprise"
},
{
"label": "Request Preview",
"href": "https://example.com/preview"
}
]
},
{
"header": "Company",
"items": [
{
"label": "Careers",
"href": "https://example.com/careers"
},
{
"label": "Blog",
"href": "https://example.com/blog"
},
{
"label": "Privacy Policy",
"href": "https://example.com/legal/privacy"
}
]
}
]
},
"integrations": {
"ga4": {
"measurementId": "G-XXXXXXXXXX"
},
"koala": {
"publicApiKey": "pk_example_key_123"
},
"telemetry": {
"enabled": true
},
"cookies": {
"key": "example_cookie_key",
"value": "example_cookie_value"
}
},
"contextual": {
"options": [
"copy",
"view",
"chatgpt",
"claude"
]
},
"errors": {
"404": {
"redirect": true
}
}
}
```
</Tab>
<Tab title="Multi-language example">
```json title="docs.json" wrap lines
{
"$schema": "https://mintlify.com/docs.json",
"theme": "maple",
"name": "Example Co.",
"description": "Example Co. is a company that provides example content and placeholder text.",
"colors": {
"primary": "#3B82F6",
"light": "#F8FAFC",
"dark": "#0F172A"
},
"navigation": {
"global": {
"anchors": [
{
"anchor": "Documentation",
"href": "https://mintlify.com/docs"
},
{
"anchor": "Changelog",
"href": "https://mintlify.com/docs/changelog"
}
]
},
"languages": [ // [!code highlight:3]
{
"language": "en",
"dropdowns": [
{
"dropdown": "Documentation",
"icon": "book",
"description": "How to use the Example Co. product",
"pages": [
{
"group": "Getting started",
"pages": ["index", "quickstart"]
},
{
"group": "Customization",
"pages": ["settings", "users", "features"]
},
{
"group": "Billing",
"pages": [
"billing/overview",
"billing/payments",
"billing/subscriptions"
]
}
]
},
{
"dropdown": "Changelog",
"icon": "history",
"description": "Updates and changes",
"pages": ["changelog"]
}
]
},
{
"language": "es",// [!code highlight]
"dropdowns": [
{
"dropdown": "Documentación",
"icon": "book",
"description": "Cómo usar el producto de Example Co.",
"pages": [
{
"group": "Comenzando",
"pages": ["es/index", "es/quickstart"]
},
{
"group": "Personalización",
"pages": ["es/settings", "es/users", "es/features"]
},
{
"group": "Billing",
"pages": [
"es/billing/overview",
"es/billing/payments",
"es/billing/subscriptions"
]
}
]
},
{
"dropdown": "Changelog",
"icon": "history",
"description": "Actualizaciones y cambios",
"pages": ["es/changelog"]
}
]
}
]
},
"logo": {
"light": "/logo-light.svg",
"dark": "/logo-dark.svg",
"href": "https://example.com"
},
"navbar": {
"links": [
{
"label": "Community",
"href": "https://example.com/community"
}
],
"primary": {
"type": "button",
"label": "Get Started",
"href": "https://example.com/start"
}
},
"footer": {
"socials": {
"x": "https://x.com/example",
"linkedin": "https://www.linkedin.com/company/example",
"github": "https://github.com/example",
"slack": "https://example.com/community"
},
"links": [
{
"header": "Resources",
"items": [
{
"label": "Customers",
"href": "https://example.com/customers"
},
{
"label": "Enterprise",
"href": "https://example.com/enterprise"
},
{
"label": "Request Preview",
"href": "https://example.com/preview"
}
]
},
{
"header": "Company",
"items": [
{
"label": "Careers",
"href": "https://example.com/careers"
},
{
"label": "Blog",
"href": "https://example.com/blog"
},
{
"label": "Privacy Policy",
"href": "https://example.com/legal/privacy"
}
]
}
]
},
"integrations": {
"ga4": {
"measurementId": "G-XXXXXXXXXX"
},
"koala": {
"publicApiKey": "pk_example_key_123"
},
"telemetry": {
"enabled": true
},
"cookies": {
"key": "example_cookie_key",
"value": "example_cookie_value"
}
},
"contextual": {
"options": ["copy", "view", "chatgpt", "claude"]
},
"errors": {
"404": {
"redirect": true
}
}
}
```
</Tab>
</Tabs>
## Upgrading from `mint.json`
If your docs project uses the deprecated `mint.json` file, follow these steps to upgrade to `docs.json`.
<Steps>
<Step title="Install or update the CLI">
If you haven't installed the [CLI](/installation), install it now:
<CodeGroup>
```bash npm
npm i -g mint
```
```bash yarn
yarn global add mint
```
```bash pnpm
pnpm add -g mint
```
</CodeGroup>
If you already have the CLI installed, make sure it is up to date:
```bash
mint update
```
</Step>
<Step title="Create your docs.json file">
In your docs repository, run:
```bash
mint upgrade
```
This command will create a `docs.json` file from your existing `mint.json`. Review the generated file to ensure all settings are correct.
</Step>
<Step title="Delete your mint.json file">
After verifying your `docs.json` is configured properly, you can safely delete your old `mint.json` file.
</Step>
</Steps>