# call.tool_called

Webhook event `call.tool_called`, sent as `POST` to your webhook endpoints.

Live: an assistant's tool call finished during a call (name, arguments, result or error). Opt-in: sent only to endpoints that name this type; `*` and `call.*` don't include it.

## Payload

| Field | Type | Description |
| --- | --- | --- |
| `id` | `string` | The event ID. Receivers deduplicate on it (it is also the `webhook-id` header). |
| `object` | `"event"` | — |
| `type` | `"call.tool_called"` | — |
| `created` | `string` | An ISO-8601 timestamp in UTC. |
| `api_version` | `string` | The API version the payload is rendered in (the endpoint's pinned version). |
| `livemode` | `boolean` | `true` in live mode, `false` in test mode. |
| `org_id` | `string` | The organisation the event belongs to. |
| `data` | `object` | `object` is the object the `call.tool_called` event is about. |
| `data.object` | `object` | — |
| `data.previous_attributes` | `object` | For `*.updated`-style events: the changed attributes' previous values. |
| `request` | `object` | — |
| `request.id` | `string \| null` | `req_…` ID. |
| `request.idempotency_key` | `string \| null` | That request's Idempotency-Key, if any. |

Example:

```json
{
  "api_version": "2026-11-01",
  "created": "2026-11-03T09:14:22.000Z",
  "data": {
    "object": {
      "arguments": null,
      "call_id": "call_Oxtl48GXWtJCwMfHzxm0oL",
      "error": "…",
      "name": "…",
      "result": null,
      "status": "done",
      "tool_call_id": "tc_UQRmdLaptZPgzVzG5pa87G"
    }
  },
  "id": "evt_3fT9kq2ZpLr8YwVbN1cX0a",
  "livemode": true,
  "object": "event",
  "org_id": "org_0000000000000000000001",
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "type": "call.tool_called"
}
```

Verify every delivery before you trust it: https://docs.morevoice.ai/webhooks/verify/
