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

# Beta.workflow v3.workflow

Local discovery of the complete workflow graph.

## Workflow Objects

```python theme={"dark"}
class Workflow()
```

Read-only graph snapshot loaded with the project.

Discovery is local. Refresh the project to load a new graph snapshot.

#### id

```python theme={"dark"}
@property
def id() -> UUID
```

Workflow identifier.

#### stages

```python theme={"dark"}
@property
def stages() -> Tuple[WorkflowStage, ...]
```

Every stage, including Start, routers and all terminal outcomes.

#### pathways

```python theme={"dark"}
@property
def pathways() -> Tuple[Pathway, ...]
```

All connections, in the order returned by the backend.

#### get\_task

```python theme={"dark"}
def get_task(*, id: Union[UUID, str]) -> "Task"
```

Fetch one current or historical task, subject to backend read permissions.

#### release\_tasks

```python theme={"dark"}
def release_tasks(tasks: Sequence[Task]) -> None
```

Release up to 1000 assignments and claims atomically; unavailable tasks raise StaleTaskError.

Already-unassigned tasks succeed. Sent requests are not replayed automatically.

#### get\_stage

```python theme={"dark"}
def get_stage(
        *,
        name: Optional[str] = None,
        id: Optional[Union[UUID, str]] = None,
        type_: Optional[Type[StageT]] = None) -> Union[WorkflowStage, StageT]
```

Find a stage by exact name or ID.

**Arguments**:

* `name` - Exact name. Duplicate names require ID lookup.
* `id` - Unique stage identifier, as a UUID or string.
* `type_` - Expected stage class, also used for return-type narrowing.

**Raises**:

* `ValueError` - Selectors are missing, conflicting, ambiguous, malformed or unmatched.
* `TypeError` - The matching stage is not of the requested type.


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