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

# Tools & Skills

> Configure the tools your AI voice agents can use during calls.

## Overview

**Tools** (also called skills) extend what your AI voice agent can do during a live call. Instead of just talking, the agent can take actions, look up calendar availability, book meetings, search your knowledge base, transfer the call, and more.

The Tools API lets you:

* Browse the built-in tool catalog
* Create and configure tool instances for your workspace
* Assign/unassign tools to specific voice agents

## The tool catalog

Browse all available built-in tools:

```bash theme={"dark"}
GET /api/v1/public/tools/catalog
```

Returns a dictionary of public capability identifiers and their configurations.
These identifiers are stable API values; they do not expose the service's
internal implementation names.

```json theme={"dark"}
{
  "book_meeting": {
    "name": "Book Meeting",
    "description": "Check calendar availability and book a meeting on behalf of the lead",
    "config_schema": {
      "calendar_connection_id": { "type": "string", "required": true },
      "meeting_duration_minutes": { "type": "integer", "default": 30 }
    }
  },
  "kb_lookup": {
    "name": "Knowledge Base Lookup",
    "description": "Search a knowledge base and return the most relevant passage",
    "config_schema": {
      "kb_id": { "type": "string", "required": true }
    }
  },
  "end_call": {
    "name": "End Call",
    "description": "Gracefully end the call after a natural closing",
    "config_schema": {}
  },
  "transfer_call": {
    "name": "Transfer Call",
    "description": "Transfer the live call to a human agent",
    "config_schema": {
      "transfer_to": { "type": "string", "required": true }
    }
  }
}
```

## Creating a tool instance

Configure a tool with your specific settings:

```bash theme={"dark"}
curl -X POST https://api.sendora.ai/api/v1/public/tools \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "book_meeting",
    "name": "Book a Demo",
    "config": {
      "calendar_connection_id": "conn_google_cal_abc",
      "meeting_duration_minutes": 30,
      "meeting_title": "Sendora Demo"
    }
  }'
```

For built-in capabilities, you can also use the special public `sendora_name`
field instead of `slug`:

```json theme={"dark"}
{
  "sendora_name": "knowledge_base",
  "name": "Product FAQ Lookup",
  "config": { "kb_id": "kb_abc123" }
}
```

## Assigning a tool to an agent

```bash theme={"dark"}
curl -X POST "https://api.sendora.ai/api/v1/public/tools/{tool_id}/assignments" \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "agent_id": "agent_xyz" }'
```

Once assigned, the tool is available during the agent's next call. No restart needed.

## Unassigning a tool

```bash theme={"dark"}
DELETE /api/v1/public/tools/{tool_id}/assignments/{agent_id}
```

The tool remains configured in your workspace, it's just no longer available to that specific agent.

## Listing agent tools

```bash theme={"dark"}
GET /api/v1/public/voice-agents/{agent_id}
```

The agent response includes an array of assigned tools with their configs.

## End-to-end: equipping an agent for demos

```bash theme={"dark"}
# 1. Create a KB lookup tool pointing at your product FAQ
TOOL=$(curl -sX POST .../tools \
  -d '{"sendora_name":"knowledge_base","name":"Product FAQ","config":{"kb_id":"kb_faq"}}' \
  | jq -r .id)

# 2. Create a meeting booking tool
MTG=$(curl -sX POST .../tools \
  -d '{"slug":"book_meeting","name":"Book Demo","config":{"calendar_connection_id":"conn_gcal","meeting_duration_minutes":30}}' \
  | jq -r .id)

# 3. Assign both to the agent
curl -X POST ".../tools/$TOOL/assignments" -d '{"agent_id":"agent_demo"}'
curl -X POST ".../tools/$MTG/assignments"  -d '{"agent_id":"agent_demo"}'
```

Now the demo agent can answer product questions from the KB and book meetings directly during a call.


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