# Tasks

## Get Task by ID

`tasks.retrieve(strtask_id, TaskRetrieveParams**kwargs)  -> TaskRetrieveResponse`

**get** `/tasks/{task_id}`

Get a task by its unique ID.

### Parameters

- `task_id: str`

- `relationships: Optional[List[Literal["agents"]]]`

  - `"agents"`

### Returns

- `class TaskRetrieveResponse: …`

  Task response model with optional related data based on relationships

  - `id: str`

  - `agents: Optional[List[Agent]]`

    - `id: str`

      The unique identifier of the agent.

    - `acp_type: AcpType`

      The type of the ACP Server (Either sync or async)

      - `"sync"`

      - `"async"`

      - `"agentic"`

    - `created_at: datetime`

      The timestamp when the agent was created

    - `description: str`

      The description of the action.

    - `name: str`

      The unique name of the agent.

    - `updated_at: datetime`

      The timestamp when the agent was last updated

    - `agent_input_type: Optional[Literal["text", "json"]]`

      The type of input the agent expects.

      - `"text"`

      - `"json"`

    - `production_deployment_id: Optional[str]`

      ID of the current production deployment.

    - `registered_at: Optional[datetime]`

      The timestamp when the agent was last registered

    - `registration_metadata: Optional[Dict[str, object]]`

      The metadata for the agent's registration.

    - `status: Optional[Literal["Ready", "Failed", "Unknown", 3 more]]`

      The status of the action, indicating if it's building, ready, failed, etc.

      - `"Ready"`

      - `"Failed"`

      - `"Unknown"`

      - `"Deleted"`

      - `"Unhealthy"`

      - `"BuildOnly"`

    - `status_reason: Optional[str]`

      The reason for the status of the action.

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.retrieve(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "agents": [
    {
      "id": "id",
      "acp_type": "sync",
      "created_at": "2019-12-27T18:11:19.117Z",
      "description": "description",
      "name": "name",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "agent_input_type": "text",
      "production_deployment_id": "production_deployment_id",
      "registered_at": "2019-12-27T18:11:19.117Z",
      "registration_metadata": {
        "foo": "bar"
      },
      "status": "Ready",
      "status_reason": "status_reason"
    }
  ],
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Delete Task by ID

`tasks.delete(strtask_id)  -> DeleteResponse`

**delete** `/tasks/{task_id}`

Delete a task by its unique ID.

### Parameters

- `task_id: str`

### Returns

- `class DeleteResponse: …`

  - `id: str`

  - `message: str`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
delete_response = client.tasks.delete(
    "task_id",
)
print(delete_response.id)
```

#### Response

```json
{
  "id": "id",
  "message": "message"
}
```

## List Tasks

`tasks.list(TaskListParams**kwargs)  -> TaskListResponse`

**get** `/tasks`

List tasks. Returns a lean summary per task and omits `params`; fetch GET /tasks/{task_id} for the full record including `params`.

### Parameters

- `agent_id: Optional[str]`

- `agent_name: Optional[str]`

- `limit: Optional[int]`

- `order_by: Optional[str]`

- `order_direction: Optional[str]`

- `page_number: Optional[int]`

- `relationships: Optional[List[Literal["agents"]]]`

  - `"agents"`

- `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

  Filter tasks by status (e.g. RUNNING, COMPLETED).

  - `"CANCELED"`

  - `"COMPLETED"`

  - `"FAILED"`

  - `"RUNNING"`

  - `"INTERRUPTED"`

  - `"TERMINATED"`

  - `"TIMED_OUT"`

  - `"DELETED"`

- `task_metadata: Optional[str]`

  JSON-encoded object used to filter tasks via JSONB containment. Example: {"created_by_user_id": "abc-123"}.

### Returns

- `List[TaskListResponseItem]`

  - `id: str`

  - `agents: Optional[List[Agent]]`

    - `id: str`

      The unique identifier of the agent.

    - `acp_type: AcpType`

      The type of the ACP Server (Either sync or async)

      - `"sync"`

      - `"async"`

      - `"agentic"`

    - `created_at: datetime`

      The timestamp when the agent was created

    - `description: str`

      The description of the action.

    - `name: str`

      The unique name of the agent.

    - `updated_at: datetime`

      The timestamp when the agent was last updated

    - `agent_input_type: Optional[Literal["text", "json"]]`

      The type of input the agent expects.

      - `"text"`

      - `"json"`

    - `production_deployment_id: Optional[str]`

      ID of the current production deployment.

    - `registered_at: Optional[datetime]`

      The timestamp when the agent was last registered

    - `registration_metadata: Optional[Dict[str, object]]`

      The metadata for the agent's registration.

    - `status: Optional[Literal["Ready", "Failed", "Unknown", 3 more]]`

      The status of the action, indicating if it's building, ready, failed, etc.

      - `"Ready"`

      - `"Failed"`

      - `"Unknown"`

      - `"Deleted"`

      - `"Unhealthy"`

      - `"BuildOnly"`

    - `status_reason: Optional[str]`

      The reason for the status of the action.

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
tasks = client.tasks.list()
print(tasks)
```

#### Response

```json
[
  {
    "id": "id",
    "agents": [
      {
        "id": "id",
        "acp_type": "sync",
        "created_at": "2019-12-27T18:11:19.117Z",
        "description": "description",
        "name": "name",
        "updated_at": "2019-12-27T18:11:19.117Z",
        "agent_input_type": "text",
        "production_deployment_id": "production_deployment_id",
        "registered_at": "2019-12-27T18:11:19.117Z",
        "registration_metadata": {
          "foo": "bar"
        },
        "status": "Ready",
        "status_reason": "status_reason"
      }
    ],
    "cleaned_at": "2019-12-27T18:11:19.117Z",
    "created_at": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "status": "CANCELED",
    "status_reason": "status_reason",
    "task_metadata": {
      "foo": "bar"
    },
    "updated_at": "2019-12-27T18:11:19.117Z"
  }
]
```

## Stream Task Events by ID

`tasks.stream_events(strtask_id)  -> object`

**get** `/tasks/{task_id}/stream`

Stream events for a task by its unique ID.

### Parameters

- `task_id: str`

### Returns

- `object`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
for task in client.tasks.stream_events(
    "task_id",
):
  print(task)
```

#### Response

```json
{}
```

## Get Task by Name

`tasks.retrieve_by_name(strtask_name, TaskRetrieveByNameParams**kwargs)  -> TaskRetrieveByNameResponse`

**get** `/tasks/name/{task_name}`

Get a task by its unique name.

### Parameters

- `task_name: str`

- `relationships: Optional[List[Literal["agents"]]]`

  - `"agents"`

### Returns

- `class TaskRetrieveByNameResponse: …`

  Task response model with optional related data based on relationships

  - `id: str`

  - `agents: Optional[List[Agent]]`

    - `id: str`

      The unique identifier of the agent.

    - `acp_type: AcpType`

      The type of the ACP Server (Either sync or async)

      - `"sync"`

      - `"async"`

      - `"agentic"`

    - `created_at: datetime`

      The timestamp when the agent was created

    - `description: str`

      The description of the action.

    - `name: str`

      The unique name of the agent.

    - `updated_at: datetime`

      The timestamp when the agent was last updated

    - `agent_input_type: Optional[Literal["text", "json"]]`

      The type of input the agent expects.

      - `"text"`

      - `"json"`

    - `production_deployment_id: Optional[str]`

      ID of the current production deployment.

    - `registered_at: Optional[datetime]`

      The timestamp when the agent was last registered

    - `registration_metadata: Optional[Dict[str, object]]`

      The metadata for the agent's registration.

    - `status: Optional[Literal["Ready", "Failed", "Unknown", 3 more]]`

      The status of the action, indicating if it's building, ready, failed, etc.

      - `"Ready"`

      - `"Failed"`

      - `"Unknown"`

      - `"Deleted"`

      - `"Unhealthy"`

      - `"BuildOnly"`

    - `status_reason: Optional[str]`

      The reason for the status of the action.

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
response = client.tasks.retrieve_by_name(
    task_name="task_name",
)
print(response.id)
```

#### Response

```json
{
  "id": "id",
  "agents": [
    {
      "id": "id",
      "acp_type": "sync",
      "created_at": "2019-12-27T18:11:19.117Z",
      "description": "description",
      "name": "name",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "agent_input_type": "text",
      "production_deployment_id": "production_deployment_id",
      "registered_at": "2019-12-27T18:11:19.117Z",
      "registration_metadata": {
        "foo": "bar"
      },
      "status": "Ready",
      "status_reason": "status_reason"
    }
  ],
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Delete Task by Name

`tasks.delete_by_name(strtask_name)  -> DeleteResponse`

**delete** `/tasks/name/{task_name}`

Delete a task by its unique name.

### Parameters

- `task_name: str`

### Returns

- `class DeleteResponse: …`

  - `id: str`

  - `message: str`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
delete_response = client.tasks.delete_by_name(
    "task_name",
)
print(delete_response.id)
```

#### Response

```json
{
  "id": "id",
  "message": "message"
}
```

## Stream Task Events by Name

`tasks.stream_events_by_name(strtask_name)  -> object`

**get** `/tasks/name/{task_name}/stream`

Stream events for a task by its unique name.

### Parameters

- `task_name: str`

### Returns

- `object`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
for task in client.tasks.stream_events_by_name(
    "task_name",
):
  print(task)
```

#### Response

```json
{}
```

## Update Task by ID

`tasks.update_by_id(strtask_id, TaskUpdateByIDParams**kwargs)  -> Task`

**put** `/tasks/{task_id}`

Update mutable fields for a task by its unique ID.

### Parameters

- `task_id: str`

- `merge_params: Optional[Dict[str, object]]`

- `task_metadata: Optional[Dict[str, object]]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.update_by_id(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Update Task by Name

`tasks.update_by_name(strtask_name, TaskUpdateByNameParams**kwargs)  -> Task`

**put** `/tasks/name/{task_name}`

Update mutable fields for a task by its unique Name.

### Parameters

- `task_name: str`

- `merge_params: Optional[Dict[str, object]]`

- `task_metadata: Optional[Dict[str, object]]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.update_by_name(
    task_name="task_name",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Complete Task

`tasks.complete(strtask_id, TaskCompleteParams**kwargs)  -> Task`

**post** `/tasks/{task_id}/complete`

Mark a running task as completed.

### Parameters

- `task_id: str`

- `reason: Optional[str]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.complete(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Fail Task

`tasks.fail(strtask_id, TaskFailParams**kwargs)  -> Task`

**post** `/tasks/{task_id}/fail`

Mark a running task as failed.

### Parameters

- `task_id: str`

- `reason: Optional[str]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.fail(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Cancel Task

`tasks.cancel(strtask_id, TaskCancelParams**kwargs)  -> Task`

**post** `/tasks/{task_id}/cancel`

Mark a running task as canceled.

### Parameters

- `task_id: str`

- `reason: Optional[str]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.cancel(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Terminate Task

`tasks.terminate(strtask_id, TaskTerminateParams**kwargs)  -> Task`

**post** `/tasks/{task_id}/terminate`

Mark a running task as terminated.

### Parameters

- `task_id: str`

- `reason: Optional[str]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.terminate(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Timeout Task

`tasks.timeout(strtask_id, TaskTimeoutParams**kwargs)  -> Task`

**post** `/tasks/{task_id}/timeout`

Mark a running task as timed out.

### Parameters

- `task_id: str`

- `reason: Optional[str]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.timeout(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Query Task Workflow

`tasks.query_workflow(strquery_name, TaskQueryWorkflowParams**kwargs)  -> TaskQueryWorkflowResponse`

**get** `/tasks/{task_id}/query/{query_name}`

Query a Temporal workflow associated with a task for its current state.

### Parameters

- `task_id: str`

- `query_name: str`

### Returns

- `Dict[str, object]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
response = client.tasks.query_workflow(
    query_name="query_name",
    task_id="task_id",
)
print(response)
```

#### Response

```json
{
  "foo": "bar"
}
```

## Interrupt Task

`tasks.interrupt(strtask_id, TaskInterruptParams**kwargs)  -> Task`

**post** `/tasks/{task_id}/interrupt`

Stop the in-flight turn without terminating the task. Transitions a running task to the non-terminal INTERRUPTED status; the task stays continuable and the next message or event resumes it.

### Parameters

- `task_id: str`

- `reason: Optional[str]`

### Returns

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task = client.tasks.interrupt(
    task_id="task_id",
)
print(task.id)
```

#### Response

```json
{
  "id": "id",
  "cleaned_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "params": {
    "foo": "bar"
  },
  "status": "CANCELED",
  "status_reason": "status_reason",
  "task_metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Domain Types

### Task

- `class Task: …`

  - `id: str`

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Task Retrieve Response

- `class TaskRetrieveResponse: …`

  Task response model with optional related data based on relationships

  - `id: str`

  - `agents: Optional[List[Agent]]`

    - `id: str`

      The unique identifier of the agent.

    - `acp_type: AcpType`

      The type of the ACP Server (Either sync or async)

      - `"sync"`

      - `"async"`

      - `"agentic"`

    - `created_at: datetime`

      The timestamp when the agent was created

    - `description: str`

      The description of the action.

    - `name: str`

      The unique name of the agent.

    - `updated_at: datetime`

      The timestamp when the agent was last updated

    - `agent_input_type: Optional[Literal["text", "json"]]`

      The type of input the agent expects.

      - `"text"`

      - `"json"`

    - `production_deployment_id: Optional[str]`

      ID of the current production deployment.

    - `registered_at: Optional[datetime]`

      The timestamp when the agent was last registered

    - `registration_metadata: Optional[Dict[str, object]]`

      The metadata for the agent's registration.

    - `status: Optional[Literal["Ready", "Failed", "Unknown", 3 more]]`

      The status of the action, indicating if it's building, ready, failed, etc.

      - `"Ready"`

      - `"Failed"`

      - `"Unknown"`

      - `"Deleted"`

      - `"Unhealthy"`

      - `"BuildOnly"`

    - `status_reason: Optional[str]`

      The reason for the status of the action.

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Task List Response

- `List[TaskListResponseItem]`

  - `id: str`

  - `agents: Optional[List[Agent]]`

    - `id: str`

      The unique identifier of the agent.

    - `acp_type: AcpType`

      The type of the ACP Server (Either sync or async)

      - `"sync"`

      - `"async"`

      - `"agentic"`

    - `created_at: datetime`

      The timestamp when the agent was created

    - `description: str`

      The description of the action.

    - `name: str`

      The unique name of the agent.

    - `updated_at: datetime`

      The timestamp when the agent was last updated

    - `agent_input_type: Optional[Literal["text", "json"]]`

      The type of input the agent expects.

      - `"text"`

      - `"json"`

    - `production_deployment_id: Optional[str]`

      ID of the current production deployment.

    - `registered_at: Optional[datetime]`

      The timestamp when the agent was last registered

    - `registration_metadata: Optional[Dict[str, object]]`

      The metadata for the agent's registration.

    - `status: Optional[Literal["Ready", "Failed", "Unknown", 3 more]]`

      The status of the action, indicating if it's building, ready, failed, etc.

      - `"Ready"`

      - `"Failed"`

      - `"Unknown"`

      - `"Deleted"`

      - `"Unhealthy"`

      - `"BuildOnly"`

    - `status_reason: Optional[str]`

      The reason for the status of the action.

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Task Retrieve By Name Response

- `class TaskRetrieveByNameResponse: …`

  Task response model with optional related data based on relationships

  - `id: str`

  - `agents: Optional[List[Agent]]`

    - `id: str`

      The unique identifier of the agent.

    - `acp_type: AcpType`

      The type of the ACP Server (Either sync or async)

      - `"sync"`

      - `"async"`

      - `"agentic"`

    - `created_at: datetime`

      The timestamp when the agent was created

    - `description: str`

      The description of the action.

    - `name: str`

      The unique name of the agent.

    - `updated_at: datetime`

      The timestamp when the agent was last updated

    - `agent_input_type: Optional[Literal["text", "json"]]`

      The type of input the agent expects.

      - `"text"`

      - `"json"`

    - `production_deployment_id: Optional[str]`

      ID of the current production deployment.

    - `registered_at: Optional[datetime]`

      The timestamp when the agent was last registered

    - `registration_metadata: Optional[Dict[str, object]]`

      The metadata for the agent's registration.

    - `status: Optional[Literal["Ready", "Failed", "Unknown", 3 more]]`

      The status of the action, indicating if it's building, ready, failed, etc.

      - `"Ready"`

      - `"Failed"`

      - `"Unknown"`

      - `"Deleted"`

      - `"Unhealthy"`

      - `"BuildOnly"`

    - `status_reason: Optional[str]`

      The reason for the status of the action.

  - `cleaned_at: Optional[datetime]`

  - `created_at: Optional[datetime]`

  - `name: Optional[str]`

  - `params: Optional[Dict[str, object]]`

  - `status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", 5 more]]`

    - `"CANCELED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"RUNNING"`

    - `"INTERRUPTED"`

    - `"TERMINATED"`

    - `"TIMED_OUT"`

    - `"DELETED"`

  - `status_reason: Optional[str]`

  - `task_metadata: Optional[Dict[str, object]]`

  - `updated_at: Optional[datetime]`

### Task Query Workflow Response

- `Dict[str, object]`
