> ## 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.

# REST API request

export const BrunoButton = ({collectionUrl, width = 160, height = 40, className = '', style = {}}) => {
  const encodedUrl = encodeURIComponent(collectionUrl);
  const buttonUrl = `https://fetch.usebruno.com?url=${encodedUrl}`;
  return <div style={{
    display: 'flex',
    justifyContent: 'center',
    width: '100%',
    margin: '2rem 0',
    ...style
  }} className={className}>
      <a href={buttonUrl} target="_blank" rel="noopener noreferrer" style={{
    textDecoration: 'none',
    display: 'inline-block'
  }}>
        <img src="https://fetch.usebruno.com/button.svg" alt="Fetch in Bruno" width={width} height={height} noZoom style={{
    width: `${width}px`,
    height: `${height}px`,
    display: 'block',
    cursor: 'pointer'
  }} />
      </a>
    </div>;
};

Bruno enables you to send API requests using both HTTP and GraphQL protocols. You can include various details in the request, such as parameters, body, headers, and more, based on the API specifications.
You can select multiple HTTP methods such as `GET` and `POST` while working with HTTP protocol.

## Create new request

1. Create new request inside collection.

<img src="https://mintcdn.com/bruno-a6972042/K-YsMv4Crp6p2uFR/images/screenshots/get-started/bruno-basics/create_request/1-create-new-request.webp?fit=max&auto=format&n=K-YsMv4Crp6p2uFR&q=85&s=8d625f447cd813ec4fd27623fa8aaef9" alt="create request dialog" width="2480" height="1046" data-path="images/screenshots/get-started/bruno-basics/create_request/1-create-new-request.webp" />

2. Select **HTTP** as request type.
3. Provide **URL** and **Name** in the input box.
4. Click on **Create** button.

<img src="https://mintcdn.com/bruno-a6972042/K-YsMv4Crp6p2uFR/images/screenshots/get-started/bruno-basics/create_request/2-create-request.webp?fit=max&auto=format&n=K-YsMv4Crp6p2uFR&q=85&s=832df54847e4c75bfeb4a0780b95fcfc" alt="create-new-request" width="2480" height="1046" data-path="images/screenshots/get-started/bruno-basics/create_request/2-create-request.webp" />

Once you create the new request, you can execute it by clicking the arrow button or pressing Cmd + Enter. After executing the request, the response from the server will be displayed in the Response tab.

<img src="https://mintcdn.com/bruno-a6972042/k_zr3I3gL1BrG0vM/images/screenshots/send-request/rest/create-new-request.webp?fit=max&auto=format&n=k_zr3I3gL1BrG0vM&q=85&s=53179e68d91cdacd7741df6965078181" alt="create-new-request" width="2480" height="756" data-path="images/screenshots/send-request/rest/create-new-request.webp" />

## Select multiple request methods

In Bruno, the **GET** method is set as the default HTTP method for new requests. However, you can select other HTTP methods (such as **POST**, **PUT**, **DELETE**, etc.) based on your API requirements to send data.

<img src="https://mintcdn.com/bruno-a6972042/uGT0Shya7KZFqFkD/images/screenshots/send-request/rest/various-http-method.webp?fit=max&auto=format&n=uGT0Shya7KZFqFkD&q=85&s=a70222950efb00c1cb91069c5d8e93de" alt="various-http-method" width="2480" height="1332" data-path="images/screenshots/send-request/rest/various-http-method.webp" />

## Custom HTTP Methods

Bruno supports custom HTTP methods beyond the standard ones (GET, POST, PUT, DELETE, etc.). This is useful for APIs that use non-standard methods like Vault's LIST method or other custom protocols.

### Adding a Custom HTTP Method

1. **Expand the HTTP method dropdown** in the request pane
2. Click **"Add Custom"** from the dropdown options
3. **Type your custom method name** in the input field (e.g., `LIST`, `PATCH`, `SEARCH`)

<img src="https://mintcdn.com/bruno-a6972042/k_zr3I3gL1BrG0vM/images/screenshots/send-request/rest/custom-http-methods.webp?fit=max&auto=format&n=k_zr3I3gL1BrG0vM&q=85&s=24c1da57282f1550cac7bf4bfe472236" alt="custom-http-method" width="2480" height="1008" data-path="images/screenshots/send-request/rest/custom-http-methods.webp" />

## Request Settings

Bruno provides advanced request execution options through the **Settings** tab in the request pane. You can configure per-request settings for:

* **Automatically Follow Redirects**: Control whether redirects should be followed automatically
* **Max Redirects**: Limit the number of redirects (e.g., max\_redirects: 3)
* **Request Timeout**: Set request timeout in milliseconds (e.g., timeout: 10000)

These settings override global configurations and persist per request. For detailed information, see [Request Settings](/send-requests/REST/request-settings).

<img src="https://mintcdn.com/bruno-a6972042/k_zr3I3gL1BrG0vM/images/screenshots/send-request/rest/request-settings-tab.webp?fit=max&auto=format&n=k_zr3I3gL1BrG0vM&q=85&s=f879158a5bbf98fc984ab29ab2f3ef96" alt="Request Settings Tab" width="2480" height="1164" data-path="images/screenshots/send-request/rest/request-settings-tab.webp" />

## Get Started with REST APIs

Explore our sample GitHub REST API collection to see practical examples and test different HTTP methods:

<BrunoButton collectionUrl="https://github.com/bruno-collections/github-rest-api-collection" width={160} height={40} />
