---
sidebar:
  label: roboto.http.request
  order: 4
title: roboto.http.request
---
## Module Contents

### ALWAYS_SCRUBBED_HEADERS

```python
roboto.http.request.ALWAYS_SCRUBBED_HEADERS
```

`from roboto.http.request import ALWAYS_SCRUBBED_HEADERS`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/http/request.py#L23-L23)

Header names, lowercase, whose values are always scrubbed from rendered requests.

### BatchRequest

```python
class roboto.http.request.BatchRequest(/, **data: Any)
```

`from roboto import BatchRequest`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/http/request.py#L104-L107)

Bases: `pydantic.BaseModel`, `Generic[Model]`

Batched HTTP requests

**Parameters**

- **data** (`Any`)

**Attributes**

- **BatchRequest.requests** (`list[Model]`)

### HttpRequest

```python
class roboto.http.request.HttpRequest(
    url: str,
    method: str = 'GET',
    headers: Optional[dict[str, str]] = None,
    data: Any = None,
    retry_wait: Optional[roboto.http.retry.RetryWaitFn] = None,
    idempotent: bool = False,
)
```

`from roboto.http import HttpRequest`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/http/request.py#L27-L98)

**Parameters**

- **url** (`str`)
- **method** (`str`)
- **headers** (`Optional[dict[str, str]]`)
- **data** (`Any`)
- **retry_wait** (`Optional[roboto.http.retry.RetryWaitFn]`)
- **idempotent** (`bool`)

**Attributes**

- **HttpRequest.data** (`Any`) = `None`
- **HttpRequest.headers** (`dict`)
- **HttpRequest.idempotent** (`bool`) = `False`
- **HttpRequest.method** (`str`)
- **HttpRequest.retry_wait** (`roboto.http.retry.RetryWaitFn`)
- **HttpRequest.url** (`str`)

**Properties**

- **HttpRequest.body** (`bytes | None`): Return type: `Optional[bytes]`
- **HttpRequest.hostname** (`str`)

#### HttpRequest.append_headers()

```python
def append_headers(headers: dict[str, str]) -> None
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/http/request.py#L97-L98)

**Parameters**

- **headers** (`dict[str, str]`)

**Returns**

- `None`

#### HttpRequest.describe()

```python
def describe(scrub_headers: Collection[str] = ()) -> str
```

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/http/request.py#L57-L74)

Render the request for logging, with sensitive header values replaced by `*`.

**Parameters**

- **scrub_headers** (`Collection[str]`): Header names, compared case-insensitively, to scrub in addition to [`ALWAYS_SCRUBBED_HEADERS`](/reference/python-sdk/roboto/http/request#roboto.http.request.ALWAYS_SCRUBBED_HEADERS).

**Returns**

- `str`

### HttpRequestDecorator

```python
roboto.http.request.HttpRequestDecorator
```

`from roboto.http.request import HttpRequestDecorator`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/http/request.py#L101-L101)

### Model

```python
roboto.http.request.Model
```

`from roboto.http.request import Model`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/http/request.py#L21-L21)
