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

# HTTP Request

> Make HTTP calls to any external API or web endpoint from an AgentVerse orchestration

# HTTP Request

The **HTTP Request** node makes HTTP calls to any external API or web endpoint. It supports all standard HTTP methods, custom headers, query parameters, multiple body formats, and a wide range of authentication types.

<img src="https://mintcdn.com/subverse-611dde60/UZLalX8VX2i72yfQ/images/agentverse/http-request-action-node.png?fit=max&auto=format&n=UZLalX8VX2i72yfQ&q=85&s=d2b3efd43e78665b3360824e3faabb54" alt="HTTP Request Node" width="794" height="1352" data-path="images/agentverse/http-request-action-node.png" />

***

## Use Cases

* Call a REST API that does not have a dedicated AgentVerse integration
* Interact with internal services or microservices
* Fetch data from a third-party API and pass it to downstream nodes
* Trigger webhooks on external platforms

***

## Node Reference

### Parameters

| Parameter                          | Type                 | Required | Description                                                                                  |
| ---------------------------------- | -------------------- | -------- | -------------------------------------------------------------------------------------------- |
| **Method**                         | Select               | Yes      | HTTP method: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, `HEAD`, `OPTIONS`                      |
| **URL**                            | String               | Yes      | The full URL of the endpoint                                                                 |
| **Send Headers**                   | Boolean              | No       | Enable to add custom request headers                                                         |
| **Send Query Parameters**          | Boolean              | No       | Enable to add query string parameters to the URL                                             |
| **Body Type**                      | Select               | No       | Format of the request body (for POST/PUT/PATCH)                                              |
| **Body**                           | String / JSON / Form | No       | The request body payload                                                                     |
| **Options — Timeout**              | Number               | No       | Request timeout in milliseconds (default: `30000`, max: `300000`)                            |
| **Options — Follow Redirects**     | Boolean              | No       | Whether to follow HTTP redirects (default: enabled)                                          |
| **Options — Ignore SSL Issues**    | Boolean              | No       | Skip SSL certificate verification (use with caution)                                         |
| **Options — Response Format**      | Select               | No       | How to parse the response: `autodetect`, `json`, `text`, or `base64` (default: `autodetect`) |
| **Options — Full Response**        | Boolean              | No       | Return status code, headers, and body instead of just the body (default: disabled)           |
| **Options — Ignore Response Code** | Boolean              | No       | Don't throw on 4xx/5xx — handle the error response yourself (default: disabled)              |

### Body Types

| Type                      | Description                                           |
| ------------------------- | ----------------------------------------------------- |
| `JSON`                    | Send body as `application/json`                       |
| `Form Data (URL Encoded)` | Send body as `application/x-www-form-urlencoded`      |
| `Form Data (Multipart)`   | Send body as `multipart/form-data` (for file uploads) |
| `Raw / Binary`            | Send raw string or binary body                        |

***

## Response Format

Use **Response Format** to control how the node parses the API response:

| Format       | When to use                                                 |
| ------------ | ----------------------------------------------------------- |
| `Autodetect` | Let the node choose based on the `Content-Type` header      |
| `JSON`       | Force parsing as JSON                                       |
| `Text`       | Return the response as a plain string                       |
| `Base64`     | Return binary data (images, PDFs, audio) as a Base64 string |

**Tip:** Choose `Base64` when you need to pass binary files to downstream nodes such as **Send Email** attachments or file upload actions.

## Output Data

By default, the node returns the parsed response body:

```json theme={null}
{
  "users": [
    { "id": 1, "name": "Alice" },
    { "id": 2, "name": "Bob" }
  ]
}
```

When **Full Response** is enabled:

```json theme={null}
{
  "statusCode": 200,
  "statusMessage": "OK",
  "headers": {
    "content-type": "application/json"
  },
  "body": { ... }
}
```

When **Response Format** is set to `Base64`:

```json theme={null}
{
  "data": "iVBORw0KGgoAAAANSUhEUgAAAA..."
}
```

Reference fields in downstream nodes:

```
{{ httpRequest.users[0].name }}
{{ httpRequest.statusCode }}
```

***

## Pagination

For APIs that return paginated results, enable **Pagination** under Options:

| Setting             | Description                                 |
| ------------------- | ------------------------------------------- |
| **Pagination Type** | `Page Number`, `Offset`, or `Cursor-Based`  |
| **Max Items**       | Stop paginating after this many total items |

***

## Related Nodes

* [Respond to Webhook](./respond-to-webhook) — Return an HTTP response from an orchestration
* [Conditions](./conditions) — Branch based on HTTP response status or body
* [Send Email](./email) — Attach binary data fetched via HTTP Request

<Tip>
  Combine **HTTP Request** (Base64 response format) with **Send Email** to fetch a document from an API and email it as an attachment.
</Tip>
