---
title: HTTP Put
source: https://docs.newrelic.com/docs/workflow-automation/setup-and-configure/actions-catalog/http/http-put
---

This page provides a comprehensive reference for http put available in the workflow automation actions catalog. These actions enable you to http put request operations.

## Prerequisites

Before using HTTP actions in workflow automation, ensure you have:

-   Target API endpoint URLs.
-   Any required authentication credentials (API keys, tokens, etc.).
-   Understanding of the API request/response formats.

> #### 💡 TIP
>
> HTTP actions support secret syntax for any header value, allowing you to securely pass sensitive data like API keys. See [secrets management](https://docs.newrelic.com/docs/workflow-automation/limitations-and-faq/workflow-best-practices#secure-credentials) for more information.

## Automatic request headers [#automatic-headers]

All HTTP requests performed by Workflow Automation automatically include the following headers:

| Header         | Format                                                                                                                               |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `X-Abuse-Info` | `Request sent by a New Relic WorkflowAutomation. {runId}`where `{runId}` is the workflow run ID                                      |
| `User-Agent`   | `NewRelic/WorkflowAutomation (region={region}; https://newrelic.com ; support@newrelic.com)`where `{region}` is the New Relic region |

## PUT a resource at a URL [#http-put]

Performs an HTTP PUT request to update data at an API endpoint.

> #### ⚠️ IMPORTANT
>
> If you need to pass sensitive data to an input, for example an `Api-Key` header, you can use values stored via the [secretsManagementCreateSecret](https://onenr.io/0KQXX6BmdQa) NerdGraph mutation.
>
> Example:
>
> ```json
> {
>   "inputs": [
>     {
>       "key": "headers",
>       "value": "{\"Api-Key\": \"${{ :secrets:NR_API_KEY }}\"}"
>     }
>   ]
> }
> ```

### Inputs

| Input Field   | Optionality | Type   | Description                                                                        |
| ------------- | ----------- | ------ | ---------------------------------------------------------------------------------- |
| **url**       | Required    | String | The target URL for the request. The scheme must be included: `https://example.com` |
| **urlParams** | Optional    | Map    | The query parameters to append to the URL. Takes a stringified JSON object.        |
| **headers**   | Optional    | Map    | The headers to add to the request. Takes a stringified JSON object.                |
| **body**      | Optional    | String | The request body.                                                                  |
| **selectors** | Optional    | List   | The selectors to get only the specified parameters as output.                      |

### Outputs

| Output Field     | Type    | Description                           |
| ---------------- | ------- | ------------------------------------- |
| **responseBody** | String  | The body of the response.             |
| **statusCode**   | Int     | The HTTP status code of the response. |
| **success**      | Boolean | Status of the request.                |
| **errorMessage** | String  | Failure reason as message.            |

### Example

| Workflow definition                                                                                                                                                                                                                                                                                                                                    | Inputs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Outputs                                                                                                                                                                                                                        |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ```yaml name: httpPutTest  steps:   - name: query     type: action     action: http.put     version: 1     inputs:       url: ${{ .workflowInputs.url }}       urlParams: ${{ .workflowInputs.urlParams }}       headers: ${{ .workflowInputs.headers }}       body: ${{ .workflowInputs.body }}       selectors: ${{ .workflowInputs.selectors }} ``` | ```yaml {   "inputs": [     {       "key": "url",       "value": "https://example.com"     },     {       "key": "headers",       "value": "{\"Content-Type\":\"application/json\"}"     },     {       "key": "urlParams",       "value": "{\"foo\": \"bar\"}"     },     {       "key": "body",       "value": "{\"foo\": \"bar\"}"     },     {       "key": "selectors",       "value": "[{\"name\": \"responseBody\", \"expression\": \".responseBody\"}, {\"name\": \"statusCode\", \"expression\": \".statusCode\"}]"     }   ] } ``` | ```yaml Success case:    {     "responseBody": "",     "statusCode": 200     "success": true   }  Failure case:   {     "errorMessage": "An unexpected error failed to call http post endpoint.",     "success": false   } ``` |
