CXone Admin API bulk update agent skills returning 400

Just noticed that my Faraday patch request to the CXone Admin API for bulk updating agent skill proficiencies is failing. I am trying to update multiple agents’ skills in a single call to optimize the webhook processing pipeline. The endpoint is /api/v2/admin/users/skills. Here is the JSON payload I am sending:

{
 "skillAssignments": [
 {
 "userId": "12345",
 "skill": "support_tier_2",
 "proficiency": 90
 },
 {
 "userId": "12346",
 "skill": "support_tier_2",
 "proficiency": 85
 }
 ]
}

The response I get back is consistently a 400 Bad Request. The error body is minimal, just {"errors":[{"message":"Invalid input"}]}. I have verified that the user IDs exist and the skill name is correct. I am using OAuth2 client credentials for authentication. Is the skillAssignments array structure incorrect? I checked the Swagger docs but they are vague on the exact nesting for bulk operations. Should I be using a different endpoint or is there a specific format for the proficiency field?

You might want to check at the actual Genesys Cloud API reference. The endpoint /api/v2/admin/users/skills does not exist for bulk operations.

Use PUT /api/v2/users/{userId}/skills for individual updates. There is no single-call bulk skill assignment endpoint in the current SDK.

# Individual update example using PureCloudPlatformClientV2
user_api = platformClient.UsersApi()
skill_assignment = {
 "skill": {"id": "skill_id_here"},
 "proficiency": 90
}
# You must iterate through users; no bulk endpoint exists
user_api.put_users_skills(user_id, body=skill_assignment)