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

# JobClient.submit

```python theme={"system"}
def JobClient.submit(
  job_name: str,
  root_task_or_tasks: Task | list[Task],
  cluster: ClusterSlugLike | list[ClusterSlugLike] | None = None,
  max_retries: int = 0
) -> Job
```

Submit a job.

## Parameters

<ParamField path="job_name" type="str">
  The name of the job.
</ParamField>

<ParamField path="root_task_or_tasks" type="Task | list[Task]">
  The root task or root tasks for the job. Root tasks execute first and can submit subtasks to compose the workflow.
</ParamField>

<ParamField path="cluster" type="ClusterSlugLike | list[ClusterSlugLike] | None">
  The [cluster slug](/workflows/concepts/clusters#managing-clusters) or cluster object for the root task. When submitting multiple root tasks, pass one cluster or a list with one cluster per task. If not provided, the default cluster is used.
</ParamField>

<ParamField path="max_retries" type="int">
  The maximum number of [retries](/workflows/concepts/tasks#retry-handling) for the root task or tasks. Defaults to 0.
</ParamField>

<RequestExample>
  ```python Python theme={"system"}
  from my_workflow import MyTask

  job = job_client.submit(
      "my-job",
      MyTask(
        message="Hello, World!", 
        value=42,
        data={"key": "value"}
      ),
  )
  ```
</RequestExample>
