Creating a New Request
There are several ways to create a new request in Bruno:From the Sidebar
Right-click on a Collection or Folder
In the sidebar, right-click on the collection or folder where you want to create the request.
Select 'New Request'
Choose “New Request” from the context menu. You can also use the keyboard shortcut Cmd/Ctrl + N.
From the Collection Actions
Click the three-dot menu (IconDots) next to any folder and select “New Request” to create a request in that folder.
Quick Request Creation
Use theCreateUntitledRequest component to quickly create a temporary request for testing:
Untitled requests are transient and won’t be saved until you explicitly save them using Cmd/Ctrl + S.
Request Components
Each request in Bruno consists of several configurable components accessible through tabs in theHttpRequestPane:
Query URL
TheQueryUrl component allows you to configure your endpoint:
HTTP Methods
Bruno supports all standard HTTP methods:- GET: Retrieve resources
- POST: Create new resources
- PUT: Update entire resources
- PATCH: Partially update resources
- DELETE: Remove resources
- HEAD: Retrieve headers only
- OPTIONS: Get supported methods
Request Tabs
TheHttpRequestPane component provides organized tabs for request configuration:
Params Tab
Configure query parameters using theQueryParams component:
Parameter name (e.g.,
page, limit, filter)Parameter value. Supports variable interpolation with
{{variable}}.Toggle to enable/disable individual parameters without deleting them.
| Key | Value | Enabled |
|---|---|---|
| page | 1 | ✓ |
| limit | ✓ | |
| sort | created_at | ✗ |
Body Tab
TheRequestBody component supports multiple body types:
- JSON
- XML
- Form URL Encoded
- Multipart Form
- Text
- File
application/ld+json mode for syntax highlighting.Headers Tab
Configure HTTP headers using theRequestHeaders component:
Example Headers
Headers configured at the collection or folder level are inherited by child requests. You can override them at the request level.
Other Tabs
The request pane includes additional tabs for advanced configuration:- Auth: Authentication configuration (see Authentication)
- Vars: Request and response variables (see
Varscomponent) - Script: Pre-request and post-response scripts (see Scripts)
- Assert: Inline assertions using the
Assertionscomponent - Tests: JavaScript test suite (see Tests)
- Docs: Markdown documentation for the request
- Settings: Request-specific settings and tags
Organizing Requests
Folders
Organize related requests using folders:Create a Folder
Right-click a collection, select “New Folder”, and name it (e.g., “Authentication”, “Users”, “Posts”).
Nest Folders
Folders can be nested to create hierarchical structures. The
CollectionItem component handles rendering with proper indentation.Drag and Drop
TheCollectionItem component supports drag-and-drop:
- Drag requests between folders
- Reorder requests within a folder
- Move requests to different collections
Bruno uses React DnD for drag-and-drop functionality. Items can be dropped “adjacent” (before/after) or “inside” folders.
Sequence Ordering
Requests are automatically assigned aseq (sequence) number for ordering. The sidebar uses sortByNameThenSequence() to display items.
Request Examples
For HTTP requests, you can create response examples to document different scenarios:Create Example
Right-click a request and select “Create Example”. This uses the
CreateExampleModal component.Configure Example
Provide a name, description, and configure the expected response (status, headers, body).
Example in .bru file
Saving Requests
saveRequest action in providers/ReduxStore/slices/collections/actions handles saving requests to the filesystem.
Cloning Requests
Duplicate requests to create variations:Running Requests
Send requests using multiple methods:- Keyboard Shortcut
- Folder Run
sendRequest action uses the Axios HTTP client to execute requests and displays results in the ResponsePane.
Best Practices
Use Descriptive Names
Use Descriptive Names
Name requests clearly (e.g., “Create User”, “Get Orders by Date”) to make collections self-documenting.
Organize by Feature
Organize by Feature
Group related requests in folders by feature or API resource (e.g., “Users”, “Products”, “Orders”).
Leverage Inheritance
Leverage Inheritance
Configure common auth, headers, and scripts at the collection or folder level to avoid duplication.
Use Variables
Use Variables
Parameterize URLs, tokens, and values using
{{variables}} for flexibility across environments.Document with Examples
Document with Examples
Create response examples to document expected API behavior for different scenarios.
Next Steps
Request Types
Learn about REST, GraphQL, gRPC, and WebSocket requests
Authentication
Configure authentication methods for your requests
Scripts
Automate workflows with pre-request and post-response scripts
Tests
Write test assertions to validate API responses