> For the complete documentation index, see [llms.txt](https://docs.laminar.run/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.laminar.run/building-an-integration/keywords/lam.httprequest.md).

# lam.httpRequest

Learn more about the httpRequest Keyword

## Functionality

The `httpRequest` keyword makes an HTTP request to the specified endpoint with the given parameters. The response will be stored in the flow's response object. For multiple parallel requests, see [lam.httpRequests](/building-an-integration/keywords/lam.httprequests.md).

### Invocation

Data transformation must output:

```javascript
{
  "lam.httpRequest": {
    "method": "POST",
    "url": "https://api.example.com/endpoint",
    "pathParams": { /* optional */ },
    "queryParams": { /* optional */ },
    "headers": { /* optional */ },
    "body": { /* optional */ }
  }
}
```

| Key         | Description                          | Type   | Required |
| ----------- | ------------------------------------ | ------ | -------- |
| method      | HTTP method (GET, POST, PUT, DELETE) | String | Yes      |
| url         | Destination URL                      | String | Yes      |
| pathParams  | URL path parameters                  | Object | No       |
| queryParams | URL query parameters                 | Object | No       |
| headers     | HTTP headers                         | Object | No       |
| body        | Request body                         | Object | No       |

### Examples

```javascript
(payload) => {
  const { input } = payload;
  
  return {
    "lam.httpRequest": {
      "method": "POST",
      "url": "{{props.baseUrl}}/orders/{{orderId}}/items",
      "pathParams": {
        "orderId": input.orderId
      },
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer {{props.apiKey}}"
      },
      "body": {
        "quantity": input.quantity,
        "notes": input.notes
      }
    }
  };
}
```
