Bulk update agent skill proficiencies via CXone Admin REST API

Trying to update skill proficiencies for about 50 agents using the CXone Admin API. I’m hitting /api/v2/users with a PATCH request to update the skills array in the user profile. Getting a 409 Conflict error saying the user state has changed. Tried adding the ETag header from the GET response, but it still fails. Is there a bulk endpoint for this, or do I need to handle each user individually with proper locking? Here’s the payload I’m sending.

There’s no bulk endpoint for this, so you’re stuck looping. Grab the ETag from the GET, send it as If-Match in the PATCH, and don’t forget to include the skills array in the body.

PATCH /api/v2/users/{userId}
Host: api.nice.incontact.com
Authorization: Bearer {token}
If-Match: "{etag}"
Content-Type: application/json

{
 "skills": [
 {
 "skill": {
 "id": "skill-id-here"
 },
 "proficiency": 5
 }
 ]
}