---
title: "Handle Vapi Tools Test"
method: POST
path: "/api/vapi/tools/tools-test"
tags: ["VAPI"]
---

# Handle Vapi Tools Test

`POST /api/vapi/tools/tools-test`

TEST endpoint to simulate VAPI calls.
No signature required, ideal for Postman/cURL debugging.

## Request body

- VapiWebhookRequest — Top-level wrapper for the webhook POST body. { "message": { ... } }
  - `message` union, required
    - ToolCallMessage — Type: 'tool-calls' Triggered when the assistant invokes a tool. VAPI sends tool calls in an array format: { "type": "tool-calls", "toolCalls": [ { "id": "call_xxx", "type": "function", "function": { "name": "tool_name", "arguments": {...} } } ] }
      - `timestamp` integer, nullable
      - `meta` object, nullable
      - `type` 'tool-calls', required
      - `toolCalls` ToolCallItem[], nullable
        - `id` string, required
        - `type` 'function'
        - `function` ToolCallFunction, required — Function details within a tool call
          - `name` string, required
          - `arguments` object, required
        - `isPrecededByText` boolean, nullable
      - `toolCallList` ToolCallItem[], nullable
        - `id` string, required
        - `type` 'function'
        - `function` ToolCallFunction, required — Function details within a tool call
          - `name` string, required
          - `arguments` object, required
        - `isPrecededByText` boolean, nullable
      - `toolWithToolCallList` object[], nullable
      - `toolCallId` string, nullable
      - `toolName` string, nullable
      - `arguments` object, nullable
      - `call` VapiCall
        - `id` string, required
        - `orgId` string, nullable
        - `status` string, nullable
        - `assistantId` string, nullable
        - `customer` VapiCustomer
          - `number` string, nullable
          - `name` string, nullable
          - `email` string, nullable
      - `assistant` VapiAssistant
        - `name` string, nullable
        - `model` VapiModel
          - `model` string, required
          - `provider` string, required
          - `systemPrompt` string, nullable
          - `temperature` number, nullable
        - `voice` object, nullable
        - `firstMessage` string, nullable
    - AssistantRequestMessage — Type: 'assistant-request' Triggered when VAPI needs dynamic assistant configuration.
      - `timestamp` integer, nullable
      - `meta` object, nullable
      - `type` 'assistant-request', required
      - `call` VapiCall, required
        - `id` string, required
        - `orgId` string, nullable
        - `status` string, nullable
        - `assistantId` string, nullable
        - `customer` VapiCustomer
          - `number` string, nullable
          - `name` string, nullable
          - `email` string, nullable
      - `assistant` VapiAssistant
        - `name` string, nullable
        - `model` VapiModel
          - `model` string, required
          - `provider` string, required
          - `systemPrompt` string, nullable
          - `temperature` number, nullable
        - `voice` object, nullable
        - `firstMessage` string, nullable
    - TranscriptMessage — Type: 'transcript' Real-time transcript updates (informational).
      - `timestamp` integer, nullable
      - `meta` object, nullable
      - `type` 'transcript', required
      - `role` 'assistant' | 'user', required
      - `transcript` string, required
      - `transcriptType` 'partial' | 'final', nullable
      - `call` VapiCall, required
        - `id` string, required
        - `orgId` string, nullable
        - `status` string, nullable
        - `assistantId` string, nullable
        - `customer` VapiCustomer
          - `number` string, nullable
          - `name` string, nullable
          - `email` string, nullable
    - StatusUpdateMessage — Type: 'status-update' Call status changes (ringing, answered, ended).
      - `timestamp` integer, nullable
      - `meta` object, nullable
      - `type` 'status-update', required
      - `status` string, required
      - `call` VapiCall, required
        - `id` string, required
        - `orgId` string, nullable
        - `status` string, nullable
        - `assistantId` string, nullable
        - `customer` VapiCustomer
          - `number` string, nullable
          - `name` string, nullable
          - `email` string, nullable
    - EndOfCallReportMessage — Type: 'end-of-call-report' Final report after call ends.
      - `timestamp` integer, nullable
      - `meta` object, nullable
      - `type` 'end-of-call-report', required
      - `call` VapiCall, required
        - `id` string, required
        - `orgId` string, nullable
        - `status` string, nullable
        - `assistantId` string, nullable
        - `customer` VapiCustomer
          - `number` string, nullable
          - `name` string, nullable
          - `email` string, nullable
      - `transcript` string, nullable
      - `summary` string, nullable
      - `recordingUrl` string, nullable
      - `endedReason` string, nullable
      - `cost` number, nullable
      - `durationSeconds` number, nullable
    - UnknownVapiMessage — Fallback for unmapped messages.
      - `timestamp` integer, nullable
      - `meta` object, nullable
      - `type` string, required
      - `raw` object

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/hogarsolar/apis/hogarsolar-backend-api.md) · [All operations](https://skmtc.dev/hogarsolar/apis/hogarsolar-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hogarsolar/hogarsolar-backend-api/revisions/d9861e46bef8/schema)
