---
updatedAt: 2026-08-17T22:40:44.000Z
agentTools:
  projectIndex: https://docs.whippy.ai/llms.txt
---

# Search Tools

Searches tools for an organization using forward cursor pagination.

# OpenAPI definition

```json
{
  "components": {
    "schemas": {
      "NotAuthenticatedErrorResponse": {
        "description": "Not Authenticated Error Response schema",
        "example": {
          "errors": [
            {
              "description": "Not authenticated"
            }
          ],
          "status": 401
        },
        "properties": {
          "errors": {
            "description": "Not authenticated error",
            "items": {
              "properties": {
                "description": {
                  "enum": [
                    "Not authenticated"
                  ],
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                }
              },
              "type": "object",
              "x-struct": null,
              "x-validate": null
            },
            "type": "array",
            "x-struct": null,
            "x-validate": null
          },
          "status": {
            "enum": [
              401
            ],
            "type": "integer",
            "x-struct": null,
            "x-validate": null
          }
        },
        "title": "NotAuthenticatedErrorResponse",
        "type": "object",
        "x-struct": "Elixir.DashboardApiWeb.Public.V1.Documentation.Errors.NotAuthenticated",
        "x-validate": null
      },
      "ToolUnprocessableContentErrorResponse": {
        "additionalProperties": false,
        "description": "List of error responses for invalid tool POST, PATCH, or DELETE requests.",
        "example": {
          "errors": [
            {
              "description": "Name can't be blank"
            }
          ],
          "status": 422
        },
        "properties": {
          "errors": {
            "description": "Tool 422 errors",
            "items": {
              "additionalProperties": false,
              "description": "Single 422 error",
              "properties": {
                "description": {
                  "description": "Human-readable explanation of the invalid request.",
                  "example": "Name is invalid",
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                }
              },
              "required": [
                "description"
              ],
              "type": "object",
              "x-struct": null,
              "x-validate": null
            },
            "type": "array",
            "x-struct": null,
            "x-validate": null
          },
          "status": {
            "enum": [
              422
            ],
            "example": 422,
            "type": "integer",
            "x-struct": null,
            "x-validate": null
          }
        },
        "required": [
          "status",
          "errors"
        ],
        "title": "ToolUnprocessableContentErrorResponse",
        "type": "object",
        "x-struct": null,
        "x-validate": null
      },
      "SearchToolsParams": {
        "additionalProperties": false,
        "description": "Request schema for searching tools.",
        "properties": {
          "cursor": {
            "description": "Opaque cursor from the previous page",
            "nullable": true,
            "type": "string",
            "x-struct": null,
            "x-validate": null
          },
          "limit": {
            "default": 50,
            "maximum": 500,
            "minimum": 1,
            "type": "integer",
            "x-struct": null,
            "x-validate": null
          },
          "name": {
            "description": "Case-insensitive partial tool name",
            "maxLength": 64,
            "minLength": 1,
            "type": "string",
            "x-struct": null,
            "x-validate": null
          },
          "type": {
            "description": "Tool type",
            "enum": [
              "custom",
              "transfer_call",
              "execute_actions",
              "press_digit",
              "check_availability_cal",
              "book_appointment_cal"
            ],
            "type": "string",
            "x-struct": null,
            "x-validate": null
          }
        },
        "title": "SearchToolsParams",
        "type": "object",
        "x-struct": null,
        "x-validate": null
      },
      "SearchToolsResponse": {
        "additionalProperties": false,
        "description": "Response schema for searching tools.",
        "example": {
          "data": [
            {
              "actions": [],
              "created_at": "2026-08-07T09:00:00Z",
              "created_by": {
                "email": "bruce@wayneenterprises.com",
                "id": 1,
                "name": "Bruce Wayne",
                "phone": null
              },
              "description": "Transfers the call at the contact's request.",
              "id": "aedb62d5-44cb-427c-b504-028a8a75c21b",
              "label": "Transfer Call",
              "name": "transfer_call",
              "organization": {
                "ai_context": null,
                "id": "e07190c2-f47c-436f-8e07-62d34cb97f2c",
                "name": "Wayne Enterprises"
              },
              "settings": {
                "transfer_options": [
                  {
                    "identifier": "Support",
                    "type": "forward_to_agent",
                    "value": "8f924d9a-1914-41b4-a1a8-1a4813c3281e"
                  }
                ]
              },
              "signing_api_key_id": null,
              "type": "transfer_call",
              "updated_at": "2026-08-07T09:00:00Z",
              "updated_by": {
                "email": "bruce@wayneenterprises.com",
                "id": 1,
                "name": "Bruce Wayne",
                "phone": null
              }
            }
          ],
          "metadata": {
            "cursor_reset": false,
            "next_cursor": null
          }
        },
        "properties": {
          "data": {
            "description": "List of tools",
            "items": {
              "additionalProperties": false,
              "description": "Tool record",
              "example": {
                "actions": [],
                "created_at": "2026-08-07T09:00:00Z",
                "created_by": {
                  "email": "bruce@wayneenterprises.com",
                  "id": 1,
                  "name": "Bruce Wayne",
                  "phone": null
                },
                "description": "Transfers the call at the contact's request.",
                "id": "aedb62d5-44cb-427c-b504-028a8a75c21b",
                "label": "Transfer Call",
                "name": "transfer_call",
                "organization": {
                  "ai_context": null,
                  "id": "e07190c2-f47c-436f-8e07-62d34cb97f2c",
                  "name": "Wayne Enterprises"
                },
                "settings": {
                  "transfer_options": [
                    {
                      "identifier": "Support",
                      "type": "forward_to_agent",
                      "value": "8f924d9a-1914-41b4-a1a8-1a4813c3281e"
                    }
                  ]
                },
                "signing_api_key_id": null,
                "type": "transfer_call",
                "updated_at": "2026-08-07T09:00:00Z",
                "updated_by": {
                  "email": "bruce@wayneenterprises.com",
                  "id": 1,
                  "name": "Bruce Wayne",
                  "phone": null
                }
              },
              "properties": {
                "actions": {
                  "description": "Actions executed by the tool",
                  "items": {
                    "additionalProperties": false,
                    "description": "Action associated with a segment, automation, or other trigger",
                    "example": {
                      "approval_required": false,
                      "approval_required_by_id": null,
                      "created_at": "2026-08-07T09:00:00Z",
                      "enabled": true,
                      "id": "08fab2d1-5ec9-4bdb-b79f-e1f9d3f85135",
                      "organization_id": "a65c2a47-f2ff-40ec-9910-5bb9153935ac",
                      "params": {
                        "body": "Thanks for contacting us.",
                        "type": "static"
                      },
                      "type": "send_message",
                      "updated_at": "2026-08-07T09:00:00Z"
                    },
                    "properties": {
                      "approval_required": {
                        "default": false,
                        "description": "Action require approval",
                        "type": "boolean",
                        "x-struct": null,
                        "x-validate": null
                      },
                      "approval_required_by_id": {
                        "description": "Action required approval by user ID",
                        "nullable": true,
                        "type": "integer",
                        "x-struct": null,
                        "x-validate": null
                      },
                      "created_at": {
                        "description": "Time of creation of the action in ISO 8601 format",
                        "format": "date-time",
                        "type": "string",
                        "x-struct": null,
                        "x-validate": null
                      },
                      "enabled": {
                        "description": "Action enabled state",
                        "type": "boolean",
                        "x-struct": null,
                        "x-validate": null
                      },
                      "id": {
                        "description": "Action ID",
                        "format": "uuid",
                        "type": "string",
                        "x-struct": null,
                        "x-validate": null
                      },
                      "organization_id": {
                        "description": "Organization ID",
                        "example": "432240b6-88bd-4a8b-833a-9b707a77081b",
                        "format": "uuid",
                        "type": "string",
                        "x-struct": null,
                        "x-validate": null
                      },
                      "params": {
                        "description": "Parameters for the selected action `type`.\n\n- `send_message`:\n  - **Required:**\n    - `body`: Message body.\n  - **Optional:**\n    - `type`: Whether the message body is `prompt` generated or `static`.\n    - `attachment_urls`: List of attachment URLs.\n    - `attachments`: List of attachments, each containing `url` and `content_type` (the MIME type).\n\n- `add_tags`:\n  - **Required:**\n    - `tag_ids`: List of tag UUIDs to add to the contact.\n\n- `remove_tags`:\n  - **Required:**\n    - `tag_ids`: List of tag UUIDs to remove from the contact.\n\n- `assign_user`:\n  - **Required:**\n    - `user_id`: Integer ID of the user to assign to the conversation.\n\n- `unassign_user`: No params are accepted; use `{}`.\n\n- `assign_team`:\n  - **Required:**\n    - `team_id`: UUID of the team to assign.\n\n- `unassign_team`: No params are accepted; use `{}`.\n\n- `add_to_sequence`:\n  - **Required:**\n    - `sequence_id`: UUID of the sequence to add the contact to.\n\n- `remove_from_sequence`:\n  - **Required:**\n    - `sequence_id`: UUID of the sequence to remove the contact from.\n\n- `move_to_step`:\n  - **Required:**\n    - `sequence_id`: Sequence UUID.\n    - `step_id`: Step UUID.\n\n- `opt_in`: No params are accepted; use `{}`.\n\n- `opt_out`: No params are accepted; use `{}`.\n\n- `notify_users`:\n  - **Required:**\n    - `user_ids`: List of integer user IDs or their digit-only string representations.\n\n- `update_conversation_status`:\n  - **Required:**\n    - `status`: New conversation status, either `open` or `closed`.\n\n- `send_email`:\n  - **Required:**\n    - `subject`: Email subject. Supports placeholders such as `{{first_name}}`, `{{custom.<object>.<property>:contact}}`, and the message-triggered `{{inbound_message}}`, `{{outbound_message}}`, and `{{form_transcript}}` placeholders.\n    - `body`: Email body. Supports the same Whippy placeholders as `subject`.\n  - **Optional:**\n    - `type`: Whether the email subject and body are `prompt` generated or `static`.\n    - `to`: Recipient email address.\n    - `from`: Sender email address.\n    - `cc`: CC email address.\n    - `bcc`: BCC email address.\n    - `reply_to`: Reply-to email address.\n\n- `start_call_agent`:\n  - **Required:**\n    - `agent_id`: UUID of the Agent to use for the call.\n  - **Optional:**\n    - `bypass_quiet_hours`: Whether to bypass quiet-hours restrictions.\n    - `custom_placeholders_data`: Custom placeholder values passed to the Agent.\n    - `schedule_options`: Scheduling data with optional `days`, `hours`, `minutes`, `timezone`, `type`, and `description` fields. `type`, when present, must be `prompt`.\n\n- `start_chat_agent`:\n  - **Required:**\n    - `agent_id`: UUID of the Agent to use for the chat.\n  - **Optional:**\n    - `send_initial_message`: Whether to send an initial message to the Agent.\n    - `custom_placeholders_data`: Custom placeholder values passed to the Agent.\n    - `schedule_options`: Scheduling data with optional `days`, `hours`, `minutes`, `timezone`, `type`, and `description` fields. `type`, when present, must be `prompt`.\n\n- `send_http_request`:\n  - **Required:**\n    - `method`: HTTP method, either `GET` or `POST`.\n    - `url`: Public HTTPS endpoint.\n  - **Optional:**\n    - `payload`: JSON request payload.\n",
                        "oneOf": [
                          {
                            "description": "Send Message Action params used when processing the action.",
                            "example": {
                              "attachments": [
                                {
                                  "content_type": "image/jpeg",
                                  "url": "https://whippy-public-api-example.s3.us-west-2.amazonaws.com/cat.jpg"
                                }
                              ],
                              "body": "Automated message, yay!"
                            },
                            "properties": {
                              "attachment_urls": {
                                "description": "List of attachment URLs",
                                "example": [
                                  "https://whippy-public-api-example.s3.us-west-2.amazonaws.com/cat.jpg"
                                ],
                                "items": {
                                  "description": "Attachment URL",
                                  "example": "https://whippy-public-api-example.s3.us-west-2.amazonaws.com/cat.jpg",
                                  "type": "string",
                                  "x-struct": null,
                                  "x-validate": null
                                },
                                "type": "array",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "attachments": {
                                "description": "List of attachments with content type",
                                "example": [
                                  {
                                    "content_type": "image/jpeg",
                                    "url": "https://whippy-public-api-example.s3.us-west-2.amazonaws.com/cat.jpg"
                                  }
                                ],
                                "items": {
                                  "description": "Attachment",
                                  "properties": {
                                    "content_type": {
                                      "description": "MIME Type of the attachment",
                                      "example": "image/jpeg",
                                      "type": "string",
                                      "x-struct": null,
                                      "x-validate": null
                                    },
                                    "url": {
                                      "description": "Attachment URL",
                                      "example": "https://whippy-public-api-example.s3.us-west-2.amazonaws.com/cat.jpg",
                                      "type": "string",
                                      "x-struct": null,
                                      "x-validate": null
                                    }
                                  },
                                  "type": "object",
                                  "x-struct": null,
                                  "x-validate": null
                                },
                                "type": "array",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "body": {
                                "description": "Body of a message action",
                                "example": "You are lucky! This automated response is fast!",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "type": {
                                "description": "Whether the message body is static or generated from a prompt",
                                "enum": [
                                  "prompt",
                                  "static"
                                ],
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "body"
                            ],
                            "title": "SendMessageAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Add Tags Action params used when processing the action.",
                            "example": {
                              "tag_ids": [
                                "a2f571e3-d53b-4ed2-aa21-d1b787b0f3d9",
                                "5ca1b11e-a453-4e95-878f-336f5c2b49e2"
                              ]
                            },
                            "properties": {
                              "tag_ids": {
                                "description": "List of tags to add to the contact",
                                "items": {
                                  "description": "Tag ID",
                                  "example": "6a4639cd-a050-4676-83dd-62783f5378fb",
                                  "format": "uuid",
                                  "type": "string",
                                  "x-struct": null,
                                  "x-validate": null
                                },
                                "type": "array",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "tag_ids"
                            ],
                            "title": "AddTagsAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Remove Tags Action params used when processing the action.",
                            "example": {
                              "tag_ids": [
                                "c69748be-8129-4a03-b5dd-38cf381781d0",
                                "86537af6-5988-41fe-aa71-ea468ba481ff"
                              ]
                            },
                            "properties": {
                              "tag_ids": {
                                "description": "List of tags to remove from the contact",
                                "items": {
                                  "description": "Tag ID",
                                  "example": "d0a49ac2-6499-476e-9763-bfbf4baf80ac",
                                  "format": "uuid",
                                  "type": "string",
                                  "x-struct": null,
                                  "x-validate": null
                                },
                                "type": "array",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "tag_ids"
                            ],
                            "title": "RemoveTagsAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Assign User Action params used when processing the action.",
                            "example": {
                              "user_id": 42
                            },
                            "properties": {
                              "user_id": {
                                "description": "ID of the user to assign to the conversation",
                                "example": 42,
                                "type": "integer",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "user_id"
                            ],
                            "title": "AssignUserAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "additionalProperties": false,
                            "description": "Unassign User Action params used when processing the action.",
                            "example": {},
                            "properties": {},
                            "title": "UnassignUserAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "additionalProperties": false,
                            "description": "Assign Team Action params used when processing the action.",
                            "properties": {
                              "team_id": {
                                "description": "ID of the Team to assign",
                                "format": "uuid",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "team_id"
                            ],
                            "title": "AssignTeamAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "additionalProperties": false,
                            "description": "Unassign Team Action params used when processing the action.",
                            "properties": {},
                            "title": "UnassignTeamAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Add To Sequence Action params used when processing the action.",
                            "example": {
                              "sequence_id": "73789ba7-3923-4d72-9245-0f8bcd150930"
                            },
                            "properties": {
                              "sequence_id": {
                                "description": "ID of the Sequence to add the contact to",
                                "example": "39e2bb5a-730c-4c74-bae8-ad6760c6dd43",
                                "format": "uuid",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "sequence_id"
                            ],
                            "title": "AddToSequenceAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Remove From Sequence Action params used when processing the action.",
                            "example": {
                              "sequence_id": "0fc74022-57cc-454e-bc92-2d93beb43c21"
                            },
                            "properties": {
                              "sequence_id": {
                                "description": "ID of the Sequence to remove the contact from",
                                "example": "910b16a7-8e82-4c25-bc90-7cb0df14f27c",
                                "format": "uuid",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "sequence_id"
                            ],
                            "title": "RemoveFromSequenceAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Move TO Step Action params used when processing the action.",
                            "example": {
                              "sequence_id": "9ec5246d-da8c-4009-a583-95015df33f29",
                              "step_id": "0ccca6e9-ebf0-4526-a122-0c9beed001d6"
                            },
                            "properties": {
                              "sequence_id": {
                                "description": "Sequence ID",
                                "example": "0eb0645c-b6ab-462d-ac03-a2d093037629",
                                "format": "uuid",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "step_id": {
                                "description": "Step ID",
                                "example": "7e364ba7-8e16-4379-86d4-9b924efc0a39",
                                "format": "uuid",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "sequence_id",
                              "step_id"
                            ],
                            "title": "MoveToStepAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "additionalProperties": false,
                            "description": "Opt In Action params used when processing the action.",
                            "example": {},
                            "properties": {},
                            "title": "OptInAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "additionalProperties": false,
                            "description": "Opt Out Action params used when processing the action.",
                            "example": {},
                            "properties": {},
                            "title": "OptOutAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Notify Users Action params used when processing the action.",
                            "example": {
                              "user_ids": [
                                "42",
                                "1024",
                                "2364"
                              ]
                            },
                            "properties": {
                              "user_ids": {
                                "description": "List of string user IDs",
                                "example": [
                                  "42",
                                  "1024",
                                  "2364"
                                ],
                                "items": {
                                  "description": "Integer user ID or its digit-only string representation",
                                  "oneOf": [
                                    {
                                      "type": "integer",
                                      "x-struct": null,
                                      "x-validate": null
                                    },
                                    {
                                      "pattern": "^\\d+$",
                                      "type": "string",
                                      "x-struct": null,
                                      "x-validate": null
                                    }
                                  ],
                                  "x-struct": null,
                                  "x-validate": null
                                },
                                "type": "array",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "user_ids"
                            ],
                            "title": "NotifyUsersAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Update Conversation Status Action params used when processing the action.",
                            "example": {
                              "status": "open"
                            },
                            "properties": {
                              "status": {
                                "description": "New conversation status",
                                "enum": [
                                  "open",
                                  "closed"
                                ],
                                "example": "open",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "status"
                            ],
                            "title": "UpdateConversationStatusAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Send Email Action params used when processing the action.",
                            "example": {
                              "bcc": "john.constantine@example.com",
                              "body": "Automated email, yay!",
                              "cc": "superman@example.com",
                              "from": "",
                              "reply_to": "mycoolmail@example.com",
                              "subject": "Action Email",
                              "to": "batman@example.com"
                            },
                            "properties": {
                              "bcc": {
                                "description": "BCC email",
                                "example": "john.constantine@example.com",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "body": {
                                "description": "Email body. Supports placeholders such as `{{first_name}}`, `{{custom.<object>.<property>:contact}}`, and, for message-triggered automations, `{{inbound_message}}` (the contact's reply), `{{outbound_message}}` (the sequence step or campaign message they replied to), and `{{form_transcript}}` (the form response transcript).",
                                "example": "You are lucky! This automated response is fast!",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "cc": {
                                "description": "CC email",
                                "example": "superman@example.com",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "from": {
                                "description": "From email",
                                "example": "myemail@example.com",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "reply_to": {
                                "description": "Reply To email",
                                "example": "mycoolmail@example.com",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "subject": {
                                "description": "Email subject. Supports placeholders such as `{{first_name}}`, `{{custom.<object>.<property>:contact}}`, and, for message-triggered automations, `{{inbound_message}}` (the contact's reply), `{{outbound_message}}` (the sequence step or campaign message they replied to), and `{{form_transcript}}` (the form response transcript).",
                                "example": "Hi from Whippy!",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "to": {
                                "description": "To email",
                                "example": "batman@example.com",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "type": {
                                "description": "Whether the email subject and body is static or generated from a prompt",
                                "enum": [
                                  "prompt",
                                  "static"
                                ],
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "subject",
                              "body"
                            ],
                            "title": "SendEmailAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "additionalProperties": false,
                            "description": "Start Call Agent Action params used when processing the action.",
                            "properties": {
                              "agent_id": {
                                "description": "ID of the Agent to use for the call",
                                "example": "1fa93e2f-ea9e-46a4-92e3-3c9a5e6dfc1b",
                                "format": "uuid",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "bypass_quiet_hours": {
                                "default": false,
                                "description": "Whether to bypass quiet hours restrictions",
                                "example": false,
                                "type": "boolean",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "custom_placeholders_data": {
                                "description": "Custom placeholder values passed to the Agent",
                                "type": "object",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "schedule_options": {
                                "additionalProperties": false,
                                "properties": {
                                  "days": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "description": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "hours": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "minutes": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "timezone": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "type": {
                                    "enum": [
                                      "prompt"
                                    ],
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  }
                                },
                                "type": "object",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "agent_id"
                            ],
                            "title": "StartCallAgentAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "description": "Start Chat Agent Action params used when processing the action.",
                            "example": {
                              "agent_id": "b457cb12-2f26-4ae4-a2b7-8ab69d582927",
                              "send_initial_message": true
                            },
                            "properties": {
                              "agent_id": {
                                "description": "ID of the Agent to use for the chat",
                                "example": "9f4e3cce-48b9-42e5-9cd4-e9af8e6ef641",
                                "format": "uuid",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "custom_placeholders_data": {
                                "type": "object",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "schedule_options": {
                                "additionalProperties": false,
                                "properties": {
                                  "days": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "description": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "hours": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "minutes": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "timezone": {
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  "type": {
                                    "enum": [
                                      "prompt"
                                    ],
                                    "type": "string",
                                    "x-struct": null,
                                    "x-validate": null
                                  }
                                },
                                "type": "object",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "send_initial_message": {
                                "default": false,
                                "description": "Whether to send an initial message to the agent",
                                "example": true,
                                "type": "boolean",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "agent_id"
                            ],
                            "title": "StartChatAgentAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          {
                            "additionalProperties": false,
                            "description": "Send HTTP Request Action params used when processing the action.",
                            "properties": {
                              "method": {
                                "enum": [
                                  "GET",
                                  "POST"
                                ],
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "payload": {
                                "description": "Optional JSON request payload",
                                "type": "object",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "url": {
                                "description": "Public HTTPS endpoint; private and internal hosts are rejected",
                                "format": "uri",
                                "pattern": "^https://",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "method",
                              "url"
                            ],
                            "title": "SendHttpRequestAction",
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          }
                        ],
                        "x-struct": null,
                        "x-validate": null
                      },
                      "type": {
                        "description": "Action type",
                        "enum": [
                          "send_message",
                          "add_tags",
                          "remove_tags",
                          "assign_user",
                          "unassign_user",
                          "assign_team",
                          "unassign_team",
                          "add_to_sequence",
                          "remove_from_sequence",
                          "move_to_step",
                          "opt_in",
                          "opt_out",
                          "notify_users",
                          "update_conversation_status",
                          "send_email",
                          "start_call_agent",
                          "start_chat_agent",
                          "send_http_request"
                        ],
                        "type": "string",
                        "x-struct": null,
                        "x-validate": null
                      },
                      "updated_at": {
                        "description": "Time of last update of the action in ISO 8601 format",
                        "format": "date-time",
                        "type": "string",
                        "x-struct": null,
                        "x-validate": null
                      }
                    },
                    "required": [
                      "id",
                      "type",
                      "params",
                      "enabled",
                      "approval_required",
                      "approval_required_by_id",
                      "organization_id",
                      "created_at",
                      "updated_at"
                    ],
                    "type": "object",
                    "x-struct": null,
                    "x-validate": null
                  },
                  "type": "array",
                  "x-struct": null,
                  "x-validate": null
                },
                "created_at": {
                  "description": "Tool creation timestamp",
                  "format": "date-time",
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "created_by": {
                  "additionalProperties": false,
                  "description": "Data for the user that created the tool",
                  "nullable": true,
                  "properties": {
                    "email": {
                      "description": "User email",
                      "example": "bruce@wayne.com",
                      "format": "email",
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "id": {
                      "description": "User ID",
                      "example": 1,
                      "type": "integer",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "name": {
                      "description": "User name",
                      "example": "Bruce Wayne",
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "phone": {
                      "description": "User phone",
                      "nullable": true,
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    }
                  },
                  "required": [
                    "id",
                    "email",
                    "name",
                    "phone"
                  ],
                  "type": "object",
                  "x-struct": null,
                  "x-validate": null
                },
                "description": {
                  "description": "Description of what the tool does and when it should be used",
                  "example": "Transfers the call at the contact's request.",
                  "maxLength": 255,
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "id": {
                  "description": "Tool ID",
                  "example": "aedb62d5-44cb-427c-b504-028a8a75c21b",
                  "format": "uuid",
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "label": {
                  "description": "Tool label",
                  "example": "Transfer Call",
                  "maxLength": 255,
                  "nullable": true,
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "name": {
                  "description": "Tool name",
                  "example": "transfer_call",
                  "maxLength": 64,
                  "minLength": 1,
                  "pattern": "^[a-zA-Z0-9_-]{1,64}$",
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "organization": {
                  "additionalProperties": false,
                  "description": "Data for the organization that the tool belongs to",
                  "properties": {
                    "ai_context": {
                      "description": "Organization AI context",
                      "nullable": true,
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "id": {
                      "description": "Organization ID",
                      "example": "e07190c2-f47c-436f-8e07-62d34cb97f2c",
                      "format": "uuid",
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "name": {
                      "description": "Organization name",
                      "example": "Wayne Enterprises",
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "ai_context"
                  ],
                  "type": "object",
                  "x-struct": null,
                  "x-validate": null
                },
                "settings": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "example": {
                        "method": "POST",
                        "parameters": {
                          "description": "Order lookup parameters",
                          "properties": {},
                          "type": "object"
                        },
                        "speak_after_execution": true,
                        "speak_during_execution": false,
                        "url": "https://example.com/webhook"
                      },
                      "properties": {
                        "execution_message_description": {
                          "description": "Exact phrase or instruction describing what the agent should say when starting execution",
                          "type": "string",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "headers": {
                          "additionalProperties": {
                            "type": "string",
                            "x-struct": null,
                            "x-validate": null
                          },
                          "description": "HTTP request headers",
                          "type": "object",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "include_whippy_context": {
                          "description": "Whether to add the current contact, conversation, and message as whippy_context in POST, PUT, and PATCH JSON bodies",
                          "type": "boolean",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "method": {
                          "default": "POST",
                          "enum": [
                            "POST",
                            "GET",
                            "PUT",
                            "PATCH",
                            "DELETE"
                          ],
                          "example": "POST",
                          "type": "string",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "parameters": {
                          "description": "JSON Schema describing the custom tool input. The root schema requires a description.",
                          "properties": {
                            "$defs": {
                              "additionalProperties": {
                                "oneOf": [
                                  {
                                    "description": "String type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the string property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the string property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed string property values",
                                        "items": {
                                          "type": "string",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the string property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "format": {
                                        "description": "Format of the string property",
                                        "enum": [
                                          "date-time",
                                          "time",
                                          "date",
                                          "duration",
                                          "email",
                                          "hostname",
                                          "ipv4",
                                          "ipv6",
                                          "uuid"
                                        ],
                                        "example": "email",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "pattern": {
                                        "description": "Pattern of the string property",
                                        "example": "^@[a-zA-Z0-9_]+$",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the string property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "string"
                                        ],
                                        "example": "string",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Boolean type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the boolean property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the boolean property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed boolean property values",
                                        "items": {
                                          "type": "boolean",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the boolean property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the boolean property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "boolean"
                                        ],
                                        "example": "boolean",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Integer type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the integer property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the integer property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed integer property values",
                                        "items": {
                                          "type": "integer",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the integer property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the integer property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "integer"
                                        ],
                                        "example": "integer",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Number type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the number property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the number property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed number property values",
                                        "items": {
                                          "type": "number",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the number property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "exclusiveMaximum": {
                                        "description": "Exclusive maximum value of the number property",
                                        "example": 100,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "exclusiveMinimum": {
                                        "description": "Exclusive minimum value of the number property",
                                        "example": 0,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "maximum": {
                                        "description": "Maximum value of the number property",
                                        "example": 100,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "minimum": {
                                        "description": "Minimum value of the number property",
                                        "example": 0,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "multipleOf": {
                                        "description": "Allowed 'multiple of' value for the number property",
                                        "example": 1,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the number property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "number"
                                        ],
                                        "example": "number",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Null type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the null property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the null property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed null property values",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the null property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the null property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "null"
                                        ],
                                        "example": "null",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Array type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value for the array property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the array property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the array property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "items": {
                                        "description": "Schema for items in the array property.\n\nCan be any of:\n- String\n- Boolean\n- Integer\n- Number\n- Object\n- Array\n- Any of\n- Reference\n",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "maxItems": {
                                        "description": "Maximum number of items in the array",
                                        "type": "integer",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "minItems": {
                                        "description": "Minimum number of items in the array",
                                        "type": "integer",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the array property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "array"
                                        ],
                                        "example": "array",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "items"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Object type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value for the object property",
                                        "type": "object",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the object property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the object property",
                                        "items": {
                                          "type": "object",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "properties": {
                                        "additionalProperties": true,
                                        "description": "Properties of the object property.\n\nEach key/value pair corresponds to a property that can be any of:\n- String\n- Boolean\n- Integer\n- Number\n- Object\n- Array\n- Any of\n- Reference\n",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "required": {
                                        "description": "Required properties of the object property",
                                        "items": {
                                          "type": "string",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the object property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "object"
                                        ],
                                        "example": "object",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "properties",
                                      "required"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "additionalProperties": false,
                                    "description": "Any of JSON Schema property",
                                    "properties": {
                                      "anyOf": {
                                        "description": "Schemas for the any of JSON Schema property.",
                                        "items": {
                                          "description": "Schema for the any of JSON Schema property.\n\nCan be any of:\n- String\n- Boolean\n- Integer\n- Number\n- Object\n- Array\n- Reference\n",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "anyOf"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "additionalProperties": false,
                                    "description": "Reference JSON Schema property",
                                    "properties": {
                                      "$ref": {
                                        "description": "Reference to a JSON Schema definition",
                                        "example": "#/$defs/my_schema",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "$ref"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  }
                                ],
                                "x-struct": null,
                                "x-validate": null
                              },
                              "description": "Definitions of reusable JSON Schema properties that can be referenced using $ref.\n\nEach key/value pair corresponds to a reusable property.\n- **It's validated against all defined types and their properties.**\n- **It supports additional JSON Schema definitions outside the AI Agent's `post_call_analysis_data`.**\n",
                              "type": "object",
                              "x-struct": null,
                              "x-validate": null
                            },
                            "properties": {
                              "additionalProperties": {
                                "oneOf": [
                                  {
                                    "description": "String type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the string property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the string property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed string property values",
                                        "items": {
                                          "type": "string",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the string property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "format": {
                                        "description": "Format of the string property",
                                        "enum": [
                                          "date-time",
                                          "time",
                                          "date",
                                          "duration",
                                          "email",
                                          "hostname",
                                          "ipv4",
                                          "ipv6",
                                          "uuid"
                                        ],
                                        "example": "email",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "pattern": {
                                        "description": "Pattern of the string property",
                                        "example": "^@[a-zA-Z0-9_]+$",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the string property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "string"
                                        ],
                                        "example": "string",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Boolean type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the boolean property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the boolean property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed boolean property values",
                                        "items": {
                                          "type": "boolean",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the boolean property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the boolean property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "boolean"
                                        ],
                                        "example": "boolean",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Integer type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the integer property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the integer property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed integer property values",
                                        "items": {
                                          "type": "integer",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the integer property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the integer property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "integer"
                                        ],
                                        "example": "integer",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Number type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the number property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the number property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed number property values",
                                        "items": {
                                          "type": "number",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the number property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "exclusiveMaximum": {
                                        "description": "Exclusive maximum value of the number property",
                                        "example": 100,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "exclusiveMinimum": {
                                        "description": "Exclusive minimum value of the number property",
                                        "example": 0,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "maximum": {
                                        "description": "Maximum value of the number property",
                                        "example": 100,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "minimum": {
                                        "description": "Minimum value of the number property",
                                        "example": 0,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "multipleOf": {
                                        "description": "Allowed 'multiple of' value for the number property",
                                        "example": 1,
                                        "type": "number",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the number property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "number"
                                        ],
                                        "example": "number",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Null type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value of the null property",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the null property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "enum": {
                                        "description": "Enumeration of allowed null property values",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the null property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the null property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "null"
                                        ],
                                        "example": "null",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Array type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value for the array property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the array property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the array property",
                                        "items": {
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "items": {
                                        "description": "Schema for items in the array property.\n\nCan be any of:\n- String\n- Boolean\n- Integer\n- Number\n- Object\n- Array\n- Any of\n- Reference\n",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "maxItems": {
                                        "description": "Maximum number of items in the array",
                                        "type": "integer",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "minItems": {
                                        "description": "Minimum number of items in the array",
                                        "type": "integer",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the array property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "array"
                                        ],
                                        "example": "array",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "items"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "description": "Object type JSON Schema property",
                                    "properties": {
                                      "default": {
                                        "description": "Default value for the object property",
                                        "type": "object",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "description": {
                                        "description": "Description of the object property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "examples": {
                                        "description": "Examples of the object property",
                                        "items": {
                                          "type": "object",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "properties": {
                                        "additionalProperties": true,
                                        "description": "Properties of the object property.\n\nEach key/value pair corresponds to a property that can be any of:\n- String\n- Boolean\n- Integer\n- Number\n- Object\n- Array\n- Any of\n- Reference\n",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "required": {
                                        "description": "Required properties of the object property",
                                        "items": {
                                          "type": "string",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "title": {
                                        "description": "Title of the object property",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      },
                                      "type": {
                                        "description": "Type of property per JSON Schema definition",
                                        "enum": [
                                          "object"
                                        ],
                                        "example": "object",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "type",
                                      "properties",
                                      "required"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "additionalProperties": false,
                                    "description": "Any of JSON Schema property",
                                    "properties": {
                                      "anyOf": {
                                        "description": "Schemas for the any of JSON Schema property.",
                                        "items": {
                                          "description": "Schema for the any of JSON Schema property.\n\nCan be any of:\n- String\n- Boolean\n- Integer\n- Number\n- Object\n- Array\n- Reference\n",
                                          "x-struct": null,
                                          "x-validate": null
                                        },
                                        "type": "array",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "anyOf"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  },
                                  {
                                    "additionalProperties": false,
                                    "description": "Reference JSON Schema property",
                                    "properties": {
                                      "$ref": {
                                        "description": "Reference to a JSON Schema definition",
                                        "example": "#/$defs/my_schema",
                                        "type": "string",
                                        "x-struct": null,
                                        "x-validate": null
                                      }
                                    },
                                    "required": [
                                      "$ref"
                                    ],
                                    "type": "object",
                                    "x-struct": null,
                                    "x-validate": null
                                  }
                                ],
                                "x-struct": null,
                                "x-validate": null
                              },
                              "description": "Properties of the JSON Schema.\n\nEach key/value pair corresponds to a property.\n- **It's validated against all defined types and their properties.**\n- **It supports additional JSON Schema definitions outside the AI Agent's `post_call_analysis_data`.**\n",
                              "x-struct": null,
                              "x-validate": null
                            },
                            "required": {
                              "description": "Required properties of the JSON Schema.\n\nMust be keys defined in the properties.\n",
                              "example": [],
                              "items": {
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "type": "array",
                              "x-struct": null,
                              "x-validate": null
                            },
                            "type": {
                              "description": "Type of the JSON Schema",
                              "enum": [
                                "object"
                              ],
                              "example": "object",
                              "type": "string",
                              "x-struct": null,
                              "x-validate": null
                            }
                          },
                          "required": [
                            "type",
                            "properties",
                            "required"
                          ],
                          "type": "object",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "query_params": {
                          "additionalProperties": {
                            "type": "string",
                            "x-struct": null,
                            "x-validate": null
                          },
                          "description": "HTTP request query parameters",
                          "type": "object",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "response_variables": {
                          "additionalProperties": {
                            "type": "string",
                            "x-struct": null,
                            "x-validate": null
                          },
                          "description": "Values extracted from the response",
                          "type": "object",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "retry": {
                          "additionalProperties": false,
                          "properties": {
                            "base_delay_ms": {
                              "maximum": 5000,
                              "minimum": 200,
                              "type": "integer",
                              "x-struct": null,
                              "x-validate": null
                            },
                            "max_delay_ms": {
                              "maximum": 15000,
                              "minimum": 200,
                              "type": "integer",
                              "x-struct": null,
                              "x-validate": null
                            },
                            "max_retries": {
                              "maximum": 3,
                              "minimum": 1,
                              "type": "integer",
                              "x-struct": null,
                              "x-validate": null
                            },
                            "retry_on_status_codes": {
                              "items": {
                                "enum": [
                                  408,
                                  429,
                                  500,
                                  502,
                                  503,
                                  504
                                ],
                                "type": "integer",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "minItems": 1,
                              "type": "array",
                              "x-struct": null,
                              "x-validate": null
                            }
                          },
                          "required": [
                            "max_retries",
                            "base_delay_ms",
                            "max_delay_ms",
                            "retry_on_status_codes"
                          ],
                          "type": "object",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "speak_after_execution": {
                          "description": "Whether the agent speaks after execution",
                          "type": "boolean",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "speak_during_execution": {
                          "description": "Whether the agent speaks during execution",
                          "type": "boolean",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "timeout_ms": {
                          "description": "Tool execution timeout in milliseconds",
                          "example": 3000,
                          "maximum": 120000,
                          "minimum": 1,
                          "type": "integer",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "url": {
                          "description": "Publicly reachable HTTPS endpoint called by the Tool",
                          "example": "https://example.com/webhook",
                          "format": "uri",
                          "pattern": "^https://",
                          "type": "string",
                          "x-struct": null,
                          "x-validate": null
                        }
                      },
                      "required": [
                        "url",
                        "speak_after_execution",
                        "speak_during_execution"
                      ],
                      "title": "CustomToolSettings",
                      "type": "object",
                      "x-struct": null,
                      "x-validate": null
                    },
                    {
                      "additionalProperties": false,
                      "example": {
                        "transfer_options": [
                          {
                            "identifier": "Support",
                            "type": "forward_to_agent",
                            "value": "8f924d9a-1914-41b4-a1a8-1a4813c3281e"
                          }
                        ]
                      },
                      "properties": {
                        "execution_message_description": {
                          "description": "Exact phrase or instruction describing what the agent should say when starting the transfer",
                          "type": "string",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "transfer_options": {
                          "description": "Transfer options for the tool",
                          "items": {
                            "additionalProperties": false,
                            "properties": {
                              "identifier": {
                                "description": "Transfer option identifier",
                                "example": "Support",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "target_channel_phone": {
                                "description": "Optional E.164 channel phone number used as a transfer target; only applies to forward_to_user, forward_to_team, and forward_to_agent",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "type": {
                                "description": "Transfer option type",
                                "enum": [
                                  "forward_to_user",
                                  "forward_to_team",
                                  "forward_to_agent",
                                  "forward_to_phone_number"
                                ],
                                "example": "forward_to_agent",
                                "type": "string",
                                "x-struct": null,
                                "x-validate": null
                              },
                              "value": {
                                "description": "Organization user ID, team UUID, agent UUID, or phone number based on type",
                                "example": "5e09116f-8b6e-492b-9822-955ab477e994",
                                "x-struct": null,
                                "x-validate": null
                              }
                            },
                            "required": [
                              "identifier",
                              "type",
                              "value"
                            ],
                            "type": "object",
                            "x-struct": null,
                            "x-validate": null
                          },
                          "maxItems": 36,
                          "minItems": 1,
                          "type": "array",
                          "x-struct": null,
                          "x-validate": null
                        }
                      },
                      "required": [
                        "transfer_options"
                      ],
                      "title": "TransferCallToolSettings",
                      "type": "object",
                      "x-struct": null,
                      "x-validate": null
                    },
                    {
                      "additionalProperties": false,
                      "example": {
                        "speak_after_execution": true,
                        "speak_during_execution": false,
                        "timeout_ms": 5000
                      },
                      "properties": {
                        "execution_message_description": {
                          "description": "Exact phrase or instruction describing what the agent should say when starting execution",
                          "type": "string",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "speak_after_execution": {
                          "description": "Whether the agent speaks after execution",
                          "type": "boolean",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "speak_during_execution": {
                          "description": "Whether the agent speaks during execution",
                          "type": "boolean",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "timeout_ms": {
                          "description": "Tool execution timeout in milliseconds",
                          "example": 5000,
                          "type": "integer",
                          "x-struct": null,
                          "x-validate": null
                        }
                      },
                      "required": [
                        "speak_after_execution",
                        "speak_during_execution"
                      ],
                      "title": "ExecuteActionsToolSettings",
                      "type": "object",
                      "x-struct": null,
                      "x-validate": null
                    },
                    {
                      "additionalProperties": false,
                      "example": {
                        "delay_ms": 1000
                      },
                      "properties": {
                        "delay_ms": {
                          "description": "Delay before pressing the digit in milliseconds. Must be at least 0.",
                          "example": 1000,
                          "minimum": 0,
                          "type": "integer",
                          "x-struct": null,
                          "x-validate": null
                        }
                      },
                      "title": "PressDigitToolSettings",
                      "type": "object",
                      "x-struct": null,
                      "x-validate": null
                    },
                    {
                      "additionalProperties": false,
                      "example": {
                        "cal_api_key": "cal_live_example",
                        "event_type_id": 60444,
                        "timezone": "America/Los_Angeles"
                      },
                      "properties": {
                        "cal_api_key": {
                          "description": "Cal.com API key",
                          "type": "string",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "event_type_id": {
                          "description": "Cal.com event type ID",
                          "type": "number",
                          "x-struct": null,
                          "x-validate": null
                        },
                        "timezone": {
                          "description": "Calendar timezone",
                          "type": "string",
                          "x-struct": null,
                          "x-validate": null
                        }
                      },
                      "required": [
                        "cal_api_key",
                        "event_type_id"
                      ],
                      "title": "CalendarToolSettings",
                      "type": "object",
                      "x-struct": null,
                      "x-validate": null
                    }
                  ],
                  "description": "Settings of the Tool. Only the fields listed for the selected `type` are accepted.\n\n- `transfer_call`:\n  - **Required:**\n    - `transfer_options`: Between 1 and 36 destinations the agent can select when transferring a call. Each option contains:\n      - `identifier`: Name the agent uses to identify the destination.\n      - `type`: One of `forward_to_user`, `forward_to_team`, `forward_to_agent`, or `forward_to_phone_number`.\n      - `value`: User ID, team UUID, agent UUID, or E.164 phone number matching `type`.\n      - `target_channel_phone`: Optional E.164 channel phone number used as a target for the transfer. Only applies to `forward_to_user`, `forward_to_team`, and `forward_to_agent`.\n  - **Optional:**\n    - `execution_message_description`: What the agent should say when starting the transfer. It can be an exact phrase or an instruction. When omitted, uses a default transfer instruction.\n\n- `execute_actions`:\n  - **Required:**\n    - `speak_after_execution`: Whether the agent speaks after executing the actions. Recommended when the user needs an execution update.\n    - `speak_during_execution`: Whether the agent speaks while executing the actions. Recommended when execution takes more than one second.\n  - **Optional:**\n    - `timeout_ms`: Time in milliseconds before action execution times out.\n    - `execution_message_description`: What the agent should say when starting execution. It can be an exact phrase or an instruction.\n\n- `check_availability_cal` and `book_appointment_cal`:\n  - **Required:**\n    - `cal_api_key`: Cal.com API key used by the Tool.\n    - `event_type_id`: Cal.com event type ID used by the Tool.\n  - **Optional:**\n    - `timezone`: IANA timezone used for the calendar operation.\n\n- `press_digit`:\n  - **Optional:**\n    - `delay_ms`: Time in milliseconds to wait before pressing the digit, allowing a slow IVR menu to finish playing. Must be at least 0.\n\n- `custom`:\n  - **Required:**\n    - `url`: Publicly reachable HTTPS endpoint called by the Tool.\n    - `speak_after_execution`: Whether the agent speaks after tool execution. Recommended when the user needs an execution update.\n    - `speak_during_execution`: Whether the agent speaks during tool execution. Recommended when the request takes more than one second.\n  - **Optional:**\n    - `method`: HTTP method used for the request. One of `POST`, `GET`, `PUT`, `PATCH`, or `DELETE`; defaults to `POST`.\n    - `timeout_ms`: Time in milliseconds before the request times out. Must be between 1 and 120000.\n    - `execution_message_description`: What the agent should say when starting execution. It can be an exact phrase or an instruction.\n    - `headers`: HTTP request headers. Keys and values must be strings.\n    - `query_params`: HTTP query parameters. Keys and values must be strings.\n    - `response_variables`: Values extracted from the response and made available as dynamic variables. Keys and values must be strings.\n    - `parameters`: JSON Schema describing the Tool input. The root schema must include a description.\n    - `retry`: Retry policy. When provided, it requires:\n      - `max_retries`: Number of retry attempts, from 1 to 3.\n      - `base_delay_ms`: Initial retry delay in milliseconds, from 200 to 5000.\n      - `max_delay_ms`: Maximum retry delay in milliseconds, from 200 to 15000.\n      - `retry_on_status_codes`: Non-empty list containing only `408`, `429`, `500`, `502`, `503`, or `504`.\n    - `include_whippy_context`: Whether to add a `whippy_context` object to the JSON request body containing the current contact, conversation, and message when available. Only applies to `POST`, `PUT`, and `PATCH` requests.\n\n",
                  "x-struct": null,
                  "x-validate": null
                },
                "signing_api_key_id": {
                  "description": "Signing API key ID",
                  "format": "uuid",
                  "nullable": true,
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "type": {
                  "description": "Tool type",
                  "enum": [
                    "custom",
                    "transfer_call",
                    "execute_actions",
                    "press_digit",
                    "check_availability_cal",
                    "book_appointment_cal"
                  ],
                  "example": "transfer_call",
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "updated_at": {
                  "description": "Tool update timestamp",
                  "format": "date-time",
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                },
                "updated_by": {
                  "additionalProperties": false,
                  "description": "Data for the user that last updated the tool",
                  "nullable": true,
                  "properties": {
                    "email": {
                      "description": "User email",
                      "example": "bruce@wayne.com",
                      "format": "email",
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "id": {
                      "description": "User ID",
                      "example": 1,
                      "type": "integer",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "name": {
                      "description": "User name",
                      "example": "Bruce Wayne",
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    },
                    "phone": {
                      "description": "User phone",
                      "nullable": true,
                      "type": "string",
                      "x-struct": null,
                      "x-validate": null
                    }
                  },
                  "required": [
                    "id",
                    "email",
                    "name",
                    "phone"
                  ],
                  "type": "object",
                  "x-struct": null,
                  "x-validate": null
                }
              },
              "required": [
                "id",
                "type",
                "name",
                "label",
                "description",
                "settings",
                "signing_api_key_id",
                "created_at",
                "updated_at",
                "created_by",
                "updated_by",
                "organization",
                "actions"
              ],
              "type": "object",
              "x-struct": null,
              "x-validate": null
            },
            "type": "array",
            "x-struct": null,
            "x-validate": null
          },
          "metadata": {
            "additionalProperties": false,
            "description": "Pagination metadata.",
            "properties": {
              "cursor_reset": {
                "description": "Whether an invalid cursor was reset to the first page",
                "type": "boolean",
                "x-struct": null,
                "x-validate": null
              },
              "next_cursor": {
                "description": "Opaque cursor for the next page",
                "nullable": true,
                "type": "string",
                "x-struct": null,
                "x-validate": null
              }
            },
            "required": [
              "next_cursor",
              "cursor_reset"
            ],
            "type": "object",
            "x-struct": null,
            "x-validate": null
          }
        },
        "required": [
          "data",
          "metadata"
        ],
        "title": "SearchToolsResponse",
        "type": "object",
        "x-struct": null,
        "x-validate": null
      },
      "ForbiddenErrorResponse": {
        "description": "Forbidden Error Response schema",
        "example": {
          "error": "Token does not have the required scope for this action."
        },
        "properties": {
          "error": {
            "description": "Stable public error message for insufficient OAuth scope",
            "example": "Token does not have the required scope for this action.",
            "type": "string",
            "x-struct": null,
            "x-validate": null
          }
        },
        "required": [
          "error"
        ],
        "title": "ForbiddenErrorResponse",
        "type": "object",
        "x-struct": "Elixir.DashboardApiWeb.Public.V1.Documentation.Errors.Forbidden",
        "x-validate": null
      }
    },
    "securitySchemes": {
      "authorization": {
        "in": "header",
        "name": "X-WHIPPY-KEY",
        "type": "apiKey"
      },
      "bearer": {
        "description": "OAuth Access token",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Whippy Public API.\n\n## Authentication\n\nThe Whippy Public API supports two authentication methods:\n\n**API Key** — Generate an organization API token and send it with every request as the `X-WHIPPY-KEY` header.\n\n**OAuth Bearer Token** — Obtain an access token via the OAuth authorization flow and send it as a Bearer token in the `Authorization` header (e.g. `Authorization: Bearer <access_token>`).\n\n## Rate Limiting\n\nThe Whippy API is rate limited. Different endpoints have different rate limits.\nEach request to the API will return the following headers, which can be used to keep track of your rate limit status:\n * `x-ratelimit-max`: The maximum number of requests that the consumer is permitted to make in the given time period.\n * `x-ratelimit-remaining`: The number of requests remaining in the current rate limit window.\n * `x-ratelimit-interval-milliseconds`: The rate limit window in milliseconds.\n * `x-ratelimit-remaining-interval-milliseconds`: The time in milliseconds until the rate limit window resets.\n",
    "title": "Whippy Public API",
    "version": "1.0"
  },
  "openapi": "3.0.0",
  "paths": {
    "/v1/tools/search": {
      "post": {
        "callbacks": {},
        "deprecated": false,
        "description": "Searches tools for an organization using forward cursor pagination.",
        "operationId": "searchTools",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchToolsParams"
              }
            }
          },
          "description": "Search Tools Request",
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchToolsResponse"
                }
              }
            },
            "description": "Search Tools Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotAuthenticatedErrorResponse"
                }
              }
            },
            "description": "Not Authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToolUnprocessableContentErrorResponse"
                }
              }
            },
            "description": "Unprocessable Content"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "bearer": []
          }
        ],
        "summary": "Search Tools",
        "tags": [
          "Tool"
        ]
      }
    }
  },
  "security": [],
  "servers": [
    {
      "url": "https://api.whippy.co",
      "variables": {}
    }
  ]
}
```