\n \n\n"},{"@type":"HowToStep","position":2,"name":"Publish","text":"# Publish the directory containing swagger-ui.html + openapi.json\ndsp publish ./api-docs/ --name \"api-docs\"\n# → https://acme.dsp.so/0kzNYG7O-api-docs\n\nFor Redoc:\nnpx @redocly/cli build-docs openapi.yaml --output ./redoc-build/index.html\ndsp publish ./redoc-build/ --name \"api-docs-redoc\""}]}]
Solutions

Host Swagger UI / Redoc behind company SSO

One command. Your API documentation becomes a permanent authenticated URL accessible to any engineer with a company email.

Works with your agents
terminal
$ display publish ./report.html
 
Uploading    47kb
Auth       Google Workspace ✓
 
✓ Published
 
→ https://view.display.dev/p/f474hfd/8f3kx9
 
Viewers    anyone at acme.com
Expires    never
Version    1
 
$ 

The command

dsp publish ./swagger-ui/ --name "api-docs"

Any @yourco.com email authenticates with one click. No GitHub account. No Vercel project.


API docs are internal. They need internal auth.

Swagger UI and Redoc generate beautiful, interactive API documentation. Your OpenAPI spec becomes a fully browsable API explorer – method by method, parameter by parameter, with live request testing.

That documentation is for internal engineers. It shouldn't be public. But every hosting option that adds auth requires significant overhead:

  • Host on Vercel with SSO: $300/month for one project's SSO add-on. Plus a git project structure.
  • Behind a VPN: Engineers outside the office network can't access it. Mobile access breaks. VPN adds latency to a tool engineers use constantly.
  • S3 + CloudFront + Cognito: 1–2 days of setup, IAM policies, ongoing maintenance. Every new API spec requires updating the same infrastructure.
  • Confluence embed: Strips the JS. The live "Try it out" functionality is gone.

display.dev publishes the Swagger UI or Redoc build directory behind Google + Microsoft SSO in 15 seconds. €49/month for the whole company.


display.dev vs. alternatives for API doc hosting

display.devVercel + SSOBehind VPNS3 + Cognito
Interactive Swagger UI / Redoc
Google Workspace SSO✅ Included$300/mo add-onComplex setup
Microsoft 365 SSO✅ Included$300/mo add-onComplex setup
Setup time15 seconds20+ minutesHours1–2 days
Mobile access (no VPN)
Monthly price€49 flat$320+/mo$0 (VPN cost)$50+/mo + time
Non-engineer access❌ (VPN)

Generate and publish Swagger UI

Step 1: Generate the Swagger UI build

For a self-hosted Swagger UI:

git clone https://github.com/swagger-api/swagger-ui.git
cd swagger-ui
 

Or use the CDN-based single-file approach:

 
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist/swagger-ui.css">
</head>
<body>
  <div id="swagger-ui"></div>
  <script src="https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"></script>
  <script>
    SwaggerUIBundle({
      url: "./openapi.json",
      dom_id: '#swagger-ui',
    })
  </script>
</body>
</html>

Step 2: Publish

dsp publish ./api-docs/ --name "api-docs"

For Redoc:

npx @redocly/cli build-docs openapi.yaml --output ./redoc-build/index.html
dsp publish ./redoc-build/ --name "api-docs-redoc"

CI/CD setup – publish on every spec change

name: Publish API Docs
 
on:
  push:
    paths:
      - 'openapi.yaml'
      - 'openapi.json'
 
jobs:
  publish-docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
 
      - name: Build Redoc
        run: |
          npm install -g @redocly/cli
          redocly build-docs openapi.yaml --output ./api-docs/index.html
 
      - name: Install display.dev CLI
        run: npm install -g @displaydev/cli
 
      - name: Publish API docs
        run: |
          BASE_VERSION=$(dsp get "${{ vars.DISPLAY_ARTIFACT_ID }}" | jq -r .currentVersion)
          dsp publish ./api-docs/ --id "${{ vars.DISPLAY_ARTIFACT_ID }}" --base-version "$BASE_VERSION"
        env:
          DISPLAYDEV_API_KEY: ${{ secrets.DISPLAYDEV_API_KEY }}

Every merge that touches the OpenAPI spec automatically updates the published docs using the artifact ID stored in DISPLAY_ARTIFACT_ID.


Pricing

2 months free
Free

Try it. No credit card.

€0
  • Included: 10 gated artifacts
  • Included: Unlimited public artifacts*
  • Included: 50MB storage
  • Not included: Version history
  • Not included: Google + Microsoft SSO
  • Not included: Private artifacts
  • Not included: Audit logs

display.dev branded

Get started
Solo

Individuals. Unlimited gated sharing.

€15/mo
  • Included: Unlimited gated artifacts
  • Included: Unlimited public artifacts
  • Included: 1GB storage
  • Included: 10 versions
  • Not included: Google + Microsoft SSO
  • Not included: Private artifacts
  • Not included: Audit logs
Get started
Enterprise

For compliance-driven organizations.

Contact us

From €499/mo

  • Included: Unlimited gated artifacts
  • Included: Unlimited public artifacts
  • Included: Custom storage
  • Included: Unlimited versions
  • Included: Google + Microsoft SSO
  • Included: Private artifacts
  • Included: 365 days audit logs
Talk to us

Features

Authentication

Viewers click a link and sign in with their Google or Microsoft account, or a one-time password. No app to install. No account to create. No IT ticket.

Comments

Inline comments on every artifact. Your agent reads them via MCP, fetches the current version, republishes with short_id and base_version, and resolves the thread. The artifact stays a living document, not a one-shot screenshot.

Publish in 15 seconds

dsp publish ./file.html from your terminal, or one sentence in Claude Desktop. No git repo, no deploy pipeline, no project to configure.

Permanent URLs

Every artifact gets a URL that keeps working. Share in Slack, link in Notion, paste in email. It still works six months later.

Unlimited viewers

No per-seat pricing at any tier. Share with your PM, exec, legal team, or designer for the same flat price.

Any agent

Claude Code, Codex, and Cursor all work, along with anything else that creates HTML or Markdown output.

Common questions.

Does the "Try it out" feature work in display.dev-hosted Swagger UI?+

Yes, if your API is accessible from the viewer's browser. display.dev serves the Swagger UI as intended – including the live request functionality. CORS on your API must allow requests from acme.dsp.so.

Can I host multiple API versions?+

Yes. dsp publish ./api-docs-v2/ --name "api-docs-v2". Each version gets its own URL. Link them from a changelog page or Notion.

What about private APIs that should only be accessible internally?+

display.dev gates the documentation page – only company emails can view the Swagger UI. The API itself remains on your internal network or behind its own auth. display.dev controls who can read the docs, not who can call the API.

Does display.dev work with AsyncAPI or GraphQL schema docs?+

Any static HTML documentation tool works. AsyncAPI Studio, GraphQL Playground (static export), Redoc, Stoplight Elements – if it builds to a dist/ directory of HTML, dsp publish serves it.

Can I keep my existing Confluence page and link to display.dev for interactive docs?+

Yes. Link from your Confluence doc to acme.dsp.so/0kzNYG7O-api-docs. Confluence gets the searchable, structured context; display.dev hosts the interactive explorer.

Publish your first artifact in 15 seconds.

Free tier. No credit card. One-time password auth on free, Google + Microsoft SSO on Pro (€49/month flat).