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

# Custom API tools

> Connect any REST API as a tool your agent can use during calls.

## Overview

Custom tools let you connect your own API endpoints to your agent. This enables powerful integrations like checking appointment availability, looking up order status, or creating bookings — all triggered naturally during a phone conversation.

## Creating a custom tool

**1. Open the tools section**

Go to your agent's settings → **Tools** tab and click **Create custom tool**.

**2. Define the tool**

Fill in:

* **Name** — a descriptive name (e.g. `check_availability`)
* **Description** — explain what the tool does. The AI model uses this to decide when to invoke it.
* **Parameters** — define the input parameters the tool accepts (as JSON Schema).

**3. Configure the endpoint**

Set the API endpoint your tool calls:

* **URL** — the full endpoint URL
* **Method** — GET, POST, PUT, or DELETE
* **Headers** — any required headers (e.g. API key, content type)

**4. Add authentication**

> [tab] API key
>
> Add your API key as a header:
>
> ```
> Authorization: Bearer your-api-key-here
> ```

> [tab] No authentication
>
> If your endpoint is public, no authentication is needed. Leave headers empty.

**5. Test and save**

Save the tool and test it with a call to verify it works correctly.

## Parameter definition

Parameters tell the AI model what information to extract from the conversation and pass to your API. Define them using JSON Schema:

```json theme={null}
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "The requested appointment date in YYYY-MM-DD format"
    },
    "service": {
      "type": "string",
      "description": "The type of service requested",
      "enum": ["haircut", "coloring", "styling"]
    }
  },
  "required": ["date"]
}
```

> [!TIP]
>
> Write clear descriptions for each parameter. The AI model uses these descriptions to understand what information to extract from the caller's words.

## Example: appointment checker

A hair salon wants their agent to check appointment availability:

**Tool configuration:**

* Name: `check_availability`
* Description: "Check if there are available time slots on a given date for a specific service."
* Endpoint: `https://api.salon.com/availability`
* Method: `GET`

**Agent instructions:**

```text theme={null}
When a caller wants to book an appointment, use the check_availability
tool to verify if the requested date is available. If slots are open,
confirm the booking. If not, suggest the nearest available date.
```

> [!WARNING]
>
> Your API endpoint must respond within 10 seconds. Slower responses will cause noticeable pauses during the conversation.


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