The swagger shortcode uses the RapiDoc library to display your Swagger / OpenAPI Specifications.


This only works in modern browsers.


While the examples are using shortcodes with named parameter you are free to also call this shortcode from your own partials.

{{< swagger src="https://petstore3.swagger.io/api/v3/openapi.json" >}}
{{ partial "shortcodes/swagger.html" (dict
  "context" .
  "src" "https://petstore3.swagger.io/api/v3/openapi.json"


Name Default Notes
src <empty> The URL to the OpenAPI Specification file. This can be relative to the URL of your page if it is a leaf or branch bundle.

If you want to print out (or generate a PDF) from your Swagger documentation, don’t initiate printing directly from the page because the elements are optimized for interactive usage in a browser.

Instead, open the print preview in your browser and initiate printing from that page. This page is optimized for reading and expands most of the available sections.


Swagger is configured with default settings. You can customize Swagger’s default settings for all of your files thru a JSON object in your config.toml or override these settings per page thru your pages frontmatter.

The JSON object of your config.toml / frontmatter is forwarded into Swagger’s initialization. At the moment, only the theme setting is supported.

The theme setting can also be set by your used color variant. This will be the sitewide default and can - again - be overridden by your settings in config.toml or frontmatter.

Global Configuration File

  swaggerInitialize = "{ \"theme\": \"dark\" }"


Using Local File

{{< swagger src="petstore.json" >}}