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

# List tools

> Retrieve all mid-call tools on your account.

Returns all mid-call tools belonging to the authenticated user. Mid-call tools enable your AI assistants to call external APIs during a call.

## Endpoint

`GET /user/tools`

## Response

<ResponseField name="data" type="array">
  Array of mid-call tool objects.

  <Expandable title="Tool properties">
    <ResponseField name="id" type="integer">Unique identifier of the tool.</ResponseField>
    <ResponseField name="name" type="string">Tool name (lowercase letters and underscores, e.g., `get_weather`).</ResponseField>
    <ResponseField name="description" type="string">Description of when and how the AI should use this tool.</ResponseField>
    <ResponseField name="endpoint" type="string">API endpoint URL that will be called.</ResponseField>
    <ResponseField name="method" type="string">HTTP method: `GET`, `POST`, `PUT`, `PATCH`, or `DELETE`.</ResponseField>
    <ResponseField name="timeout" type="integer">Request timeout in seconds.</ResponseField>

    <ResponseField name="headers" type="array">
      HTTP headers sent with the request.

      <Expandable title="Header properties">
        <ResponseField name="name" type="string">Header name.</ResponseField>
        <ResponseField name="value" type="string">Header value.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="schema" type="array">
      Parameters the AI extracts from the conversation and sends to the endpoint.

      <Expandable title="Schema field properties">
        <ResponseField name="name" type="string">Parameter name.</ResponseField>
        <ResponseField name="type" type="string">Parameter type: `string`, `number`, or `boolean`.</ResponseField>
        <ResponseField name="description" type="string">Description to help the AI extract this parameter.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string">ISO 8601 creation timestamp.</ResponseField>
    <ResponseField name="updated_at" type="string">ISO 8601 last update timestamp.</ResponseField>
  </Expandable>
</ResponseField>

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://portal.intellixent.ai/api/user/tools" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://portal.intellixent.ai/api/user/tools', {
    headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
  });

  const data = await response.json();
  console.log(data); // Array of tools
  ```
</CodeGroup>

```json 200 Response theme={null}
[
  {
    "id": 1,
    "name": "check_order_status",
    "description": "Use this tool to check the status of a customer's order when they ask about it.",
    "endpoint": "https://api.yourstore.com/orders/status",
    "method": "GET",
    "timeout": 10,
    "headers": [
      { "name": "Authorization", "value": "Bearer sk_..." }
    ],
    "schema": [
      {
        "name": "order_id",
        "type": "string",
        "description": "The customer's order ID"
      }
    ],
    "created_at": "2025-10-10T12:00:00.000000Z",
    "updated_at": "2025-10-10T12:00:00.000000Z"
  }
]
```

To attach tools to an assistant, use the `tool_ids` parameter in the [Create assistant](/api-reference/assistants/create-assistant) or [Update assistant](/api-reference/assistants/update-assistant) endpoints.
