POST /api/v2/outbound/contactlists failing with INVALID_VALUE despite valid JSON structure

The API returns a 400 Bad Request with INVALID_VALUE when trying to create a new outbound contact list via the REST API. This is happening in our deployment script, not just manually in Postman.

Here is the exact JSON payload I’m sending to POST /api/v2/outbound/contactlists:

{
 "name": "Q3_Campaign_Contacts",
 "description": "Test list for Q3 outreach",
 "contactType": "EMAIL",
 "allowDuplicates": false,
 "data": [
 {
 "firstName": "John",
 "lastName": "Doe",
 "email": "john.doe@example.com"
 }
 ]
}

The error response body looks like this:

{
 "message": "Invalid value for field 'data'",
 "code": "INVALID_VALUE"
}

I’ve checked the Swagger docs. The data array should accept a list of contacts. The email format is valid. contactType is set to EMAIL which matches the fields in the data object. I’ve tried removing the description field. I’ve tried setting allowDuplicates to true. Nothing changes the error.

Interestingly, if I remove the data array entirely and just create an empty list, the API returns a 201 Created. So the list creation itself works. The issue is strictly with attaching data during the creation step.

Is there a specific schema requirement for the initial contact objects that isn’t documented clearly? Or is this a known limitation where you have to create the list first and then POST to /contacts?

We’re using the Python SDK genesyscloud_outbound module but the error persists when calling the raw endpoint via requests too. Auth token is fresh, generated via client credentials flow. Scope includes outbound:contactlist:write and outbound:contact:write.