How Do You Generate and Host API Docs From Bruno?

Bruno has no hosted docs. Learn how to generate, publish, and auto-sync shareable API documentation from your spec, the gap Bruno leaves open.

Ashley Innocent

Ashley Innocent

2 June 2026

How Do You Generate and Host API Docs From Bruno?

Apidog for Enterprise

On-Premises Deploy

SSO & RBAC

SOC 2 Compliant

Explore Apidog Enterprise

If you’ve adopted Bruno, you already know the appeal. Your collections live as plain .bru files in your Git repo, version-controlled alongside the code, with no cloud account required. It’s a clean, offline-first answer to API clients that want to own your data.

But sooner or later someone asks a question Bruno doesn’t answer well: “Where are the docs? Can you send me a link?” That’s where teams hit a wall. Bruno is built for sending requests, not for publishing a shareable documentation portal. This guide covers Bruno API documentation generation honestly, what Bruno gives you, what it doesn’t, and how to generate and host docs from your spec when you need a real URL to hand to consumers.

button

What teams actually need from API docs

Before judging any tool, it helps to define the target. When people say “API documentation,” they usually mean three things working together:

Hit all three and your docs become the single source of truth. Miss one and people fall back to asking you directly, which doesn’t scale.

Bruno’s documentation story

Let’s be fair to Bruno, because it does some things well here.

Bruno’s collections are human-readable. The .bru format is plain text, so an engineer browsing the repo can open a request file and see the method, URL, headers, and body. Bruno also supports a docs block per request and a Markdown documentation view inside the app, so you can attach prose explaining what an endpoint does. Because everything is in Git, those notes are reviewed in pull requests like any other change. For an internal team that lives in the codebase, that’s a legitimate form of documentation.

The honest gap is publishing. Bruno has no built-in, hosted, auto-generated public documentation portal. There’s no “publish” button that turns your collection into a website at a stable URL with a custom domain. The in-app docs view is visible to people who already have Bruno installed and have cloned the collection, which is exactly the audience that needs docs the least.

So teams improvise. Common workarounds include exporting the collection or an OpenAPI file and feeding it into a separate static-docs generator, wiring up a docs site in CI, or maintaining a hand-written README that someone updates by memory. These can work, but they add a build pipeline to maintain and a second place where information can drift. The documentation is no longer a first-class output of the tool you test with; it’s a side project.

The docs-as-code principle

Tcleaner way to think about this, and it’s one Bruno users already half-believe: treat your documentation as a product of your specification, not a separate artifact.

In a docs-as-code workflow, your API is described once in a machine-readable spec, typically OpenAPI. That spec lives in Git, gets reviewed in pull requests, and acts as the contract. Documentation, mock servers, and client SDKs are all generated from it. When the contract changes, the change is reviewed in one place, and everything downstream follows.

The advantage is that there’s no separate “update the docs” task to forget. The docs are a rendering of the spec. If the spec is right and reviewed, the docs are right. This is the principle Bruno gestures at by keeping collections in Git, but it stops short of the publishing step.

Generate and host docs from your spec instead

This is the gap Apidog is built to close. Apidog keeps the same spec-centered, Git-friendly mental model, then adds the piece Bruno leaves out: it generates an interactive, hosted documentation site directly from your spec, no separate build pipeline required.

Point Apidog at your OpenAPI spec and it produces a documentation portal automatically. The result is:

Because the same spec also drives Apidog’s testing and mocking, you’re not maintaining three descriptions of one API. You describe it once and reuse it.

Walkthrough: from spec to shareable URL

Here’s the short version of publishing docs from an OpenAPI spec.

Step Action Result
1 Import or write your OpenAPI spec in Apidog Endpoints, schemas, and examples populate automatically
2 Open the project’s documentation settings Docs are generated from the spec, ready to configure
3 Choose visibility and (optionally) a custom domain Docs are public, private, or password-protected
4 Publish A live, hosted docs site is created at a stable URL
5 Share the link Consumers read the docs and run “try it” requests

If you already have a Bruno collection, you can convert it to OpenAPI first, then import that spec. From there the publishing step is the same. The point is that generating and hosting the docs is a has, not a pipeline you assemble yourself.

Keeping docs in sync as the spec changes

A docs URL is only useful if it stays accurate. The failure mode with improvised setups is that someone ships an endpoint change and forgets the docs.

When docs are generated from the spec, that risk shrinks. You edit the spec, the spec change goes through review like any other code change, and the published docs reflect the new state. There’s no parallel document to remember. Add a field to a response schema and it appears in the docs; deprecate an endpoint and the docs say so. The work you already do to keep the contract correct is the same work that keeps the docs correct.

This is the practical payoff of the docs-as-code principle: correctness becomes a side effect of a workflow you’d want anyway, rather than a separate chore that depends on discipline.

FAQ

Can Bruno generate and host public API documentation?

Bruno provides readable .bru collection files and an in-app Markdown docs view, both reviewed in Git. It does not include a built-in, hosted, auto-generated public docs portal with a shareable URL. To publish public docs from Bruno, teams typically export a spec and run a separate static-docs generator, which adds a pipeline to maintain.

How do I get a shareable docs URL from my API?

Describe your API in an OpenAPI spec, then use a tool that generates hosted docs from it. In Apidog you import the spec, configure visibility, optionally attach a custom domain, and publish. The output is a live documentation site at a stable URL, with an interactive “try it” panel, that you can share directly.

Do I have to abandon my Bruno collections to publish docs?

No. You can convert an existing Bruno collection to OpenAPI and import that spec into a docs tool. Your endpoints, schemas, and examples carry over, and you keep the spec under version control. The migration is at the spec layer, so the docs-as-code habits you built with Bruno still apply.

button

Explore more

How Do You Sync an OpenAPI Spec to GitHub Two Ways?

How Do You Sync an OpenAPI Spec to GitHub Two Ways?

Step-by-step: connect a repo, edit OpenAPI YAML, and two-way sync your spec to GitHub or GitLab with Apidog Spec-First Mode. With screenshots.

2 June 2026

Does Bruno Have a Mock Server? (And What to Use Instead)

Does Bruno Have a Mock Server? (And What to Use Instead)

Bruno has no built-in mock server. Here are the workarounds, and how to spin up a mock server straight from your OpenAPI spec instead.

2 June 2026

How Do You Version-Control an OpenAPI Spec With Git?

How Do You Version-Control an OpenAPI Spec With Git?

Version-control your OpenAPI spec like code: branching strategies, pull-request review of spec changes, and CI validation, done in Apidog.

2 June 2026

Practice API Design-first in Apidog

Discover an easier way to build and use APIs