The stats command provides statistics about the structure of one or more API description files. This command generates statistics for the following metrics:
- References
- External Documents
- Schemas
- Parameters
- Links
- Path Items
- Operations
- Tags
If you're interested in the technical details, the statistics are calculated using the counting logic from the StatsVisitor module.
The stats command supports OpenAPI 3.x descriptions only.
redocly stats <api>
redocly stats <api> [--format=<option>] [--config=<path>]
redocly stats --version| Option | Type | Description |
|---|---|---|
| api | string | REQUIRED. Path to the API description filename or alias that you want to generate the statistics for. Refer to the API section for more details. |
| --config | string | Specify path to the configuration file. |
| --format | string | Format for the output. Possible values: stylish, json, markdown. Default value is stylish. |
| --help | boolean | Show help. |
| --lint-config | string | Specify the severity level for the configuration file. Possible values: warn, error, off. Default value is warn. |
| --version | boolean | Show version number. |
The stats command behaves differently depending on how you pass the API to it, and whether the configuration file exists.
You can use the stats command with an OpenAPI description directly, with a command like the following:
redocly stats openapi/openapi.yamlIn this case, stats shows statistics for the API description that was passed in.
Instead of a full path, you can use an API name from the apis section of your Redocly configuration file. For example, with a redocly.yaml configuration file containing the following entry for core@v1:
apis:
core@v1:
root: ./openapi/api-description.jsonYou can obtain the statistics by giving the API alias name, as shown below:
redocly stats core@v1In this case, after resolving the path behind the core@v1 name, stats displays statistics for the openapi/api-description.json file. For this approach, the Redocly configuration file is mandatory.
By default, the CLI tool looks for the Redocly configuration file in the current working directory. Use the optional --config argument to provide an alternative path to a configuration file.
redocly stats --config=./another/directory/config.yamlThe default output format for stats is called "stylish". It outputs a nice format for your terminal, as shown in the following example:
Document: museum.yaml stats: 🚗 References: 35 📦 External Documents: 0 📈 Schemas: 23 👉 Parameters: 6 🔗 Links: 0 🔀 Path Items: 5 👷 Operations: 8 🔖 Tags: 3 museum.yaml: stats processed in 4ms
In this format, stats shows the statistics in a condensed but readable manner with an icon at the beginning of each line.
Use --format=json to get a machine-readable output format. The JSON format output is shown in the following example:
{
"refs": {
"metric": "🚗 References",
"total": 35
},
"externalDocs": {
"metric": "📦 External Documents",
"total": 0
},
"schemas": {
"metric": "📈 Schemas",
"total": 23
},
"parameters": {
"metric": "👉 Parameters",
"total": 6
},
"links": {
"metric": "🔗 Links",
"total": 0
},
"pathItems": {
"metric": "🔀 Path Items",
"total": 5
},
"operations": {
"metric": "👷 Operations",
"total": 8
},
"tags": {
"metric": "🔖 Tags",
"total": 3
}
}
The JSON format output is suitable when you want to use the stats data in another program.
Use --format=markdown to return output that you can use in Markdown files or other Markdown-friendly applications. A table format is used.
The following is an example source output:
| Feature | Count | | --- | --- | | 🚗 References | 35 | | 📦 External Documents | 0 | | 📈 Schemas | 23 | | 👉 Parameters | 6 | | 🔗 Links | 0 | | 🔀 Path Items | 5 | | 👷 Operations | 8 | | 🔖 Tags | 3 |
Here's the rendered example source output:
| Feature | Count |
|---|---|
| 🚗 References | 35 |
| 📦 External Documents | 0 |
| 📈 Schemas | 23 |
| 👉 Parameters | 6 |
| 🔗 Links | 0 |
| 🔀 Path Items | 5 |
| 👷 Operations | 8 |
| 🔖 Tags | 3 |
The Markdown format is suitable when a printable summary is needed, such as for regularly updated reports or human-readable output from your CI system.
The following example shows how to use the stats command in a GitHub action to make a GitHub summary:
name: Get API stats
on: push
jobs:
get_stats:
name: Stats as a job summary
runs-on: ubuntu-latest
steps:
- name: Check out repo's default branch
uses: actions/checkout@v4
- name: Set up node
uses: actions/setup-node@v4
- name: Install Redocly CLI
run: npm install -g @redocly/cli@latest
- name: Get stats
run: redocly stats --format=markdown museum.yaml >> $GITHUB_STEP_SUMMARY 2>&1This GitHub action uses the output of the stats command in Markdown format as the input value for $GITHUB_STEP_SUMMARY. When the job is complete, your API stats are added to the summary page, as shown in the following screenshot:
