Grab the shared line's answered call
Move the shared line’s currently answered call onto one member’s own device (grabbingMemberValue, a sip_extension roster entry with canGrab = true). Returns 400 for a malformed body, 403 when the member is not on the roster or lacks canGrab, 404 when the line has no answered call to grab, and 409 when the line is inactive, the call is already on the grabbing device, or two members race the same grab (only one wins). The claim is atomic (5-second Redis dedup window); the voice call plane performs the actual SIP re-INVITE — control-plane resolution only (outbound-termination invariant #45).
Authorizations
Dashboard JWT token from Clerk
Headers
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
1 - 255Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
true, false Path Parameters
1Body
SIP username of a sip_extension member of this line; the member must have canGrab = true.
1 - 128Response
Successful response.
The response is of type object.