# Tools

> SDK methods for the Tools module, accessed via `soat.tools`. See the [Tools module docs](/docs/modules/tools) for permissions and data model, and each method's REST page for the full request/response schema.

# Tools

SDK methods for the Tools module, accessed via `soat.tools`. See the [Tools module docs](/docs/modules/tools) for permissions and data model, and each method's REST page for the full request/response schema.

### `soat.tools.createTool()`

Create a tool

- Method: `POST`
- Path: `/api/v1/tools`

```ts
await soat.tools.createTool({
  body: { name, /* + optional */ },
});
```

→ [Request & response schema](/docs/api/tools/create-tool)

### `soat.tools.listTools()`

List tools

- Method: `GET`
- Path: `/api/v1/tools`

```ts
await soat.tools.listTools({
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/tools/list-tools)

### `soat.tools.getTool()`

Get a tool

- Method: `GET`
- Path: `/api/v1/tools/{tool_id}`

```ts
await soat.tools.getTool({
  path: { tool_id },
});
```

→ [Request & response schema](/docs/api/tools/get-tool)

### `soat.tools.updateTool()`

Update a tool

- Method: `PATCH`
- Path: `/api/v1/tools/{tool_id}`

```ts
await soat.tools.updateTool({
  path: { tool_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/tools/update-tool)

### `soat.tools.deleteTool()`

Delete a tool

- Method: `DELETE`
- Path: `/api/v1/tools/{tool_id}`

```ts
await soat.tools.deleteTool({
  path: { tool_id },
});
```

→ [Request & response schema](/docs/api/tools/delete-tool)

### `soat.tools.callTool()`

Call a tool

- Method: `POST`
- Path: `/api/v1/tools/{tool_id}/call`

```ts
await soat.tools.callTool({
  path: { tool_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/tools/call-tool)
