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

# Camel.toolkits.aci toolkit

<a id="camel.toolkits.aci_toolkit" />

<a id="camel.toolkits.aci_toolkit.ACIToolkit" />

## ACIToolkit

```python theme={"system"}
class ACIToolkit(BaseToolkit):
```

A toolkit for interacting with the ACI API.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.__init__" />

### **init**

```python theme={"system"}
def __init__(
    self,
    api_key: Optional[str] = None,
    base_url: Optional[str] = None,
    linked_account_owner_id: Optional[str] = None,
    timeout: Optional[float] = None
):
```

Initialize the ACI toolkit.

**Parameters:**

* **api\_key** (Optional\[str]): The API key for authentication. (default: :obj:`None`)
* **base\_url** (Optional\[str]): The base URL for the ACI API. (default: :obj:`None`)
* **linked\_account\_owner\_id** (Optional\[str]): ID of the owner of the linked account, e.g., "johndoe" (default: :obj:`None`)
* **timeout** (Optional\[float]): Request timeout. (default: :obj:`None`)

<a id="camel.toolkits.aci_toolkit.ACIToolkit.search_tool" />

### search\_tool

```python theme={"system"}
def search_tool(
    self,
    intent: Optional[str] = None,
    allowed_app_only: bool = True,
    include_functions: bool = False,
    categories: Optional[List[str]] = None,
    limit: Optional[int] = 10,
    offset: Optional[int] = 0
):
```

Search for apps based on intent.

**Parameters:**

* **intent** (Optional\[str]): Search results will be sorted by relevance to this intent. (default: :obj:`None`)
* **allowed\_app\_only** (bool): If true, only return apps that are allowed by the agent/accessor, identified by the api key. (default: :obj:`True`)
* **include\_functions** (bool): If true, include functions (name and description) in the search results. (default: :obj:`False`)
* **categories** (Optional\[List\[str]]): List of categories to filter the search results. Defaults to an empty list. (default: :obj:`None`)
* **limit** (Optional\[int]): Maximum number of results to return. (default: :obj:`10`)
* **offset** (Optional\[int]): Offset for pagination. (default: :obj:`0`)

**Returns:**

Optional\[List\[AppBasic]]: List of matching apps if successful,
error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.list_configured_apps" />

### list\_configured\_apps

```python theme={"system"}
def list_configured_apps(
    self,
    app_names: Optional[List[str]] = None,
    limit: Optional[int] = 10,
    offset: Optional[int] = 0
):
```

List all configured apps.

**Parameters:**

* **app\_names** (Optional\[List\[str]]): List of app names to filter the results. (default: :obj:`None`)
* **limit** (Optional\[int]): Maximum number of results to return. (default: :obj:`10`)
* **offset** (Optional\[int]): Offset for pagination. (default: :obj:`0`) (default: 0)

**Returns:**

Union\[List\[AppConfiguration], str]: List of configured apps if
successful, error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.configure_app" />

### configure\_app

```python theme={"system"}
def configure_app(self, app_name: str):
```

Configure an app with specified authentication type.

**Parameters:**

* **app\_name** (str): Name of the app to configure.

**Returns:**

Union\[Dict, str]: Configuration result or error message.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.get_app_configuration" />

### get\_app\_configuration

```python theme={"system"}
def get_app_configuration(self, app_name: str):
```

Get app configuration by app name.

**Parameters:**

* **app\_name** (str): Name of the app to get configuration for.

**Returns:**

Union\[AppConfiguration, str]: App configuration if successful,
error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.delete_app" />

### delete\_app

```python theme={"system"}
def delete_app(self, app_name: str):
```

Delete an app configuration.

**Parameters:**

* **app\_name** (str): Name of the app to delete.

**Returns:**

Optional\[str]: None if successful, error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.link_account" />

### link\_account

```python theme={"system"}
def link_account(self, app_name: str):
```

Link an account to a configured app.

**Parameters:**

* **app\_name** (str): Name of the app to link the account to.

**Returns:**

Union\[LinkedAccount, str]: LinkedAccount object if successful,
error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.get_app_details" />

### get\_app\_details

```python theme={"system"}
def get_app_details(self, app_name: str):
```

Get details of an app.

**Parameters:**

* **app\_name** (str): Name of the app to get details for.

**Returns:**

AppDetails: App details.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.get_linked_accounts" />

### get\_linked\_accounts

```python theme={"system"}
def get_linked_accounts(self, app_name: str):
```

List all linked accounts for a specific app.

**Parameters:**

* **app\_name** (str): Name of the app to get linked accounts for.

**Returns:**

Union\[List\[LinkedAccount], str]: List of linked accounts if
successful, error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.enable_linked_account" />

### enable\_linked\_account

```python theme={"system"}
def enable_linked_account(self, linked_account_id: str):
```

Enable a linked account.

**Parameters:**

* **linked\_account\_id** (str): ID of the linked account to enable.

**Returns:**

Union\[LinkedAccount, str]: Linked account if successful, error
message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.disable_linked_account" />

### disable\_linked\_account

```python theme={"system"}
def disable_linked_account(self, linked_account_id: str):
```

Disable a linked account.

**Parameters:**

* **linked\_account\_id** (str): ID of the linked account to disable.

**Returns:**

Union\[LinkedAccount, str]: The updated linked account if
successful, error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.delete_linked_account" />

### delete\_linked\_account

```python theme={"system"}
def delete_linked_account(self, linked_account_id: str):
```

Delete a linked account.

**Parameters:**

* **linked\_account\_id** (str): ID of the linked account to delete.

**Returns:**

str: Success message if successful, error message otherwise.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.function_definition" />

### function\_definition

```python theme={"system"}
def function_definition(self, func_name: str):
```

Get the function definition for an app.

**Parameters:**

* **app\_name** (str): Name of the app to get function definition for

**Returns:**

Dict: Function definition dictionary.

<a id="camel.toolkits.aci_toolkit.ACIToolkit.search_function" />

### search\_function

```python theme={"system"}
def search_function(
    self,
    app_names: Optional[List[str]] = None,
    intent: Optional[str] = None,
    allowed_apps_only: bool = True,
    limit: Optional[int] = 10,
    offset: Optional[int] = 0
):
```

Search for functions based on intent.

**Parameters:**

* **app\_names** (Optional\[List\[str]]): List of app names to filter the search results. (default: :obj:`None`)
* **intent** (Optional\[str]): The search query/intent. (default: :obj:`None`)
* **allowed\_apps\_only** (bool): If true, only return functions from allowed apps. (default: :obj:`True`)
* **limit** (Optional\[int]): Maximum number of results to return. (default: :obj:`10`)
* **offset** (Optional\[int]): Offset for pagination. (default: :obj:`0`)

**Returns:**

List\[Dict]: List of matching functions

<a id="camel.toolkits.aci_toolkit.ACIToolkit.execute_function" />

### execute\_function

```python theme={"system"}
def execute_function(
    self,
    function_name: str,
    function_arguments: Dict,
    linked_account_owner_id: str,
    allowed_apps_only: bool = False
):
```

Execute a function call.

**Parameters:**

* **function\_name** (str): Name of the function to execute.
* **function\_arguments** (Dict): Arguments to pass to the function.
* **linked\_account\_owner\_id** (str): To specify the end-user (account owner) on behalf of whom you want to execute functions You need to first link corresponding account with the same owner id in the ACI dashboard ([https://platform.aci.dev](https://platform.aci.dev)).
* **allowed\_apps\_only** (bool): If true, only returns functions/apps that are allowed to be used by the agent/accessor, identified by the api key. (default: :obj:`False`)

**Returns:**

Dict: Result of the function execution

<a id="camel.toolkits.aci_toolkit.ACIToolkit.get_tools" />

### get\_tools

```python theme={"system"}
def get_tools(self):
```

**Returns:**

List\[FunctionTool]: List of FunctionTool objects representing
available functions
