POST /api/v2/outbound/contactlists failing with INVALID_VALUE on valid CSV data

Hey everyone,

I’m trying to automate the upload of new contact lists for our outbound campaigns using the REST API. We use this to keep our WFM adherence tracking aligned with the actual dialing lists. I’ve been using the Python SDK for other tasks, but for this specific call, I’m just hitting the endpoint directly via requests to keep it simple.

The issue is that every time I POST to /api/v2/outbound/contactlists, I get a 400 Bad Request with a specific INVALID_VALUE error. The docs aren’t super clear on what field is causing the trip-up.

Here is the JSON payload I’m sending:

{
 "name": "Q3_WFM_Test_List",
 "description": "Automated upload for adherence tracking",
 "contactListType": "CONTACT",
 "contactType": "EMAIL",
 "contacts": [
 {
 "firstName": "John",
 "lastName": "Doe",
 "email": "john.doe@example.com",
 "customAttributes": {
 "wfm_agent_id": "123456"
 }
 }
 ]
}

The response body looks like this:

{
 "code": "INVALID_VALUE",
 "message": "Invalid value for contact list",
 "status": 400,
 "contextId": "abc-123-def-456"
}

I’ve verified that the OAuth token has the outbound:contactlist:create scope. I also tried removing the customAttributes block, thinking maybe that was the issue, but the error persists. I even tried a simpler payload with just name and contactListType, but it still bombs.

Is there a hidden requirement for the contacts array? Or maybe I need to define a contact profile first before I can add contacts? I’ve been staring at the Swagger docs for an hour and I’m missing something obvious.

Any pointers on what might be triggering this INVALID_VALUE would be great.