---
title: "On Call Transfer Destination Request"
method: POST
path: "/vapi/on-call-transfer-destination"
tags: ["Vapi"]
---

# On Call Transfer Destination Request

`POST /vapi/on-call-transfer-destination`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/vapi/on-call-transfer-destination`
- Auth: HTTP bearer

Resolve the after-hours on-call transfer (dedicated transferCall tool).

Same transfer-destination-request contract as /transfer-destination, but
single-purpose: connect a new-case caller to the on-call person. The tool
takes no arguments — there is exactly one destination, the customer's
"On Call" TransferDestination row (for BJL a DID that rings the PBX ONCALL
queue, whose membership the NetSapiens reconciler keeps equal to the
scheduled on-call person).

The on-call window is checked at the moment the CALL STARTED (Vapi's
call.createdAt), not at transfer time: a call that began inside the
window still transfers after it closes, since the ONCALL queue keeps its
member off-hours. Only when createdAt is missing or unparseable does the
check fall back to now. There is deliberately NO fallback chain: a
refused transfer returns {"error": ...}, which plays the tool's
request-failed message.

## Request body

- VapiTransferDestinationRequest
  - `message` VapiTransferDestinationMessage, required
    - `type` string
    - `call` VapiCallObject
      - `id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
