CXone Personal Connection API returning 400 Bad Request for outbound call

Hey folks,

I’m trying to kick off an outbound call using the CXone Personal Connection API, but I keep hitting a wall with a 400 Bad Request. The docs say this endpoint should work for initiating calls from a specific agent’s device, but the error payload isn’t giving me much to go on.

Here’s the payload I’m sending to POST /api/v2/ucm/connections/outbound:

{
 "to": {
 "uri": "tel:+15550199888",
 "type": "phone"
 },
 "from": {
 "uri": "tel:+15550199001",
 "type": "phone"
 },
 "media": {
 "type": "voice"
 },
 "metadata": {
 "agentId": "12345678-1234-1234-1234-123456789012"
 }
}

The response is just a generic 400 with "message": "Bad Request". No specific field validation errors. I’ve double-checked the agentId and it matches the logged-in user hitting the endpoint. The phone numbers are formatted correctly as E.164 strings.

I’m using the same OAuth token that works fine for fetching user details via /api/v2/users/me. So auth seems solid. Is there a specific capability or permission I need to enable on the agent profile or the application itself? Or am I missing a required header?

I’ve tried adding Content-Type: application/json explicitly, but that didn’t change anything. Also, the from URI is a valid outbound route number configured in the platform.

Any ideas what could be triggering this? I’m stumped.

Check the from object in your JSON. The 400 usually happens if the URI format is wrong or missing. Try this structure:

{
 "to": { "uri": "tel:+15550199888", "type": "phone" },
 "from": { "uri": "tel:+15550100000", "type": "phone" }
}

Missing from breaks it.