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?