Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 2 additions & 41 deletions guides/migrating-from-mdx.mdx
Original file line number Diff line number Diff line change
@@ -1,54 +1,15 @@
---
title: "Migrating MDX API pages to OpenAPI navigation"
sidebarTitle: "Migrate from MDX to OAS"

Check warning on line 3 in guides/migrating-from-mdx.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

guides/migrating-from-mdx.mdx#L3

Spell out 'OAS', if it's unfamiliar to the audience.
description: "Migrate your manually written MDX API pages to automated OpenAPI-generated documentation with flexible navigation and endpoint grouping."
keywords: ["API migration", "mint migrate-mdx", "OpenAPI migration", "x-mint extension"]
keywords: ["API migration", "OpenAPI migration", "x-mint extension"]
---

If you are currently using individual MDX pages for your API endpoints, you can migrate to autogenerating pages from your OpenAPI specification while retaining the customizability of individual pages. This can help you reduce the number of files you need to maintain and improve the consistency of your API documentation.

You can define metadata and content for each endpoint in your OpenAPI specification and organize endpoints where you want them in your navigation.

## CLI migration

The `mint migrate-mdx` command is the recommended way to migrate from MDX endpoint pages to autogenerated pages.

This command:
- Parses your `docs.json` navigation structure.
- Identifies MDX pages that generate OpenAPI endpoint pages.
- Extracts content from MDX files and moves it to the `x-mint` extension in your OpenAPI specification.
- Updates your `docs.json` to reference the OpenAPI endpoints directly instead of MDX files.
- Deletes the original MDX endpoint files.

<Info>
If you already have `x-mint` defined for an endpoint and also have an MDX page with content for that endpoint, the MDX content overwrites existing `x-mint` settings.

If you have multiple MDX pages for the same endpoint with different content, the script uses the content from the page that appears last in your `docs.json`.

The migration tool does not support previewing changes before applying them.
</Info>

<Steps>
<Step title="Prepare your OpenAPI specification.">
Ensure your OpenAPI specification is valid and includes all endpoints you want to document.

Any MDX pages you want to migrate must have the `openapi:` frontmatter referencing an endpoint.

<Tip>
Validate your OpenAPI file using the [Swagger Editor](https://editor.swagger.io/) or [Mint CLI](https://www.npmjs.com/package/mint).
</Tip>
</Step>
<Step title="Install the Mint CLI">
If needed, install or update the [Mint CLI](/installation).
</Step>
<Step title="Run the migration command.">
```bash
mint migrate-mdx
```
</Step>
</Steps>

## Manual migration steps
## Migration steps

<Steps>
<Step title="Prepare your OpenAPI specification.">
Expand Down
186 changes: 150 additions & 36 deletions installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

Use the [CLI](https://www.npmjs.com/package/mint) to preview your documentation locally as you write and edit. View changes in real-time before deploying, test your documentation site's appearance and features, and catch issues like broken links or accessibility problems.

The CLI also has utilities for maintaining your documentation, including commands to rename files, validate OpenAPI specifications, and migrate content between formats.
The CLI also has utilities for maintaining your documentation, including commands to validate OpenAPI specifications, view analytics, and authenticate your account.

## Prerequisites

Expand Down Expand Up @@ -258,98 +258,212 @@

The CLI prompts you for a name, trigger type, and other settings, then creates a `.md` file in `.mintlify/workflows/`.

### Rename files
### Export for offline viewing

Rename and update all references to files with the following command:
Export your entire documentation site as a self-contained zip archive for offline viewing and distribution:

```bash
mint rename <path/to/old-filename> <path/to/new-filename>
mint export
```

Use `--force` to rename files and skip errors:
Use `--output` to set a custom filename, `--groups` to include pages restricted by [user groups](/deploy/authentication-setup#control-access-with-groups), and `--disable-openapi` to skip OpenAPI processing.

```bash
mint rename <path/to/old-filename> <path/to/new-filename> --force
mint export --output customer-docs.zip --groups enterprise
```

### Migrate MDX endpoint pages
See [Offline export](/deploy/export) for details on all options and distributing the exported archive.

### Upgrade configuration

Migrate MDX endpoint pages to autogenerated pages from your OpenAPI specification with the following command:
Convert a `mint.json` configuration file to the current `docs.json` format:

```bash
mint migrate-mdx
mint upgrade
```

This command converts individual MDX endpoint pages to autogenerated pages defined in your `docs.json`, moves MDX content to the `x-mint` extension in your OpenAPI specification, and updates your navigation. See [Migrating from MDX](/guides/migrating-from-mdx) for detailed information.
See [Global settings](/organize/settings) for more information about `docs.json`.

### Export for offline viewing
### Check version

Export your entire documentation site as a self-contained zip archive for offline viewing and distribution:
Display the current CLI and client version:

```bash
mint export
mint version
```

Use `--output` to set a custom filename, `--groups` to include pages restricted by [user groups](/deploy/authentication-setup#control-access-with-groups), and `--disable-openapi` to skip OpenAPI processing.
## Authentication

Sign in to your Mintlify account from the CLI to access authenticated features like analytics.

### Log in

Authenticate your Mintlify account:

```bash
mint export --output customer-docs.zip --groups enterprise
mint login
```

See [Offline export](/deploy/export) for details on all options and distributing the exported archive.
The command opens your browser for authentication. After you authorize, the CLI stores your credentials locally using your system keychain.

### Import content
### Check authentication status

Scrape content from an external documentation site or OpenAPI specification using the `mint scrape` commands. This is useful when you migrate your documentation from another platform to Mintlify.
View your current authentication status, including your email and organization:

**Import an entire site:**
```bash
mint status
```

### Log out

Remove your stored credentials:

```bash
mint scrape <url>
mint logout
```

Use the `--filter` (or `-f`) flag to limit scraping to URLs matching a specific path prefix:
## Analytics

<Note>
You must be logged in with `mint login` before using analytics commands.

Check warning on line 328 in installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

installation.mdx#L328

In general, use active voice instead of passive voice ('be logged').
</Note>

View analytics for your documentation site directly from the terminal with the `mint analytics` command. This is useful for monitoring traffic, reviewing user feedback, and understanding how visitors interact with your docs.

### View key metrics

Display a summary of views, visitors, searches, feedback, and assistant usage:

```bash
mint scrape <url> --filter=<path>
mint analytics stats
```

**Import a single page:**
Use `--from` and `--to` to specify a date range (defaults to the last 7 days):

```bash
mint scrape page <url>
mint analytics stats --from 2026-01-01 --to 2026-01-31
```

**Generate pages from an OpenAPI spec:**
Filter to a specific page or traffic source:

```bash
mint scrape openapi <openApiFilename or URL>
# Filter to a specific page
mint analytics stats --page /quickstart

# Show only human traffic
mint analytics stats --humans

# Show only agent traffic
mint analytics stats --agents
```

### View search analytics

See what users are searching for in your documentation:

```bash
mint analytics search
```

Filter by search query or top clicked page:

```bash
mint analytics search --query "authentication"
mint analytics search --page /api-reference
```

### View feedback

Display feedback submitted by users on your documentation pages:

```bash
mint analytics feedback
```

View page-level feedback aggregation:

```bash
mint analytics feedback --type page
```

Filter to code snippet feedback:

```bash
mint analytics feedback --type code
```

### View assistant conversations

List conversations from the AI assistant:

```bash
mint analytics conversation list
```

View a specific conversation by ID:

```bash
mint analytics conversation view <id>
```

### View conversation buckets

List grouped conversation categories:

```bash
mint analytics conversation buckets list
```

View conversations within a specific bucket:

```bash
mint analytics conversation buckets view <id>
```

### Shared flags

All analytics commands support the following flags:

| Flag | Description |
| --- | --- |
| `--outDir` | Directory to write generated files. Defaults to `./docs`. |
| `--overwrite` | Overwrite existing files. |
| `--no-writeFiles` | Preview output without writing files. |
| `--subdomain` | Documentation subdomain. Defaults to the value set with `mint config set subdomain`. |
| `--from` | Start date in `YYYY-MM-DD` format. Defaults to 7 days ago or the value set with `mint config set dateFrom`. |
| `--to` | End date in `YYYY-MM-DD` format. Defaults to today or the value set with `mint config set dateTo`. |
| `--format` | Output format: `table` (pretty), `plain` (pipeable), `json` (raw), or `graph` (bar charts). Defaults to `plain`. |
| `--agent` | Agent-friendly output, equivalent to `--format json`. Automatically detected when running inside AI coding agents. |

### Upgrade configuration
## Configuration

Convert a `mint.json` configuration file to the current `docs.json` format:
Manage persistent CLI settings with the `mint config` command. These settings provide defaults for other commands like `mint analytics`.

### Set a value

```bash
mint upgrade
mint config set <key> <value>
```

See [Global settings](/organize/settings) for more information about `docs.json`.
### Get a value

### Check version
```bash
mint config get <key>
```

Display the current CLI and client version:
### Clear a value

```bash
mint version
mint config clear <key>
```

### Available keys

| Key | Description |
| --- | --- |
| `subdomain` | Default documentation subdomain for analytics commands. |
| `dateFrom` | Default start date for analytics date ranges. |
| `dateTo` | Default end date for analytics date ranges. |

Configuration is stored in `~/.config/mintlify/config.json`.

Check warning on line 465 in installation.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

installation.mdx#L465

In general, use active voice instead of passive voice ('is stored').

## Formatting

While developing locally, we recommend using extensions in your IDE to recognize and format MDX files.
Expand Down
10 changes: 2 additions & 8 deletions migration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -170,18 +170,12 @@ To migrate your content to Mintlify, you need:

1. If your content is already in Markdown format, copy the content to your Mintlify project. Otherwise, convert your content to MDX format.
2. Create your `docs.json` referencing the paths to your Markdown pages.
3. If you have OpenAPI specifications, add them to your `docs.json` and configure the API playground. You can also generate MDX pages from your spec using the `mint scrape openapi` command:
3. If you have OpenAPI specifications, add them to your `docs.json` and configure the API playground. You can also generate MDX pages from your spec using the `@mintlify/scraping` package:

```bash
mint scrape openapi <openApiFilename or URL>
npx @mintlify/scraping@latest openapi-file <openApiFilename or URL>
```

| Flag | Description |
| --- | --- |
| `--outDir` | Directory to write generated files. Defaults to `./docs`. |
| `--overwrite` | Overwrite existing files. |
| `--no-writeFiles` | Preview output without writing files. |

<Tip>
If you migrate your content as `.md` files, convert them to `.mdx` to support interactive features like React components.
</Tip>
Expand Down
Loading