docs.json schema reference
Complete reference for every docs.json configuration property with types, default values, descriptions, and usage examples for your docs site.
Required fields have a required badge. All other fields are optional.
For context on what each group of settings does, see the topic pages:
Quick reference
Section titled “Quick reference”| Property | Type | Required | Default |
|---|---|---|---|
$ref |
string (file path) | No | None |
theme |
string | Yes | None |
name |
string | Yes | None |
colors.primary |
string (hex) | Yes | None |
navigation |
object | Yes | None |
description |
string | No | None |
logo |
string or object | No | None |
favicon |
string or object | No | None |
appearance.default |
"system" | "light" | "dark" |
No | "system" |
appearance.strict |
boolean | No | false |
fonts.family |
string | No | Theme default |
icons.library |
"fontawesome" | "lucide" | "tabler" |
No | "fontawesome" |
background.decoration |
"gradient" | "grid" | "windows" |
No | None |
styling.eyebrows |
"section" | "breadcrumbs" |
No | "section" |
styling.latex |
boolean | No | Auto-detected |
styling.codeblocks |
"system" | "dark" | string | object |
No | "system" |
thumbnails.appearance |
"light" | "dark" |
No | Site default |
navbar.links |
array | No | None |
navbar.primary |
object | No | None |
footer.socials |
object | No | None |
footer.links |
array | No | None |
banner.content |
string | No | None |
banner.dismissible |
boolean | No | false |
banner.type |
"info" | "warning" | "critical" |
No | "info" |
banner.color |
object | string | No | None |
interaction.drilldown |
boolean | No | Theme default |
contextual.options |
array | No | None |
contextual.display |
"header" | "toc" |
No | "header" |
redirects |
array | No | None |
variables |
object | No | None |
metadata.timestamp |
boolean | No | false |
errors.404.redirect |
boolean | No | true |
errors.404.title |
string | No | None |
errors.404.description |
string | No | None |
api.openapi |
string or array or object | No | None |
api.asyncapi |
string or array or object | No | None |
api.playground.display |
"interactive" | "simple" | "none" | "auth" |
No | "interactive" |
api.playground.proxy |
boolean | No | true |
api.playground.credentials |
boolean | No | false |
api.params.expanded |
"all" | "closed" |
No | "closed" |
api.params.post |
array of string | No | None |
api.url |
"full" |
No | None |
api.examples.languages |
array of string | No | None |
api.examples.defaults |
"required" | "all" |
No | "all" |
api.examples.prefill |
boolean | No | false |
api.examples.autogenerate |
boolean | No | true |
markdown.schema |
boolean | No | true |
markdown.instructions |
string or array of strings | No | None |
seo.indexing |
"navigable" | "all" |
No | "navigable" |
seo.metatags |
object | No | None |
seo.organization |
object | No | None |
search.prompt |
string | No | None |
integrations.* |
object | No | None |
Full property reference
Section titled “Full property reference”Load configuration from another JSON file. Use $ref at any level of your docs.json to split configuration across multiple files.
Type: string—relative file path to a .json file
- When
$refresolves to an object, Mintlify merges any sibling keys in the same block on top of the referenced content. Those keys take precedence over matching keys in the reference. - When
$refresolves to a non-object value such as an array, Mintlify ignores any sibling keys. - Referenced files can contain their own
$refentries, resolved relative to that file. - Paths must stay within the project root. Circular references cause a build error.
{
"navigation": { "$ref": "./navigation.json" }
}See Split configuration with $ref for more examples.
theme - required
Section titled “theme - ”The layout theme for your site.
Type: string
Options: mint, maple, palm, willow, linden, almond, aspen, sequoia, luma
See Themes for previews.
name - required
Section titled “name - ”The name of your project, organization, or product.
Type: string
colors - required
Section titled “colors - ”The colors used in your documentation.
Type: object
colors.primary
Section titled “colors.primary”required
The primary color. Generally used for emphasis in light mode.
Type: string—hex code matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
colors.light
Section titled “colors.light”The color used for emphasis in dark mode.
Type: string—hex code matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
colors.dark
Section titled “colors.dark”The color used for buttons and hover states across both modes.
Type: string—hex code matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
navigation - required
Section titled “navigation - ”The navigation structure of your content.
Type: object
See Navigation for complete documentation.
navigation.global
Section titled “navigation.global”Global navigation elements that appear across all pages and locales.
Type: object
navigation.global.tabs
Section titled “navigation.global.tabs”Top-level navigation tabs.
Type: array of object—each with: tab (string, required), icon (string), iconType (string), hidden (boolean), href (string uri, required)
navigation.global.anchors
Section titled “navigation.global.anchors”Sidebar anchor links.
Type: array of object—each with: anchor (string, required), icon (string), iconType (string), color.light (string hex), color.dark (string hex), hidden (boolean), href (string uri, required)
navigation.global.dropdowns
Section titled “navigation.global.dropdowns”Dropdown menus.
Type: array of object—each with: dropdown (string, required), icon (string), iconType (string), hidden (boolean), href (string uri, required)
navigation.global.languages
Section titled “navigation.global.languages”Language switcher in the global nav.
Type: array of object—each with: language (string, required), default (boolean), hidden (boolean), href (string uri, required)
Supported language codes: ar, ca, cn, cs, da, de, en, es, fr, fr-CA, he, hi, hu, id, it, ja, ja-JP, jp, ko, lv, nl, no, pl, pt, pt-BR, ro, ru, sv, tr, uk, uz, vi, zh, zh-CN, zh-Hans, zh-Hant, zh-TW
navigation.global.versions
Section titled “navigation.global.versions”Version switcher in the global nav.
Type: array of object—each with: version (string, required, min length 1), default (boolean), hidden (boolean), href (string uri, required)
navigation.global.products
Section titled “navigation.global.products”Product switcher in the global nav.
Type: array of object—each with: product (string, required), description (string), icon (string), iconType (string)
navigation.languages
Section titled “navigation.languages”Language switcher for multi-language sites. Each entry can include language-specific banner, footer, and navbar overrides.
Type: array of object—each with: language (string, required), default (boolean), hidden (boolean), banner (object), footer (object), navbar (object)
Supported language codes: ar, ca, cn, cs, da, de, en, es, fr, fr-CA, he, hi, hu, id, it, ja, ja-JP, jp, ko, lv, nl, no, pl, pt, pt-BR, ro, ru, sv, tr, uk, uz, vi, zh, zh-CN, zh-Hans, zh-Hant, zh-TW
navigation.versions
Section titled “navigation.versions”Version switcher for multi-version sites.
Type: array of object—each with: default (boolean), tag (string)
navigation.tabs
Section titled “navigation.tabs”Top-level navigation tabs.
Type: array of object—see navigation.global.tabs for shape.
navigation.anchors
Section titled “navigation.anchors”Sidebar anchor links.
Type: array of object—see navigation.global.anchors for shape.
navigation.dropdowns
Section titled “navigation.dropdowns”Dropdown menus.
Type: array of object—see navigation.global.dropdowns for shape.
navigation.products
Section titled “navigation.products”Product switcher. Each entry requires a product field. It can contain groups, pages, a menu array (same shape as navigation.tabs[].menu, for multi-column product dropdowns), icons, or external links.
Type: array of object—each with: product (string, required), description (string), icon (string), iconType (string), href (string uri), groups (array), pages (array), menu (array)
navigation.groups
Section titled “navigation.groups”Groups for organizing content into labeled sections.
Type: array of object
navigation.groups[].boost
Section titled “navigation.groups[].boost”Numeric multiplier applied to the in-product search ranking of every page in this group. Pages inherit the boost factor from the nearest ancestor group that sets one. Use values greater than 1 to prioritize pages. Use values between 0 and 1 to de-prioritize them. See Search.
Type: number
navigation.pages
Section titled “navigation.pages”Individual pages in your documentation.
Type: array of string or object
navigation.directory
Section titled “navigation.directory”Directory layout for root pages in navigation groups. Inherits recursively. Descendants can override. See Directory listings.
Type: "none" | "accordion" | "card"—default "none"
description
Section titled “description”Site description for SEO and AI indexing.
Type: string
Site logo. Provide a path string or separate light and dark objects.
Type: string or object
logo.light
Section titled “logo.light”required (when using object form)
Path to the logo for light mode. Example: /logo/light.svg.
Type: string
logo.dark
Section titled “logo.dark”required (when using object form)
Path to the logo for dark mode. Example: /logo/dark.svg.
Type: string
logo.href
Section titled “logo.href”URL to redirect to when clicking the logo.
Type: string (uri)
favicon
Section titled “favicon”Site favicon. Automatically resized. Provide a path string or separate light and dark objects.
Type: string or object
favicon.light
Section titled “favicon.light”required (when using object form)
Path to the favicon for light mode. Example: /favicon.png.
Type: string
favicon.dark
Section titled “favicon.dark”required (when using object form)
Path to the favicon for dark mode. Example: /favicon-dark.png.
Type: string
appearance
Section titled “appearance”Light/dark mode settings.
Type: object
appearance.default
Section titled “appearance.default”Default color mode.
Type: "system" | "light" | "dark"
Default: "system"
appearance.strict
Section titled “appearance.strict”When true, hides the light/dark mode toggle.
Type: boolean
Default: false
Custom fonts. Supports Google Fonts and self-hosted fonts.
Type: object
fonts.family
Section titled “fonts.family”required (when using fonts)
Font family name. Google Fonts family names load automatically.
Type: string
fonts.weight
Section titled “fonts.weight”Font weight. Variable fonts support fractional values such as 550.
Type: number
fonts.source
Section titled “fonts.source”URL to a hosted font or path to a local font file. Not needed for Google Fonts.
Type: string (uri)
fonts.format
Section titled “fonts.format”Font file format. Required when using fonts.source.
Type: "woff" | "woff2"
fonts.heading
Section titled “fonts.heading”Override font settings for headings. Accepts the same family, weight, source, and format fields.
Type: object
fonts.body
Section titled “fonts.body”Override font settings for body text. Accepts the same family, weight, source, and format fields.
Type: object
Icon library settings.
Type: object
icons.library
Section titled “icons.library”required
Icon library to use throughout your documentation. All icon names in your docs must come from the selected library.
Type: "fontawesome" | "lucide" | "tabler"
Default: "fontawesome"
background
Section titled “background”Background image, decoration, and color settings.
Type: object
background.decoration
Section titled “background.decoration”Decorative background pattern.
Type: "gradient" | "grid" | "windows"
background.color
Section titled “background.color”Custom background colors.
Type: object
background.color.light
Section titled “background.color.light”Background color for light mode.
Type: string—hex code matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
background.color.dark
Section titled “background.color.dark”Background color for dark mode.
Type: string—hex code matching ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
background.image
Section titled “background.image”Background image. Provide a path string or separate light and dark objects.
Type: string or object
background.image.light
Section titled “background.image.light”required (when using object form)
Background image path for light mode.
Type: string
background.image.dark
Section titled “background.image.dark”required (when using object form)
Background image path for dark mode.
Type: string
styling
Section titled “styling”Visual styling controls.
Type: object
styling.eyebrows
Section titled “styling.eyebrows”Page eyebrow style shown at the top of the page.
Type: "section" | "breadcrumbs"
Default: "section"
styling.latex
Section titled “styling.latex”Whether to load LaTeX stylesheets. By default, Mintlify auto-detects LaTeX usage.
Type: boolean
styling.codeblocks
Section titled “styling.codeblocks”Code block theme configuration.
Type: "system" | "dark" | string (Shiki theme name) | object
Default: "system"
When an object:
styling.codeblocks.theme
Section titled “styling.codeblocks.theme”A single Shiki theme name for both modes, or an object with light and dark Shiki theme names.
Type: string or object
styling.codeblocks.languages
Section titled “styling.codeblocks.languages”Custom language configuration.
Type: object
styling.codeblocks.languages.custom
Section titled “styling.codeblocks.languages.custom”Paths to JSON files describing custom Shiki languages in TextMate grammar format.
Type: array of string
thumbnails
Section titled “thumbnails”Social media thumbnail customization.
Type: object
thumbnails.appearance
Section titled “thumbnails.appearance”Visual theme for thumbnails.
Type: "light" | "dark"
Default: Site color scheme
thumbnails.background
Section titled “thumbnails.background”Background image for thumbnails. Can be a relative path or absolute URL.
Type: string
thumbnails.fonts
Section titled “thumbnails.fonts”Font configuration for thumbnails.
Type: object
thumbnails.fonts.family
Section titled “thumbnails.fonts.family”required (when using thumbnails.fonts)
Font family name. Supports Google Fonts only.
Type: string
navbar
Section titled “navbar”Top navigation bar configuration.
Type: object
navbar.links
Section titled “navbar.links”Links displayed in the navbar.
Type: array of object—each with:
| Field | Type | Required | Description |
|---|---|---|---|
type |
"github" | "discord" |
No | Link type. Omit for a standard link. |
label |
string | Conditional | Required when type is omitted. |
href |
string (uri) | Yes | Link destination. |
icon |
string | No | Icon name, emoji, URL, path, or SVG. |
iconType |
string | No | Font Awesome icon style only. |
navbar.primary
Section titled “navbar.primary”Primary call-to-action button in the navbar.
Type: object
| Field | Type | Required | Description |
|---|---|---|---|
type |
"button" | "github" | "discord" |
Yes | Button style. |
label |
string | Conditional | Required when type is "button". |
href |
string (uri) | Yes | Button destination. |
footer
Section titled “footer”Footer content and social links.
Type: object
footer.socials
Section titled “footer.socials”Social media profiles. Each key is a platform name, each value is your profile URL.
Type: object
Valid keys: x, website, facebook, youtube, discord, slack, github, linkedin, instagram, hacker-news, medium, telegram, twitter, x-twitter, earth-americas, bluesky, threads, reddit, podcast
footer.links
Section titled “footer.links”Link columns in the footer. Maximum 4 columns.
Type: array of object (max 4)—each with: header (string), items (array of { label: string, href: string }, required)
banner
Section titled “banner”Site-wide banner displayed at the top of every page.
Type: object
banner.content
Section titled “banner.content”required (when using banner)
Banner text. Supports basic MDX formatting including links, bold, and italic. Custom components are not supported.
Type: string
banner.dismissible
Section titled “banner.dismissible”Whether to show a dismiss button.
Type: boolean
Default: false
banner.type
Section titled “banner.type”Visual style for the banner background. Use info for general announcements, warning for cautionary notices, and critical for urgent issues.
Type: "info" | "warning" | "critical"
Default: "info"
banner.color
Section titled “banner.color”Custom background color override. Takes precedence over type. Banner text is white, so choose a background that remains legible.
Type: object with light (string) and dark (string) hex values, or a single hex string applied to both modes.
interaction
Section titled “interaction”Navigation interaction settings.
Type: object
interaction.drilldown
Section titled “interaction.drilldown”Controls automatic navigation when a user clicks a navigation group. Set to true to navigate to the first page when a user clicks a group. Set to false to only expand/collapse the group without navigating.
Type: boolean Default: Theme default
contextual
Section titled “contextual”Contextual menu for page actions and AI tool integrations.
Type: object
contextual.options
Section titled “contextual.options”required
Actions available in the contextual menu. The first item is the default action.
Type: array of "assistant" | "copy" | "view" | "download-pdf" | "download-spec" | "chatgpt" | "claude" | "perplexity" | "grok" | "aistudio" | "devin" | "devin-desktop" | "mcp" | "add-mcp" | "cursor" | "vscode" | "devin-mcp" | object
Custom option object fields:
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Display title. |
description |
string | Yes | Description text. |
icon |
string | No | Icon name, emoji, URL, path, or SVG. |
href |
string or object | Yes | Link destination. Supports $page, $path, $mcp placeholders. |
contextual.display
Section titled “contextual.display”Where to show the contextual menu.
Type: "header" | "toc"
Default: "header"
redirects
Section titled “redirects”Redirects for moved, renamed, or deleted pages.
Type: array of object—each with:
| Field | Type | Required | Description |
|---|---|---|---|
source |
string | Yes | Path to redirect from. Example: /old-page |
destination |
string | Yes | Path to redirect to. Example: /new-page |
permanent |
boolean | No | true for 308, false for 307. Default: true. |
variables
Section titled “variables”Global content variables replaced at build time using {{variableName}} syntax.
Type: object—key-value pairs where keys are variable names (alphanumeric and hyphens only) and values are replacement strings.
metadata
Section titled “metadata”Global page metadata settings.
Type: object
metadata.timestamp
Section titled “metadata.timestamp”Display a last-modified date on all pages. For projects backed by GitHub or GitLab, the date reflects the last Git commit that touched a page's source file. It falls back to the most recent deployment timestamp if a Git commit date isn't available.
Set the lastUpdatedDate frontmatter field on a page to override the automatic date. See Pages for details.
Type: boolean
Default: false
errors
Section titled “errors”Error page settings.
Type: object
errors.404
Section titled “errors.404”Settings for the 404 "Page not found" error page.
Type: object
errors.404.redirect
Section titled “errors.404.redirect”Whether to automatically redirect to the home page when a page is not found.
Type: boolean
Default: true
errors.404.title
Section titled “errors.404.title”Custom title for the 404 page.
Type: string
errors.404.description
Section titled “errors.404.description”Custom description for the 404 page. Supports MDX formatting including links, bold, italic, and custom components.
Type: string
API documentation and playground settings.
Type: object
api.openapi
Section titled “api.openapi”OpenAPI specification files.
Type: string | array of string or object | object with source (string), directory (string), and overlays (array of string)
api.asyncapi
Section titled “api.asyncapi”AsyncAPI specification files.
Type: string | array of string | object with source (string) and directory (string)
api.playground
Section titled “api.playground”Interactive playground settings.
Type: object
api.playground.display
Section titled “api.playground.display”Playground display mode.
Type: "interactive" | "simple" | "none" | "auth"
Default: "interactive"
api.playground.proxy
Section titled “api.playground.proxy”Whether to route API requests through a proxy.
Type: boolean
Default: true
api.playground.credentials
Section titled “api.playground.credentials”Whether to include cookies and authentication headers for cross-origin requests when proxy is false. Has no effect when proxy is true.
Type: boolean
Default: false
api.params
Section titled “api.params”API parameter display settings.
Type: object
api.params.expanded
Section titled “api.params.expanded”Whether to expand all parameters by default.
Type: "all" | "closed"
Default: "closed"
api.params.post
Section titled “api.params.post”OpenAPI spec field keys to surface as post pills next to every parameter name. For each key, Mintlify reads the value on the schema and renders it as a pill. Strings render verbatim, true renders the key name, numbers stringify, and arrays render one pill per element. Mintlify skips false, null, empty strings, and objects.
Type: array of string
api.url
Section titled “api.url”Base URL display mode.
Type: "full"
Default: Only shown when multiple base URLs exist.
api.examples
Section titled “api.examples”Code example settings.
Type: object
api.examples.languages
Section titled “api.examples.languages”Languages for autogenerated code snippets. See supported languages.
Type: array of string
api.examples.defaults
Section titled “api.examples.defaults”Whether to include optional parameters in examples.
Type: "required" | "all"
Default: "all"
api.examples.prefill
Section titled “api.examples.prefill”Whether to prefill playground fields with spec example values.
Type: boolean
Default: false
api.examples.autogenerate
Section titled “api.examples.autogenerate”Whether to generate code samples from API specifications.
Type: boolean
Default: true
api.mdx
Section titled “api.mdx”Settings for API pages built from MDX files.
Type: object
api.mdx.auth
Section titled “api.mdx.auth”Authentication configuration for MDX-based API requests.
Type: object
api.mdx.auth.method
Section titled “api.mdx.auth.method”Authentication method.
Type: "bearer" | "basic" | "key" | "cobo"
api.mdx.auth.name
Section titled “api.mdx.auth.name”Authentication parameter name.
Type: string
api.mdx.server
Section titled “api.mdx.server”Base URL prepended to relative paths in page-level api frontmatter. Not used when frontmatter contains a full URL.
Type: string or array
markdown
Section titled “markdown”Settings for the Markdown that Mintlify serves to AI tools and agents. See Markdown export.
Type: object
markdown.schema
Section titled “markdown.schema”Whether to include the full OpenAPI or AsyncAPI specification in the Markdown export of API reference pages.
Type: boolean
Default: true
markdown.instructions
Section titled “markdown.instructions”Custom agent instructions appended to the generated Markdown of every page, as well as your llms.txt and llms-full.txt files. Provide a single string or an array of strings. Mintlify joins array items with line breaks. See Custom agent instructions.
Type: string or array of strings
Search engine optimization settings.
Type: object
seo.indexing
Section titled “seo.indexing”Which pages search engines should index.
Type: "navigable" | "all"
Default: "navigable"
seo.metatags
Section titled “seo.metatags”Custom meta tags added to every page. Key-value pairs.
Type: object
seo.organization
Section titled “seo.organization”Organization used as the publisher entity in structured data (JSON-LD) on every page. It accepts id, name, legalName, url, logo, and sameAs. See SEO and search.
Type: object
search
Section titled “search”Search bar settings.
Type: object
search.prompt
Section titled “search.prompt”Placeholder text in the search bar.
Type: string
integrations
Section titled “integrations”Third-party integrations.
Type: object
| Property | Type | Required field | Description |
|---|---|---|---|
integrations.adobe.launchUrl |
string (uri) | Yes | Adobe Analytics launch URL. |
integrations.amplitude.apiKey |
string | Yes | Amplitude API key. |
integrations.clarity.projectId |
string | Yes | Microsoft Clarity project ID. |
integrations.clearbit.publicApiKey |
string | Yes | Clearbit public API key. |
integrations.fathom.siteId |
string | Yes | Fathom site ID. |
integrations.frontchat.snippetId |
string (min 6) | Yes | Front chat snippet ID. |
integrations.ga4.measurementId |
string (must start with G) |
Yes | Google Analytics 4 measurement ID. |
integrations.gtm.tagId |
string (must start with G) |
Yes | Google Tag Manager container ID. |
integrations.heap.appId |
string | Yes | Heap app ID. |
integrations.hightouch.writeKey |
string | Yes | Hightouch write key. |
integrations.hightouch.apiHost |
string | No | Hightouch API host. |
integrations.hotjar.hjid |
string | Yes | Hotjar site ID. |
integrations.hotjar.hjsv |
string | Yes | Hotjar script version. |
integrations.intercom.appId |
string (min 6) | Yes | Intercom app ID. |
integrations.logrocket.appId |
string | Yes | LogRocket app ID. |
integrations.mixpanel.projectToken |
string | Yes | Mixpanel project token. |
integrations.pirsch.id |
string | Yes | Pirsch site ID. |
integrations.plausible.domain |
string | Yes | Plausible domain. |
integrations.plausible.server |
string | No | Plausible server (self-hosted only). |
integrations.posthog.apiKey |
string (must start with phc_) |
Yes | PostHog API key. |
integrations.posthog.apiHost |
string (uri) | No | PostHog API host (self-hosted only). |
integrations.posthog.sessionRecording |
boolean | No | Enable session recording. Default: false. |
integrations.segment.key |
string | Yes | Segment write key. |
integrations.telemetry.enabled |
boolean | No | Enable Mintlify telemetry. When false, feedback features are also disabled. |
integrations.cookies.key |
string | No | Cookie key name. |
integrations.cookies.value |
string | No | Cookie value. |