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

# HTTP request

> GET or POST an endpoint.

Calls an HTTP endpoint. Use **Headers** for auth tokens. GET ignores body. Secrets resolve at run time and never go to the model.

<h2 id="input">
  Input
</h2>

Inspector **Settings**. Empty-field rules for the Graph: [Previous nodes](/graph/previous-nodes). **Insert value** is on **URL**, **Headers**, and **Body**.

A new node starts with a sample GET URL you replace.

| Field                           | Required | Empty           | Notes                                                                                     |
| ------------------------------- | -------- | --------------- | ----------------------------------------------------------------------------------------- |
| **Method**                      | Yes      | —               | GET or POST.                                                                              |
| **URL**                         | Yes      | Fail            |                                                                                           |
| **Headers**                     | No       | —               | One header per line: `Name: value`. Example: `Authorization: Bearer '{{secret:api-key}}'` |
| **Body**                        | No       | Previous Result | POST only. GET ignores body.                                                              |
| **Require approval before run** | No       | —               | Graph node only. Hidden on an Agent Tool. [Details](#approval).                           |

<h2 id="approval">
  Require approval
</h2>

On a Graph node only: **Require approval before run**. It pauses the Workflow until you confirm or reject this request.

When a Run waits here, the node shows **Approval required** and a preview. For POST you can edit **Body**, then **Confirm** or **Reject**. A banner can say **Approval required on {name}. Open the node to confirm or reject.**

<h2 id="output">
  Output
</h2>

On the next node, **Previous nodes** lists **`HTTP request`: Result** (`{{HTTP request.text}}` while the name is unique).

| Output | In menu | Type | Next node gets                                                                    |
| ------ | ------- | ---- | --------------------------------------------------------------------------------- |
| Result | Yes     | Text | Response body. Empty success: `(empty {status} response)`. HTTP error: no Result. |
