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

# HTTP Request

> Make API calls from a PHLO workflow — GET, POST, PUT, DELETE methods

The HTTP Request component makes requests to APIs. Optionally, the data returned by the API can be used in the child nodes connected to it.

## Options:

* **Request** Request URL and HTTP method are mandatory. HTTP methods supported are GET, POST, PUT, and DELETE.

Headers, Auth, Params, and Body are key-value pairs, with an option to bulk edit. Bulk edits must be specified in JSON format.

You can configure authorization mechanisms in the Auth tab. We support three kinds of authorization:

* Basic Auth (username an
* Bearer Token (JWT/OAuth)
* OAuth2

Parameters are added in a query string in the request URL. For example, Params \{"key1":"value1", "key2":"value2"} are added to the request URL as [https://example.com/path/to/resource?key1=value1\&key2=value2](https://example.com/path/to/resource?key1=value1\&key2=value2)

Body is applicable only for POST, PUT, and DELETE methods. The content types form-data, x-www-form-urlencoded, and application/json are supported body types.

* **Response** When you click on Fetch Response, Plivo makes an API request to fetch the response and the content type and stores the response. When response\_type is application/JSON, the keys in the response are available to configure in the child nodes.

## States:

The HTTP Request component is set to Success state when an HTTP response code between 200 and 300 is returned. Otherwise, the state is set to Failed.

## Variables:

* **content\_type** Content type of the response from the API. For application/jsoncontent, the data/keys in the response are available to configure in the child nodes.

* **status\_code** HTTP status code returned by the API. It’s set to 400 when the content\_type doesn’t match the response type, or when all keys in response format (for an application/JSON content) are not present in the response.

* **response** Response returned by the API. For application/JSON content, the data/keys in the response are available to configure in the child nodes.
