Bruno stores API collections as plain text files — no cloud, no accounts. Here’s how to use it.

Creating Your First Request

Create a new collection (a folder on disk). Add a request: choose GET, enter a URL (e.g., https://jsonplaceholder.typicode.com/posts/1). Click the play button. The response appears in the right panel — body, headers, status code, and timing.

Environment Variables

Create an environment (e.g., “Development” and “Production”). Define variables like baseUrl. Use {{baseUrl}}/posts in your URLs. Switch environments to point at different servers instantly. Variables work in URLs, headers, and body.

Scripts

Bruno supports pre-request and post-response scripts:

Pre-request: Set dynamic headers, generate timestamps, create auth tokens.

Post-response: Extract data from responses, set variables for chaining, run assertions:

const json = res.getBody();
bru.setVar("userId", json.userId);

Assertions

The “Assert” tab lets you validate responses: status code equals 200, response time less than 1000ms, JSON body contains specific values. Run all assertions with one click.

Git-Friendly

Collections are plain text files. Commit them to Git alongside your code. Your team always has the latest API definitions. No export/import, no proprietary formats.