> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/aistore/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/aistore/_mcp/server.

# aistore.sdk.request_executor

## Module Contents

### Classes

| Name                                                               | Description                                                                            |
| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------- |
| [`RequestExecutor`](#aistore-sdk-request_executor-RequestExecutor) | Executes HTTP requests without retry wrapping against a configured AIS endpoint over a |

### API

```python
class aistore.sdk.request_executor.RequestExecutor(
    base_url: str,
    session_manager: aistore.sdk.session_manager.SessionManager,
    token: str = '',
    timeout: typing.Optional[typing.Union[float, typing.Tuple[float, float]]] = None
)
```

Executes HTTP requests without retry wrapping against a configured AIS endpoint over a
provided `SessionManager`.

**Parameters:**

Fully-qualified endpoint URL including the API
version prefix (e.g. `https://proxy/v1`).

Shared per-process session pool.

Bearer token added as the Authorization header
when set.

Request timeout in seconds; a single float.
for both connect/read timeouts (e.g., 5.0), a tuple for separate connect/read timeouts (e.g., (3.0, 10.0)),
or None to disable timeout.

Configured endpoint base URL (already including `/v1`).

Shared `SessionManager` used to acquire the per-process session.

Default request timeout applied when caller does not override.

Current bearer token.

```python
aistore.sdk.request_executor.RequestExecutor._merge_headers(
    headers: typing.Optional[typing.Dict[str, typing.Any]]
) -> typing.Dict[str, typing.Any]
```

```python
aistore.sdk.request_executor.RequestExecutor._send(
    method: str,
    url: str,
    headers: typing.Optional[typing.Dict[str, typing.Any]],
    kwargs = {}
) -> requests.Response
```

```python
aistore.sdk.request_executor.RequestExecutor.request(
    method: str,
    path: str,
    headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
    kwargs = {}
) -> requests.Response
```

Send `method` to `&lt;base_url&gt;/&lt;path&gt;`.

**Parameters:**

HTTP method (GET, POST, ...).

Path appended to `base_url` (leading slash optional).

Caller-supplied headers; the
AIS default Content-Type, User-Agent and Authorization headers
are merged on top and will override.

Additional kwargs forwarded to `requests.Session.request`
(`params`, `data`, `json`, `stream`, `timeout`, ...).

```python
aistore.sdk.request_executor.RequestExecutor.request_absolute(
    method: str,
    url: str,
    headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
    kwargs = {}
) -> requests.Response
```

Send `method` to an absolute `url` (skip the `base_url` join).

Used by callers that have already resolved the full URL (e.g. the
manual HTTPS redirect path in `RequestClient`, or a one-shot endpoint
override).