> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usebruno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

Bruno is a Git-friendly, local-first, open-source API client designed for developers. This guide will take you from the basics to more advanced features, helping you build a strong understanding of Bruno.

## Prerequisites

* A basic understanding of HTTP and REST
* [Bruno installed](https://www.usebruno.com/downloads) (v3.x)
* **[Git](https://git-scm.com/install/)** (Needed for collaboration via Git)
* **[Node.js](https://nodejs.org/en/download/)** (Needed for the CLI workflow)

## Getting started

You can refer to the **[Bruno Starter Guide](https://github.com/bruno-collections/bruno-starter-guide)** collection for solutions:

**Fetch in Bruno** button to open the collection in Bruno, **or** git clone the repository [Bruno Starter Guide](https://github.com/bruno-collections/bruno-starter-guide).

<Tip>
  Use the **[Bruno Starter Guide](https://github.com/bruno-collections/bruno-starter-guide)** collection as a reference solution while following this guide. If you get stuck at any step, open the collection to see the expected request setup.
</Tip>

<div className="flex justify-center my-10">
  <a href="https://fetch.usebruno.com?url=https%3A%2F%2Fgithub.com%2Fbruno-collections%2Fbruno-starter-guide.git" target="_blank" rel="noopener noreferrer">
    <img src="https://fetch.usebruno.com/button.svg" alt="Fetch in Bruno" style={{ width: '160px', height: '40px' }} width="160" height="40" noZoom />
  </a>
</div>

Work through the challenges **in order**. Each step assumes the previous one.

***

## 1. Create a collection

**Objective:** Create a collection (sequence of requests) to store your API requests.

1. Open Bruno (workspace home).
2. Click the **+** icon (top-left) → **Create collection**.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/01-create-a-collection/01-click-icon-to-create-collection.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=3d753b284bf12efb0bc1c4288bb4d18c" alt="click-icon" width="2602" height="950" data-path="images/screenshots/quick-start/01-create-a-collection/01-click-icon-to-create-collection.webp" />

3. Enter a name **Bruno Starter Guide** (click on settings icon for advanced options) and choose the desired folder on your system.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/01-create-a-collection/02-name-collection.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=4f18db8b1a7bcf5a8345e3d50a8733bf" alt="name-collection" width="2602" height="950" data-path="images/screenshots/quick-start/01-create-a-collection/02-name-collection.webp" />

4. Select file format (YAML or BRU -> YAML recommended) and click **Create**.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/01-create-a-collection/03-store-collection.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=39add063144e8473900ee78798eaea67" alt="store-collection" width="2602" height="1104" data-path="images/screenshots/quick-start/01-create-a-collection/03-store-collection.webp" />

Congratulations! You have successfully created your first collection. The UI should look like this:

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/01-create-a-collection/04-after-collection.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=46a5ac5591450cb4fa8dab08146b5296" alt="after-collection" width="2602" height="1580" data-path="images/screenshots/quick-start/01-create-a-collection/04-after-collection.webp" />

**Success Criteria:**

* Collection is visible in the sidebar with name **Bruno Starter Guide**.
* Collection is created with the desired file format (YAML recommended).

***

## 2. Create a request

**Objective:** Create and execute your first request from the collection.

1. Click the collection context menu (...) → create a **New Request**.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/02-create-a-request/01-new-request.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=6bfc372719ef84b412dc7595d9ddf045" alt="create-request" width="2602" height="1102" data-path="images/screenshots/quick-start/02-create-a-request/01-new-request.webp" />

2. Select:

* `type` HTTP - (GraphQL, gRPC, WebSocket, or cURL is also supported)
* `Request Name` as `01-github-api`
* `URL` as `https://api.github.com/users/usebruno`.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/02-create-a-request/02-name-api.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=162b4e4b8b0e93592787bbceeaf4b634" alt="name-api" width="2602" height="1102" data-path="images/screenshots/quick-start/02-create-a-request/02-name-api.webp" />

3. Send the request by clicking the arrow button or pressing Cmd/Ctrl + Enter.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/02-create-a-request/03-execute-req.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=8d624d06c32c5af377b67e55633b1e6f" alt="execute-request" width="2602" height="1146" data-path="images/screenshots/quick-start/02-create-a-request/03-execute-req.webp" />

You have successfully sent your first request. The UI should look like this:

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/02-create-a-request/04-after-req.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=7cdce64242a9e50a0bf4c6625d8580c1" alt="after-request" width="2602" height="1578" data-path="images/screenshots/quick-start/02-create-a-request/04-after-req.webp" />

**Success Criteria:**

* Status is **200** (Green text - 200 OK)
* Response body with details of the `usebruno` user.

***

## 3. Send a request with data

**Objective:** Create a request with **POST** method and send data with API request.

1. Create a new request with:
   * Request type as **HTTP**
   * Request name as `02-echo-bru`
   * method as **POST**
   * URL as `https://echo.usebruno.com`

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/03-send-a-request-with-data/01-create-echo-bru.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=a0fbdb8b0398db8423b50719a4a8e6a1" alt="create-request-with-data" width="2602" height="950" data-path="images/screenshots/quick-start/03-send-a-request-with-data/01-create-echo-bru.webp" />

2. Go to the **Body** tab and select → **JSON** as an option

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/03-send-a-request-with-data/02-select-json-body-option.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=0465e060fbdf934c49956d17baf206d7" alt="select-json-as-body" width="2602" height="1140" data-path="images/screenshots/quick-start/03-send-a-request-with-data/02-select-json-body-option.webp" />

3. Add the following JSON data to the body of the request:

```json theme={null}
{
  "title": "Bruno",
  "msg": "Loved by developers. Built for developers."
}
```

4. Execute the request by clicking the arrow button or pressing Cmd/Ctrl + Enter.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/03-send-a-request-with-data/03-send-json-data.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=aed50511124c957e441f244f5f66d7a7" alt="Send data to the API" width="2602" height="1140" data-path="images/screenshots/quick-start/03-send-a-request-with-data/03-send-json-data.webp" />

You have successfully sent **JSON** data to the API. This is Bruno's echo endpoint, so you will receive the same data in the response.

**Success Criteria:**

* JSON data is sent to the API.
* Response body contains the same JSON data.

***

## 4. Create an environment

**Objective:** Create an environment variable to store a **URL** and reuse it with `{{baseURL}}`.

1. Open the **Environments** settings (top-right — **No environment**).

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/04-create-env/01-no-environment.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=678d82eda35b500d708d835e6de6ae46" alt="no-environment" width="2602" height="992" data-path="images/screenshots/quick-start/04-create-env/01-no-environment.webp" />

2. Click the **Create** button in the **Collection** section.

3. Name the environment `local` in the environments popup

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/04-create-env/02-create-local-environment.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=ab9e069d5bd27009f06fbf85b85fc45a" alt="create-environment" width="2602" height="992" data-path="images/screenshots/quick-start/04-create-env/02-create-local-environment.webp" />

4. Add the following variable to the environment:
   * **Name:** `baseURL`
   * **Value:** `https://echo.usebruno.com`

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/04-create-env/03-add-key-value.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=68e9448a8258f6d17f53f8c6ab81db4a" alt="add-key-value-to-environment" width="2602" height="992" data-path="images/screenshots/quick-start/04-create-env/03-add-key-value.webp" />

5. Click the **Save** button.

6. Go back to `02-echo-bru` request and set the `URL` to `{{baseURL}}` and select the `local` environment from the environment dropdown.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/04-create-env/04-after-baseurl.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=4c13a47ffef7599378743064e66eedaa" alt="after-baseur" width="2602" height="992" data-path="images/screenshots/quick-start/04-create-env/04-after-baseurl.webp" />

You have successfully created your first environment variable and reused it in the request. Bruno supports multiple types of variables; read more about them: [Environment variables](/variables/overview)

**Success Criteria:**

* Environment is created with the name `local`.
* Environment variable `baseURL` is added with the value `https://echo.usebruno.com`.
* Request `02-echo-bru` is executed successfully with the `URL` set to `{{baseURL}}`
* Response status is **200**.

***

## 5. Write a test case

**Objective:** Write an assertion and test script to validate the response of the request.

1. Open your **02-echo-bru** request.
2. Go to the **Assert** tab and enter the following details:

| Expression       | Operator | Value   |
| ---------------- | -------- | ------- |
| `res.status`     | `equals` | `200`   |
| `res.body.title` | `equals` | `Bruno` |

3. Execute the request and go to the **Tests** tab in the response section to confirm the assertion passes (green).

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/05-write-test-case/01-write-assert.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=bf01b14472467b51ee83fa4ddcda7b27" alt="write-assertion" width="2596" height="910" data-path="images/screenshots/quick-start/05-write-test-case/01-write-assert.webp" />

4. Go to the **Tests** tab in the request section and copy and paste the snippet below:

```javascript theme={null}
test("body has title", function () {
  expect(res.getBody()).to.have.property("title");
  });

test("200 status code", function () {
  expect(res.getStatus()).to.eql(200);
});
```

5. Execute the request (Cmd/Ctrl + Enter) and confirm tests pass (green).

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/05-write-test-case/02-write-test-case.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=438e3099266ea2e1e316f5d9e7c41881" alt="write-test-case" width="2600" height="910" data-path="images/screenshots/quick-start/05-write-test-case/02-write-test-case.webp" />

**Success Criteria:**

* **Assert** and **Tests** pass (green) without any errors.

Read more about test and assertions: [Tests introduction](/testing/tests/introduction)

***

## 6. Write a script

**Objective:** Send request with pre-request script to set the body of the request.

<Info>
  `req` object is only available in pre-request script.
</Info>

1. Create a new request with:
   * Request type as **HTTP**
   * Request name as `03-script-request`
   * method as **POST**
   * URL as `https://echo.usebruno.com`

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/06-write-script/01-create-script-req.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=af1470e61b85d1f6b7179d161744d6ad" alt="create-script-req" width="2600" height="924" data-path="images/screenshots/quick-start/06-write-script/01-create-script-req.webp" />

2. Go to the **Script** → **Pre-request** tab and enter the snippet below:

```javascript theme={null}
req.setBody({
  "name":"<your name>",
  "msg":"<your message>"
})

req.setHeader("Content-Type", "application/json");
req.setBody(body);
console.log(req.getName())
```

3. Execute the request and verify that the response body matches the body of the request.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/06-write-script/02-after-script.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=9de87ade24b8e199c1dee05d9b12feeb" alt="after-script" width="2600" height="1586" data-path="images/screenshots/quick-start/06-write-script/02-after-script.webp" />

Open **Dev Tools** from the bottom-right corner and you will see the console output of the script.

Congratulations, you have successfully written a script to set the body of the request with header values and console logs visible in **Dev Tools**.

**Success Criteria:**

* Script is executed successfully and console output is visible in the **Dev Tools**.
* Response body is set to the body of the request with `req.setBody()` function.
* Header is set to the json content type with `req.setHeader()` function.

Read more about script: [JavaScript Reference](/testing/script/javascript-reference)

***

## 7. Authentication

**Objective:** Send a request with authentication to the API.

1. Create a new request with:
   * Request type as **HTTP**
   * Request name as `04-auth-request`
   * method as **GET**
   * URL as `https://httpbin.org/basic-auth/usebruno/1234`

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/07-authentication/01-create-auth-req.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=be5760a75d99ec139d36300a34873567" alt="create-auth-req" width="2600" height="982" data-path="images/screenshots/quick-start/07-authentication/01-create-auth-req.webp" />

2. Go to request **Auth** tab and select **Basic Auth** from the Auth Type dropdown list.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/07-authentication/02-select-basic-auth.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=6213be53083851228fd0dda96380555b" alt="select-basic-auth" width="2600" height="1052" data-path="images/screenshots/quick-start/07-authentication/02-select-basic-auth.webp" />

3. Enter the username and password as `usebruno` and `1234` respectively.
4. Execute the request (Cmd/Ctrl + Enter).

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/07-authentication/03-enter-password.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=4a00dd248be1b51d25849dff5d5b1d1d" alt="enter-password" width="2600" height="1052" data-path="images/screenshots/quick-start/07-authentication/03-enter-password.webp" />

You'll see `authenticated` set to `true` in the response body.
You have successfully sent a request with authentication to the API.

**Success Criteria:**

* Authentication is set to Basic Auth with the username and password.
* Response body contains `authenticated` set to `true`.

Read more about authentication: [Authentication](/auth/overview)

## 8. Collection Runner

**Objective:** Run all requests in the collection using collection runner.

1. Go to the collection context menu (...) and click **Run**.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/08-collection-run/01-select-run.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=eb2d8d03cbd90cca78962eac94810e1c" alt="select-run" width="2600" height="1128" data-path="images/screenshots/quick-start/08-collection-run/01-select-run.webp" />

2. Click on **Configure requests to run** and select all requests in the collection.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/08-collection-run/02-config-req.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=ad0921f9214cefde0a59cab2f67f8afd" alt="config-req" width="2600" height="1128" data-path="images/screenshots/quick-start/08-collection-run/02-config-req.webp" />

3. Click **Run Selected Requests** button to start the run.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/08-collection-run/03-run-select-req.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=63e9fd6ad2b47dc6a210b603254fb495" alt="run-select-req" width="2600" height="1128" data-path="images/screenshots/quick-start/08-collection-run/03-run-select-req.webp" />

You'll see all requests running one by one in the collection runner.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/08-collection-run/04-after-run.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=fe15e2eb9f226759efb698902d7d0bd0" alt="after-run" width="2600" height="1028" data-path="images/screenshots/quick-start/08-collection-run/04-after-run.webp" />

**Success Criteria:**

* All requests are running one by one in the collection runner.
* Response status is **200** for all requests.
* Response body contains the data of the request.

Read more about collection runner: [Collection Runner](/testing/automate-test/data-driven-testing)

***

## 9. API Documentation

**Objective:** Create automated API documentation for the collection.

1. Go to collection context menu (...) and select **Generate Docs**.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/09-api-docs/01-api-docs.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=2636389cba3953d38581da71cc41712f" alt="collecting-settings" width="2600" height="1116" data-path="images/screenshots/quick-start/09-api-docs/01-api-docs.webp" />

2. Click on the **Generate** button to generate automated API documentation.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/09-api-docs/02-generate-docs.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=5721a94f46024450143275c225b6e89a" alt="generate-docs" width="2600" height="972" data-path="images/screenshots/quick-start/09-api-docs/02-generate-docs.webp" />

3. Save the documentation file (html) to your desired location.

You have successfully generated API documentation for the collection. The generated documentation is in html format and can be opened in any browser.

You can share it with your team or deploy it to your own server.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/09-api-docs/03-after-generated-docs.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=64e41bc83972f36eba12add824de3391" alt="after-generate-docs" width="2846" height="1708" data-path="images/screenshots/quick-start/09-api-docs/03-after-generated-docs.webp" />

Click on **Try** button to open it as API playground.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/09-api-docs/04-after-try-playground.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=21326e9967d579fe7ce14b537ef4c285" alt="try-docs" width="2846" height="1698" data-path="images/screenshots/quick-start/09-api-docs/04-after-try-playground.webp" />

**Success Criteria:**

* API documentation is created for the collection.
* HTML file is generated with the content of the collection.

Read more about API documentation: [API Documentation](/api-docs/overview)

## 10. Git collaboration

**Objective:** Initialize Bruno collection as a Git repository, push it to GitHub.

<Info>
  **Bruno 3.0+:** Git basic UI features are available in the open-source app. See [Git integration (GUI)](/git-integration/using-gui/intro).
</Info>

1. Open the **Git** panel (top bar) and click **Initialize** to turn the collection folder into a repository.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/10-git-collab/01-init-git.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=67790df0c5dd0658695d00fe328009f8" alt="Initialize-git" width="2596" height="1268" data-path="images/screenshots/quick-start/10-git-collab/01-init-git.webp" />

2. Stage and commit your changes from the Git panel (or use `git add` and `git commit` commands in a terminal).

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/10-git-collab/02-commiit-changes.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=1a41f2a73d9e84e9b13cf6f8c79f0726" alt="stage-changes" width="2596" height="1574" data-path="images/screenshots/quick-start/10-git-collab/02-commiit-changes.webp" />

3. Go to [GitHub](https://github.com/)
   * Create an empty repository (click on the **+** button and select **New repository**)
   * Enter name **bruno-starter-guide** and other details and copy the HTTPS URL
   ```bash theme={null}
   https://github.com/<<yourusername>>/bruno-starter-guide.git
   ```
4. Go to collection **Git** panel and click on **Remotes** from bottom-left corner.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/10-git-collab/03-add-remotes.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=72c750c05575590049d8c96aea0da5d0" alt="add-remotes" width="2596" height="1574" data-path="images/screenshots/quick-start/10-git-collab/03-add-remotes.webp" />

5. Click the **Add Remote** button and enter the following details:
   * **Remote Name:** `origin`
   * **URL:** `https://github.com/<<yourusername>>/bruno-starter-guide.git`

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/10-git-collab/04-add-remote.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=81ffe21f6c67d9d80a3191d414e60e4d" alt="add-remote" width="2596" height="826" data-path="images/screenshots/quick-start/10-git-collab/04-add-remote.webp" />

6. Push your default (main) branch to the remote repository.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/10-git-collab/05-push-changes.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=d02f1cceceb2429d4af43f1b236bb8e1" alt="push-changes" width="2596" height="1170" data-path="images/screenshots/quick-start/10-git-collab/05-push-changes.webp" />

Go to your remote repository and you will see the collection is pushed to the remote repository. You can share it with your team and collaborate on it.

**Success Criteria:**

* Git repository is initialized for the collection.
* Remote repository is created and connected.
* Collection is pushed to the remote repository.

More: [Using the Git UI](/git-integration/using-gui/intro)

***

## 11. Run a request through the CLI

**Objective:** Install **Bruno CLI** and run all requests in the collection from a terminal.

<Note>
  Make sure you have Node.js installed on your system.
</Note>

1. Install Bruno CLI:

```bash theme={null}
npm install -g @usebruno/cli
```

2. Open a terminal and navigate to the **Bruno Starter Guide** collection (folder with `bruno.json`).

```bash theme={null}
cd path/to/bruno-starter-guide
```

3. Run all requests:

```bash theme={null}
bru run
```

4. Optional: run with a named environment, e.g.:

```bash theme={null}
bru run --env local
```

You will see all requests running one by one in the collection runner, along with an execution summary table showing metrics and results.

**Success Criteria:**

* All requests are running one by one in the collection runner.
* Response status is **200** for all requests.
* Response body contains the data of the request.

More: [Bruno CLI](/bru-cli/overview)

***

## 12. OpenAPI specification

**Objective:** Export your collection as an **OpenAPI** document (shareable API description).

1. Open the collection context menu (...) and select the **Share** option.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/12-oas/01-select-share.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=478ed6e865de9a47fd72b1f3eafc0635" alt="select-oas" width="2596" height="1264" data-path="images/screenshots/quick-start/12-oas/01-select-share.webp" />

2. Go to the **Export** tab, select **OpenAPI Specification** and click the **Proceed** button.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/12-oas/02-openapi-export.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=1d7b3925463083d29043df0bed30498a" alt="export-openapi" width="2596" height="1356" data-path="images/screenshots/quick-start/12-oas/02-openapi-export.webp" />

3. Enter the name of the file and location, then click the **Create** button.

<img src="https://mintcdn.com/bruno-a6972042/mu42fkKkCIlMqx4o/images/screenshots/quick-start/12-oas/03-save-oas.webp?fit=max&auto=format&n=mu42fkKkCIlMqx4o&q=85&s=4c13d130d71e19ba3ea49e8af59a6297" alt="save-oas" width="2596" height="940" data-path="images/screenshots/quick-start/12-oas/03-save-oas.webp" />

You have successfully exported your collection as an OpenAPI document. The OpenAPI file is created with a `.yaml` extension and stored in your file system.

You can view and import the OpenAPI file in Bruno. Please refer to [OpenAPI Specification](/open-api/overview) for more details.

**Success Criteria:**

* OpenAPI file is created where you chose and opens without errors
* Exported OpenAPI file has a `.yaml` extension.

More: [OpenAPI Specification](/open-api/overview)

***

Congratulations on completing the Quick Start guide! You have learned the basics of Bruno and how to use it to create API requests. Feel free to dive into the advanced guides to learn more about Bruno.

* **Auth** — [Authentication](/auth/overview)
* **Secrets** — [.env and secret managers](/secrets-management/dotenv-file)
* **Git Collaboration** — [Git integration (GUI)](/git-integration/using-gui/intro)

***
