# HTTP request

Appelle n'importe quelle API HTTP externe. Le couteau suisse des intégrations.

## Vue d'ensemble

Le nœud HTTP Request fait une seule requête sortante, avec optionnellement un credential issu des credentials de votre espace. Le corps de réponse est écrit dans `last_output` et le code HTTP dans `ctx.http_status` pour permettre aux nœuds aval de brancher dessus.

Corps, en-têtes, URL et query strings supportent les `{placeholders}` du contexte. Le JSON est parsé automatiquement ; les réponses non-JSON sont renvoyées en texte brut.

Les URLs passent par le filtre réseau du workspace avant l'appel — loopback, plages internes et link-local sont rejetés.

## Configuration

| Champ | Description |
| --- | --- |
| `url` | URL cible. Supporte les `{placeholders}`. |
| `method` | `GET`, `POST`, `PUT`, `PATCH`, `DELETE`. Défaut `GET`. |
| `headers` | Objet ou chaîne JSON `nom → valeur`. Les valeurs supportent les placeholders. |
| `body` | Corps de requête. Parsé en JSON si possible, sinon envoyé en texte brut. Ignoré sur `GET`/`HEAD`. |
| `authType` | `none`, `bearerSecret`, `apiKeySecret`. |
| `credential_id` | Public id d'un credential enregistré. Prioritaire sur le secret local au nœud. |
| `apiKeyHeader` | Nom de l'en-tête pour le mode `apiKeySecret`. Défaut `X-API-Key`. |
| Timeouts / retries | 30 s par requête par défaut. Combinez avec un **While** + check de status pour du retry custom. |

Clés du contexte en sortie :

| Clé | Valeur |
| --- | --- |
| `last_output` | Corps de réponse (JSON stringifié si JSON, texte brut sinon). |
| `http_status` | Code HTTP numérique. |

## Exemple

POST JSON avec un bearer issu du credential store :

```
HTTP Request
  method: POST
  url: https://api.example.com/orders
  headers: {"Content-Type": "application/json"}
  body: {"customer_id": "{customer_id}", "total": {total}}
  authType: bearerSecret
  credential_id: cred_abc123
```

Brancher sur le statut :

```
HTTP Request → If/else (input.http_status >= 400) → Notifier ops
                                                 → (sinon) Continuer
```

## Pièges

- Le nœud ne suit **pas** les redirections. Ajoutez un nœud de suivi si votre endpoint répond 30x.
- Les réponses JSON sont resérialisées en chaîne dans `last_output`. Utilisez `{outputs.<node_id>.parsed.<champ>}` pour accéder à la forme structurée en aval.
- Préférez le picker de credential (`credential_id`) pour l'auth API. Si un nœud **Secret Lookup** en amont a chargé un secret autorisé, les headers/bodies peuvent utiliser `{secret.alias}` sans exposer ce secret comme sortie du nœud.
- L'URL est validée contre la politique réseau. Loopback, plages privées et services de métadonnées sont rejetés.
- Les credentials sont liés au propriétaire du workflow. Impossible de piocher dans les credentials d'un autre utilisateur depuis l'éditeur.

---

*Source: https://agentbuilder.systalink.sn/docs/node-http-request — human documentation.*
*Other language: [/docs-md/en/node-http-request.md](/docs-md/en/node-http-request.md).*
*Machine-readable index: [/llms.txt](/llms.txt).*
