> For the complete documentation index, see [llms.txt](https://docs.edisonscientific.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edisonscientific.com/edison-client/methods.md).

# Methods

Every `EdisonClient` method, grouped by area. Each group lists the synchronous methods and their `a`-prefixed asynchronous twins. Async twins take the same arguments and return the same types — just `await` them.

Anywhere a model such as `TaskRequest` is accepted, you can also pass a plain `dict` with the same fields — it's validated into the model for you. Both argument payloads and return values are shown below as example JSON; sample values are placeholders.

### Tasks

#### Sync

**`run_tasks_until_done()`**

Run multiple tasks and wait for them to complete.

```python
run_tasks_until_done(
    task_data: TaskRequest | Collection[TaskRequest],
    verbose: bool = False,
    progress_bar: bool = False,
    timeout: float | None = 2400,
    files: list[str] | None = None,
) -> list[LiteTaskResponse | TaskResponse | TaskResponseVerbose]
```

**Arguments**

```json
{
  "task_data": {
    "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "persona_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "query": "string",
    "runtime_config": {
      "timeout": 0,
      "max_steps": 0,
      "agent": null,
      "environment_config": {},
      "continued_job_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "world_model_id": "019cd179-8d61-7f65-a79c-b965dda9eac3"
    },
    "caller_target_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "caller_project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "tags": [
      "string"
    ],
    "workspace_id": "string"
  },
  "verbose": false,
  "progress_bar": false,
  "timeout": 2400,
  "files": null
}
```

**Returns** `list[LiteTaskResponse | TaskResponse | TaskResponseVerbose]` — each element is one of:

**`LiteTaskResponse`**

```json
{
  "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "query": "string",
  "status": "string"
}
```

**`TaskResponse`**

```json
{
  "status": "string",
  "query": "string",
  "user": "string",
  "created_at": "2026-06-03T08:00:00Z",
  "job_name": "string",
  "share_status": "string",
  "permitted_accessors": {},
  "build_owner": "string",
  "environment_name": "string",
  "agent_name": "string",
  "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3"
}
```

**`TaskResponseVerbose`**

```json
{
  "status": "string",
  "query": "string",
  "user": "string",
  "created_at": "2026-06-03T08:00:00Z",
  "job_name": "string",
  "share_status": "string",
  "permitted_accessors": {},
  "build_owner": "string",
  "environment_name": "string",
  "agent_name": "string",
  "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "agent_state": [
    {}
  ],
  "environment_frame": {},
  "metadata": {},
  "deployment_config": {
    "commit_hash": "string",
    "git_patch": "string",
    "branch_name": "string",
    "git_status": "string"
  }
}
```

**`create_task()`**

Create a new futurehouse task.

```python
create_task(
    task_data: TaskRequest,
    files: list[str] | None = None,
)
```

**Arguments**

```json
{
  "task_data": {
    "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "persona_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "query": "string",
    "runtime_config": {
      "timeout": 0,
      "max_steps": 0,
      "agent": null,
      "environment_config": {},
      "continued_job_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "world_model_id": "019cd179-8d61-7f65-a79c-b965dda9eac3"
    },
    "caller_target_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "caller_project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "tags": [
      "string"
    ],
    "workspace_id": "string"
  },
  "files": null
}
```

**Returns** `str` — The new task's `trajectory_id`.

```json
"019cd179-8d61-7f65-a79c-b965dda9eac3"
```

**`get_task()`**

Get details for a specific task.

```python
get_task(
    task_id: str | None = None,
    history: bool = False,
    verbose: bool = False,
    lite: bool = False,
) -> TaskResponse | TaskResponseVerbose | LiteTaskResponse
```

**Returns** `TaskResponse | TaskResponseVerbose | LiteTaskResponse` — one of:

**`TaskResponse`**

```json
{
  "status": "string",
  "query": "string",
  "user": "string",
  "created_at": "2026-06-03T08:00:00Z",
  "job_name": "string",
  "share_status": "string",
  "permitted_accessors": {},
  "build_owner": "string",
  "environment_name": "string",
  "agent_name": "string",
  "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3"
}
```

**`TaskResponseVerbose`**

```json
{
  "status": "string",
  "query": "string",
  "user": "string",
  "created_at": "2026-06-03T08:00:00Z",
  "job_name": "string",
  "share_status": "string",
  "permitted_accessors": {},
  "build_owner": "string",
  "environment_name": "string",
  "agent_name": "string",
  "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "agent_state": [
    {}
  ],
  "environment_frame": {},
  "metadata": {},
  "deployment_config": {
    "commit_hash": "string",
    "git_patch": "string",
    "branch_name": "string",
    "git_status": "string"
  }
}
```

**`LiteTaskResponse`**

```json
{
  "task_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "query": "string",
  "status": "string"
}
```

**`get_tasks()`**

Fetches trajectories with applied filtering.

```python
get_tasks(
    query_params: TrajectoryQueryParams | None = None,
    project_id: UUID | None = None,
    name: str | None = None,
    user: str | None = None,
    limit: int = 50,
    offset: int = 0,
    sort_by: str = 'created_at',
    sort_order: str = 'desc',
) -> list[dict[str, Any]]
```

**Arguments**

```json
{
  "query_params": null,
  "project_id": null,
  "name": null,
  "user": null,
  "limit": 50,
  "offset": 0,
  "sort_by": "created_at",
  "sort_order": "desc"
}
```

**Returns** `list[dict[str, Any]]`

*Raw, unvalidated dicts (no Pydantic model).*

**`cancel_task()`**

Cancel a specific task/trajectory.

```python
cancel_task(
    task_id: str | None = None,
) -> bool
```

**Returns** `bool`

**`delete_trajectory()`**

Delete a trajectory (soft delete - marks as hidden).

```python
delete_trajectory(
    trajectory_id: UUID,
) -> None
```

**Returns** nothing (`None`).

#### Async

**`arun_tasks_until_done()`**

Awaitable twin of `run_tasks_until_done()` — identical arguments and return type.

```python
arun_tasks_until_done(
    task_data: TaskRequest | Collection[TaskRequest],
    verbose: bool = False,
    progress_bar: bool = False,
    concurrency: int = 10,
    timeout: float | None = 2400,
    files: list[str] | None = None,
) -> list[LiteTaskResponse | TaskResponse | TaskResponseVerbose]
```

**`acreate_task()`**

Awaitable twin of `create_task()` — identical arguments and return type.

```python
acreate_task(
    task_data: TaskRequest,
    files: list[str] | None = None,
)
```

**`aget_task()`**

Awaitable twin of `get_task()` — identical arguments and return type.

```python
aget_task(
    task_id: str | None = None,
    history: bool = False,
    verbose: bool = False,
    lite: bool = False,
) -> TaskResponse | TaskResponseVerbose | LiteTaskResponse
```

**`aget_tasks()`**

Awaitable twin of `get_tasks()` — identical arguments and return type.

```python
aget_tasks(
    query_params: TrajectoryQueryParams | None = None,
    project_id: UUID | None = None,
    name: str | None = None,
    user: str | None = None,
    limit: int = 50,
    offset: int = 0,
    sort_by: str = 'created_at',
    sort_order: str = 'desc',
) -> list[dict[str, Any]]
```

**`adelete_trajectory()`**

Awaitable twin of `delete_trajectory()` — identical arguments and return type.

```python
adelete_trajectory(
    trajectory_id: UUID,
) -> None
```

### Data Storage

#### Sync

**`store_file_content()`**

Store file or directory content in the data storage system.

```python
store_file_content(
    name: str,
    file_path: str | Path,
    description: str | None = None,
    file_path_override: str | Path | None = None,
    as_collection: bool = False,
    manifest_filename: str | None = None,
    ignore_patterns: list[str] | None = None,
    ignore_filename: str = '.gitignore',
    project_id: UUID | None = None,
    dataset_id: UUID | None = None,
    metadata: dict[str, Any] | None = None,
    tags: list[str] | None = None,
    parent_id: UUID | None = None,
    embedding: list[float] | None = None,
) -> DataStorageResponse
```

**Returns** `DataStorageResponse`

```json
{
  "data_storage": {
    "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "description": "string",
    "content": "string",
    "status": "pending",
    "embedding": [
      0.0
    ],
    "is_collection": false,
    "tags": [
      "string"
    ],
    "parent_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "dataset_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "file_path": "string",
    "bigquery_schema": null,
    "user_id": "string",
    "created_at": "2026-06-03T08:00:00Z",
    "modified_at": "2026-06-03T08:00:00Z",
    "share_status": "private",
    "short_alias": "string"
  },
  "storage_locations": [
    {
      "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "data_storage_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "storage_config": {
        "storage_type": "string",
        "content_type": "string",
        "content_schema": null,
        "metadata": null,
        "location": "string",
        "signed_url": "string"
      },
      "created_at": "2026-06-03T08:00:00Z"
    }
  ]
}
```

**`store_text_content()`**

Store content as a string in the data storage system.

```python
store_text_content(
    name: str,
    content: str,
    description: str | None = None,
    file_path: str | None = None,
    project_id: UUID | None = None,
    metadata: dict[str, Any] | None = None,
    tags: list[str] | None = None,
    dataset_id: UUID | None = None,
    parent_id: UUID | None = None,
    embedding: list[float] | None = None,
) -> DataStorageResponse
```

**Returns** `DataStorageResponse`

```json
{
  "data_storage": {
    "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "description": "string",
    "content": "string",
    "status": "pending",
    "embedding": [
      0.0
    ],
    "is_collection": false,
    "tags": [
      "string"
    ],
    "parent_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "dataset_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "file_path": "string",
    "bigquery_schema": null,
    "user_id": "string",
    "created_at": "2026-06-03T08:00:00Z",
    "modified_at": "2026-06-03T08:00:00Z",
    "share_status": "private",
    "short_alias": "string"
  },
  "storage_locations": [
    {
      "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "data_storage_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "storage_config": {
        "storage_type": "string",
        "content_type": "string",
        "content_schema": null,
        "metadata": null,
        "location": "string",
        "signed_url": "string"
      },
      "created_at": "2026-06-03T08:00:00Z"
    }
  ]
}
```

**`store_link()`**

Store a link/URL in the data storage system.

```python
store_link(
    name: str,
    url: HttpUrl,
    description: str,
    instructions: str,
    api_key: str | None = None,
    metadata: dict[str, Any] | None = None,
    dataset_id: UUID | None = None,
    project_id: UUID | None = None,
    tags: list[str] | None = None,
    parent_id: UUID | None = None,
) -> DataStorageResponse
```

**Returns** `DataStorageResponse`

```json
{
  "data_storage": {
    "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "description": "string",
    "content": "string",
    "status": "pending",
    "embedding": [
      0.0
    ],
    "is_collection": false,
    "tags": [
      "string"
    ],
    "parent_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "dataset_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "file_path": "string",
    "bigquery_schema": null,
    "user_id": "string",
    "created_at": "2026-06-03T08:00:00Z",
    "modified_at": "2026-06-03T08:00:00Z",
    "share_status": "private",
    "short_alias": "string"
  },
  "storage_locations": [
    {
      "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "data_storage_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "storage_config": {
        "storage_type": "string",
        "content_type": "string",
        "content_schema": null,
        "metadata": null,
        "location": "string",
        "signed_url": "string"
      },
      "created_at": "2026-06-03T08:00:00Z"
    }
  ]
}
```

**`fetch_data_from_storage()`**

Fetch data from the storage system.

```python
fetch_data_from_storage(
    data_storage_id: UUID | str | None = None,
) -> RawFetchResponse | Path | list[Path] | None
```

**Returns** `RawFetchResponse | Path | list[Path] | None` — one of:

**`RawFetchResponse`**

```json
{
  "filename": "/local/path/to/file",
  "content": "string",
  "entry_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "entry_name": "string"
}
```

**`Path`** — `"/local/path/to/file"`

**`list[Path]`** — `["/local/path/to/file"]`

**`None`** — `null` (e.g. not found / empty)

**`get_data_storage_entry()`**

Get a data storage entry with all details including storage locations and metadata.

```python
get_data_storage_entry(
    data_storage_id: UUID | str,
) -> DataStorageResponse
```

**Returns** `DataStorageResponse`

```json
{
  "data_storage": {
    "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "description": "string",
    "content": "string",
    "status": "pending",
    "embedding": [
      0.0
    ],
    "is_collection": false,
    "tags": [
      "string"
    ],
    "parent_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "dataset_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "file_path": "string",
    "bigquery_schema": null,
    "user_id": "string",
    "created_at": "2026-06-03T08:00:00Z",
    "modified_at": "2026-06-03T08:00:00Z",
    "share_status": "private",
    "short_alias": "string"
  },
  "storage_locations": [
    {
      "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "data_storage_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "storage_config": {
        "storage_type": "string",
        "content_type": "string",
        "content_schema": null,
        "metadata": null,
        "location": "string",
        "signed_url": "string"
      },
      "created_at": "2026-06-03T08:00:00Z"
    }
  ]
}
```

**`delete_data_storage_entry()`**

Delete a data storage entry.

```python
delete_data_storage_entry(
    data_storage_entry_id: UUID,
) -> None
```

**Returns** nothing (`None`).

**`search_data_storage()`**

Search data storage objects using structured criteria.

```python
search_data_storage(
    criteria: list[SearchCriterion] | None = None,
    limit: int = 10,
    offset: int = 0,
    filter_logic: FilterLogic = 'OR',
    text_query: str | None = None,
    highlight: bool = False,
    highlight_fields: list[str] | None = None,
    highlight_fragment_size: int = 1000,
    highlight_num_fragments: int = 3,
) -> list[dict]
```

**Arguments**

```json
{
  "criteria": null,
  "limit": 10,
  "offset": 0,
  "filter_logic": "OR",
  "text_query": null,
  "highlight": false,
  "highlight_fields": null,
  "highlight_fragment_size": 1000,
  "highlight_num_fragments": 3
}
```

**Returns** `list[dict]`

*Raw, unvalidated dicts (no Pydantic model).*

**`similarity_search_data_storage()`**

Search data storage objects using vector similarity.

```python
similarity_search_data_storage(
    embedding: list[float],
    size: int = 10,
    min_score: float = 0.7,
    dataset_id: UUID | None = None,
    tags: list[str] | None = None,
    user_id: str | None = None,
    project_id: str | None = None,
) -> list[dict]
```

**Returns** `list[dict]`

*Raw, unvalidated dicts (no Pydantic model).*

**`update_entry_permissions()`**

Update the permissions of a data storage entry.

```python
update_entry_permissions(
    data_storage_id: UUID,
    share_status: ShareStatus,
    permitted_accessors: PermittedAccessors,
) -> DataStorageResponse
```

**Arguments**

```json
{
  "data_storage_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
  "share_status": "private",
  "permitted_accessors": {
    "users": [
      "string"
    ],
    "organizations": [
      "string"
    ]
  }
}
```

**Returns** `DataStorageResponse`

```json
{
  "data_storage": {
    "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "description": "string",
    "content": "string",
    "status": "pending",
    "embedding": [
      0.0
    ],
    "is_collection": false,
    "tags": [
      "string"
    ],
    "parent_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "dataset_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "file_path": "string",
    "bigquery_schema": null,
    "user_id": "string",
    "created_at": "2026-06-03T08:00:00Z",
    "modified_at": "2026-06-03T08:00:00Z",
    "share_status": "private",
    "short_alias": "string"
  },
  "storage_locations": [
    {
      "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "data_storage_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "storage_config": {
        "storage_type": "string",
        "content_type": "string",
        "content_schema": null,
        "metadata": null,
        "location": "string",
        "signed_url": "string"
      },
      "created_at": "2026-06-03T08:00:00Z"
    }
  ]
}
```

**`update_entry_tags()`**

Update the tags of a data storage entry.

```python
update_entry_tags(
    data_storage_id: UUID | str,
    tags: list[str],
) -> DataStorageResponse
```

**Returns** `DataStorageResponse`

```json
{
  "data_storage": {
    "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "name": "string",
    "description": "string",
    "content": "string",
    "status": "pending",
    "embedding": [
      0.0
    ],
    "is_collection": false,
    "tags": [
      "string"
    ],
    "parent_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "project_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "dataset_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
    "file_path": "string",
    "bigquery_schema": null,
    "user_id": "string",
    "created_at": "2026-06-03T08:00:00Z",
    "modified_at": "2026-06-03T08:00:00Z",
    "share_status": "private",
    "short_alias": "string"
  },
  "storage_locations": [
    {
      "id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "data_storage_id": "019cd179-8d61-7f65-a79c-b965dda9eac3",
      "storage_config": {
        "storage_type": "string",
        "content_type": "string",
        "content_schema": null,
        "metadata": null,
        "location": "string",
        "signed_url": "string"
      },
      "created_at": "2026-06-03T08:00:00Z"
    }
  ]
}
```

#### Async

**`astore_file_content()`**

Awaitable twin of `store_file_content()` — identical arguments and return type.

```python
astore_file_content(
    name: str,
    file_path: str | Path,
    description: str | None = None,
    file_path_override: str | Path | None = None,
    as_collection: bool = False,
    manifest_filename: str | None = None,
    ignore_patterns: list[str] | None = None,
    ignore_filename: str = '.gitignore',
    dataset_id: UUID | None = None,
    project_id: UUID | None = None,
    metadata: dict[str, Any] | None = None,
    tags: list[str] | None = None,
    parent_id: UUID | None = None,
    embedding: list[float] | None = None,
) -> DataStorageResponse
```

**`astore_text_content()`**

Awaitable twin of `store_text_content()` — identical arguments and return type.

```python
astore_text_content(
    name: str,
    content: str,
    description: str | None = None,
    file_path: str | None = None,
    dataset_id: UUID | None = None,
    project_id: UUID | None = None,
    metadata: dict[str, Any] | None = None,
    tags: list[str] | None = None,
    parent_id: UUID | None = None,
    embedding: list[float] | None = None,
) -> DataStorageResponse
```

**`astore_link()`**

Awaitable twin of `store_link()` — identical arguments and return type.

```python
astore_link(
    name: str,
    url: HttpUrl,
    description: str,
    instructions: str,
    api_key: str | None = None,
    metadata: dict[str, Any] | None = None,
    dataset_id: UUID | None = None,
    project_id: UUID | None = None,
    tags: list[str] | None = None,
    parent_id: UUID | None = None,
) -> DataStorageResponse
```

**`afetch_data_from_storage()`**

Awaitable twin of `fetch_data_from_storage()` — identical arguments and return type.

```python
afetch_data_from_storage(
    data_storage_id: UUID | str | None = None,
) -> RawFetchResponse | Path | list[Path] | None
```

**`aget_data_storage_entry()`**

Awaitable twin of `get_data_storage_entry()` — identical arguments and return type.

```python
aget_data_storage_entry(
    data_storage_id: UUID | str,
) -> DataStorageResponse
```

**`adelete_data_storage_entry()`**

Awaitable twin of `delete_data_storage_entry()` — identical arguments and return type.

```python
adelete_data_storage_entry(
    data_storage_entry_id: UUID,
) -> None
```

**`asearch_data_storage()`**

Awaitable twin of `search_data_storage()` — identical arguments and return type.

```python
asearch_data_storage(
    criteria: list[SearchCriterion] | None = None,
    limit: int = 10,
    offset: int = 0,
    filter_logic: FilterLogic = 'OR',
    text_query: str | None = None,
    highlight: bool = False,
    highlight_fields: list[str] | None = None,
    highlight_fragment_size: int = 1000,
    highlight_num_fragments: int = 3,
) -> list[dict]
```

**`asimilarity_search_data_storage()`**

Awaitable twin of `similarity_search_data_storage()` — identical arguments and return type.

```python
asimilarity_search_data_storage(
    embedding: list[float],
    size: int = 10,
    min_score: float = 0.7,
    dataset_id: UUID | None = None,
    tags: list[str] | None = None,
    user_id: str | None = None,
    project_id: str | None = None,
) -> list[dict]
```

**`aupdate_entry_permissions()`**

Awaitable twin of `update_entry_permissions()` — identical arguments and return type.

```python
aupdate_entry_permissions(
    data_storage_id: UUID,
    share_status: ShareStatus,
    permitted_accessors: PermittedAccessors,
) -> DataStorageResponse
```

**`aupdate_entry_tags()`**

Awaitable twin of `update_entry_tags()` — identical arguments and return type.

```python
aupdate_entry_tags(
    data_storage_id: UUID | str,
    tags: list[str],
) -> DataStorageResponse
```

### Projects

#### Sync

**`create_project()`**

Create a new project.

```python
create_project(
    name: str,
    share_status: ShareStatus = 'private',
    permitted_accessors: PermittedAccessors | None = None,
    metadata: dict | None = None,
    description: str | None = None,
    persona_id: UUID | None = None,
) -> UUID
```

**Arguments**

```json
{
  "name": "string",
  "share_status": "private",
  "permitted_accessors": null,
  "metadata": null,
  "description": null,
  "persona_id": null
}
```

**Returns** `UUID`

**`get_project_by_name()`**

Get a project UUID by name.

```python
get_project_by_name(
    name: str,
    limit: int = 2,
    persona_id: UUID | None = None,
) -> UUID | list[UUID]
```

**Returns** `UUID | list[UUID]` — one of:

**`UUID`** — `"019cd179-8d61-7f65-a79c-b965dda9eac3"`

**`list[UUID]`** — `["019cd179-8d61-7f65-a79c-b965dda9eac3"]`

**`add_task_to_project()`**

Add a task to a project. Use this to assign or reassign a task to a project.

```python
add_task_to_project(
    project_id: UUID,
    trajectory_id: str,
) -> None
```

**Returns** nothing (`None`).

**`delete_project()`**

Delete a project.

```python
delete_project(
    project_id: UUID,
    delete_trajectories: bool = True,
) -> None
```

**Returns** nothing (`None`).

#### Async

**`acreate_project()`**

Awaitable twin of `create_project()` — identical arguments and return type.

```python
acreate_project(
    name: str,
    share_status: ShareStatus = 'private',
    permitted_accessors: PermittedAccessors | None = None,
    metadata: dict | None = None,
    description: str | None = None,
    persona_id: UUID | None = None,
) -> UUID
```

**`aget_project_by_name()`**

Awaitable twin of `get_project_by_name()` — identical arguments and return type.

```python
aget_project_by_name(
    name: str,
    limit: int = 2,
    persona_id: UUID | None = None,
) -> UUID | list[UUID]
```

**`aadd_task_to_project()`**

Awaitable twin of `add_task_to_project()` — identical arguments and return type.

```python
aadd_task_to_project(
    project_id: UUID,
    trajectory_id: str,
) -> None
```

**`adelete_project()`**

Awaitable twin of `delete_project()` — identical arguments and return type.

```python
adelete_project(
    project_id: UUID,
    delete_trajectories: bool = True,
) -> None
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.edisonscientific.com/edison-client/methods.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
