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

# Client

```python theme={"system"}
class Client(
    *,
    url: str = "https://api.tilebox.com",
    token: str | None = None,
    name: str | None = None,
    client_id: UUID | None = None,
    transport: Literal["grpc", "http1"] = "grpc",
)
```

Create a Tilebox workflows client.

## Parameters

**url** `str`

Tilebox API Url. Defaults to `https://api.tilebox.com`.

**token** `str | None`

The API key to authenticate with. If not set, the `TILEBOX_API_KEY` environment variable is used.

**name** `str | None`

Optional service name for workflow telemetry. If not set, the default service name is used.

**client\_id** `UUID | None`

Optional stable ID used to scope internal loggers. If not set, a random ID is generated.

**transport** `Literal["grpc", "http1"]`

Network transport to use for API requests. Defaults to `"grpc"`. Use `"http1"` to force the Connect protocol over HTTP/1.1 on networks that do not support gRPC over HTTP/2 correctly.

## Sub clients

The workflows client exposes sub clients for interacting with different parts of the Tilebox workflows API.

```python theme={"system"}
def Client.jobs() -> JobClient
```

A client for interacting with jobs.

```python theme={"system"}
def Client.clusters() -> ClusterClient
```

A client for managing clusters.

```python theme={"system"}
def Client.workflows() -> WorkflowClient
```

A client for managing workflows and workflow release deployments.

```python theme={"system"}
def Client.automations() -> AutomationClient
```

A client for scheduling automations.

## Logging

```python theme={"system"}
def Client.configure_logging(
    level: int | logging.Logger,
    runner_level: int | None = None,
) -> None
```

Configure which task and runner logs this client exports. See [`Client.configure_logging`](https://docs-old.tilebox.com/api-reference/python/tilebox.workflows/Client.configure_logging).

## Runners

```python theme={"system"}
def Client.runner(...) -> TaskRunner
```

A client is also used to instantiate runners. Check out the [`Client.runner` API reference](https://docs-old.tilebox.com/api-reference/python/tilebox.workflows/Client.runner) for more information.

```python Python theme={"system"}
from tilebox.workflows import Client

# read token from an environment variable
client = Client()

# or provide connection details directly
client = Client(
    url="https://api.tilebox.com",
    token="YOUR_TILEBOX_API_KEY",
    name="sentinel-2-runner",
)

# access sub clients
job_client = client.jobs()
cluster_client = client.clusters()
workflow_client = client.workflows()
automation_client = client.automations()

# or instantiate a runner
runner = client.runner(tasks=[...])
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.