Zoom Phone API: no working method to assign an existing device to a phone user (PATCH /phone/devices/{deviceId})

We’re a K-12 school district managing 1,000+ Zoom Phone devices and need to assign existing desk phone devices to phone users via the API for bulk/automated workflows.

What we’re trying to do: Assign an already-created device to a phone user as an additional desk phone (users can have up to 3 per Zoom’s device-limit documentation).

Endpoint tried: PATCH /phone/devices/{deviceId}

Payloads tried — all return 204 Success but the assignment never actually applies (confirmed via GET /phone/devices/{deviceId} before and after each attempt):

{"assignee": {"extension_id": "<extension_id>"}}

{"assignees": [{"extension_id": "<extension_id>"}]}

{"assignee_extension_ids": ["<extension_id>"]}

{"assignee_extension_ids": ["<base_user_id>"]}

{"assignee_extension_ids": ["<phone_user_id>"]}

{"assignees": [{"id": "<base_user_id>"}]}

Identifiers tested as the value: the user’s extension_id, base Zoom user id (from GET /users), and phone_user_id (from GET /phone/users) — none produced a change.

What we know from the read side: once a device is assigned manually via the web portal, GET /phone/devices/{deviceId} returns a populated assignees[] array shaped like:

{"id": "<base_user_id>", "name": "...", "extension_number": ..., "extension_type": "user", "extension_id": "..."}

So the relationship is clearly modeled and readable — we just can’t find the write path that sets it. Opened a ticket with Zoom Support (TS2409746) and their AI chatbot both came back without a documented answer — closed as “configuration, not a defect,” pointed here instead.

Has anyone found the actual working request for this? Or is device-to-user assignment genuinely API-unsupported today and this should be a feature request?