Skip to main content
OpenAPI Sync keeps your Bruno collection aligned with a remote OpenAPI/Swagger spec. It tracks changes locally, removes the manual effort of re-importing when the spec changes, and helps teams stay in sync.
Open Source edition allows 5 syncs per month. For unlimited syncs, you need Bruno Pro or Ultimate.

Connect to OpenAPI Sync

There are two ways to connect to OpenAPI Sync:
  1. Existing Collection
  2. New Import

Existing Collection

  1. Click on the context menu (···) in your collection.
  2. Select option OpenAPI (Beta).
Click context menu and select OpenAPI Sync
  1. You have two options:
    • Add URL – Enter the remote OpenAPI spec URL, or
    • Upload file – Upload an OpenAPI spec file from your machine.
Enter URL or upload file and connect
  1. Click Connect.

New Import

  1. Import collection with OpenAPI spec file or URL.
Import new collection with OpenAPI Sync
  1. Enable option Check for Spec Updates to automatically connect to OpenAPI Sync.
Enable Check for Spec Updates on import If you have the same endpoints in your OpenAPI spec and collection, you don’t need to sync. If the endpoints don’t match, then you have to perform Initial Sync changes with the collection. review and sync collection

OpenAPI Sync UI at a glance

The UI shows a summary of sync status: openapi sync ui at a glance

1. Overview

Your dashboard: summary of sync status, pending spec updates, and local collection changes. Shows last synced time and spec version (or title) so you know which spec version the collection is based on.

2. Collection Changes

Shows your local collection changes in Bruno:
  • Deleted – Endpoints or fields removed in your collection.
  • Added – Endpoints or fields added in your collection.
  • Modified – Endpoints or fields modified in your collection.
Only body, URL, params, and headers are tracked here. Tests, scripts, assertions, and request settings are not tracked. Auth config differences within the same auth mode (for example, changing an OAuth2 scope or token value) are not treated as drift. Only a change in auth mode is tracked as a modification. This means preserved auth values will not keep your collection in a permanent out-of-sync state. Collection Changes tab

3. Spec Updated

Shows when the remote spec has been updated and changes are pending. You can:
  • Sync collection – Apply the remote spec changes to your local collection
  • Skip All – Skip all the changes and continue with your local collection
  • Accept All – Accept all the changes
  • Keep Current – Keep the current changes
Spec Updated tab Click Confirm and Sync Collection to apply the remote spec changes to your local collection. Confirm and sync collection after sync updates
When you and the spec both changed the same field, Bruno keeps your value by default and surfaces the difference in the per-endpoint review so you can decide what to keep.

Sync vs Reset

OpenAPI Sync offers two ways to apply spec changes, each serving a different purpose.

Sync

Sync reconciles your collection structure with the spec while keeping the values you have entered. It does not overwrite your work. JSON body Fields that still exist in the spec keep your values. Fields the spec adds are inserted with the spec’s example or default value. Fields the spec removes are dropped. Variable references like {{baseUrl}} or {{token}} are preserved exactly as written. Params and headers Entries that still exist in the spec keep your value and enabled state. New spec entries are added. Entries the spec drops are removed. Form bodies (URL-encoded and multipart) Same rule as params, keyed on field name. Auth When your request and the spec share the same auth mode, all auth field values are preserved including OAuth2 URLs, scopes, grant type, API key placement, client credentials, and any variable references. Bruno does not overwrite these. When the auth mode differs, the auth fields update to match the new mode and the difference is surfaced as a modification in the review screen.

Reset

Reset is a per-endpoint action available on requests that have drifted from the spec. It replaces the spec-derived fields (URL, params, headers, body, auth) with the spec’s version. Your tests, scripts, and assertions are always kept. Use Reset when you want to deliberately discard local changes to a request and start fresh from the spec.

What the diff preview shows

The Spec Updates tab shows what your collection will look like after sync, not the raw spec. Fields you have already set to the correct value do not appear as changes. Only structural additions, removals, and auth mode differences are shown. This means reviewing a sync is straightforward: if a field appears in the diff, something actually changed.

What gets preserved across both Sync and Reset

  • Pre-request scripts
  • Post-response scripts
  • Tests and assertions
  • Request settings
The latest spec is also saved locally under collection/resources/spec/ so sync works offline.

Connection Settings

OpenAPI Sync checks for spec updates automatically every 5 minutes. You can control this setting as follows:
  1. Click the context menu (···) next to View spec.
Context menu next to View spec
  1. Select Edit connection settings.
Edit connection settings – auto check for updates In the connection settings you can enable or disable automatic checks, disconnect sync and adjust when Bruno looks for spec updates.

Inspect Spec

To view and inspect the OpenAPI spec:
  1. Click View spec on the top right-hand side of the OpenAPI Sync UI.
view openapu spec Its read only SwaggerUI-like interface to the OpenAPI spec. Please share your feedback or report issues here.