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

# HTTP Commands

> HTTP request commands for making HTTP/HTTPS requests to APIs and web services

HTTP commands enable you to make HTTP/HTTPS requests to APIs and web services. These commands are essential for fetching data from REST APIs, web services, and other HTTP-based endpoints.

## Overview

HTTP commands provide functionality for:

* Making GET, POST, PUT, DELETE, and other HTTP method requests
* Configuring request headers, query parameters, and request bodies
* Handling authentication and authorization
* Managing timeouts and error handling
* Processing HTTP responses

## Available Commands

<CardGroup cols={2}>
  <Card title="HTTP Request" icon="globe" href="/stream/commands/http/http-request">
    Make HTTP/HTTPS requests to APIs and web services
  </Card>
</CardGroup>

## Common Use Cases

* **API Integration**: Fetch data from REST APIs
* **Web Scraping**: Retrieve HTML content from web pages
* **Data Synchronization**: Pull data from external services
* **Authentication**: Handle API authentication flows
* **Webhook Processing**: Send data to webhook endpoints

## Command Parameters

HTTP commands typically support the following parameters:

| Parameter       | Type          | Description                                | Required             |
| --------------- | ------------- | ------------------------------------------ | -------------------- |
| **url**         | string        | The target URL for the HTTP request        | Yes                  |
| **method**      | string        | HTTP method (GET, POST, PUT, DELETE, etc.) | No (defaults to GET) |
| **headers**     | object        | HTTP headers to include in the request     | No                   |
| **body**        | string/object | Request body for POST/PUT requests         | No                   |
| **timeout**     | number        | Maximum wait time in milliseconds          | No                   |
| **queryParams** | object        | URL query parameters                       | No                   |

## Variable Support

HTTP commands support variable interpolation in URLs, headers, and request bodies:

```json theme={null}
{
  "command": "http-request",
  "params": {
    "url": "https://api.example.com/data?project=@{PROJECT_ID}",
    "headers": {
      "Authorization": "Bearer %{API_KEY}"
    },
    "timeout": 10000
  }
}
```

## Best Practices

* **Use Secrets for Credentials**: Always use `%{SECRET_NAME}` for API keys and passwords
* **Set Appropriate Timeouts**: Configure timeouts based on expected response times
* **Handle Errors**: Implement error handling for failed requests
* **Use Project Variables**: Leverage `@{PROJECT_ID}` and `@{RUN_ID}` for tracking
* **Validate Responses**: Always validate response structure before processing

## Related Commands

* [Parse Commands](/stream/commands/parse) - Parse HTTP response data
* [Validation Commands](/stream/commands/validation) - Validate HTTP responses
* [Sink Commands](/stream/commands/sink) - Send HTTP response data to destinations
