Hey folks,
Trying to automate the creation of outbound contact lists via the API, but I’m hitting a wall with a 400 Bad Request and an INVALID_VALUE error. The docs say the payload should be straightforward, but I can’t figure out what’s tripping it up.
Here’s the endpoint I’m hitting:
POST /api/v2/outbound/contactlists
And the JSON payload I’m sending:
{
"name": "Q4 Marketing Blast",
"description": "Automated list creation test",
"contactListType": "CSV",
"fileSource": {
"fileName": "contacts_q4.csv",
"filePath": "s3://my-bucket/path/to/file.csv",
"storageType": "S3"
},
"mapping": {
"columns": [
{
"name": "phone_number",
"type": "STRING"
},
{
"name": "first_name",
"type": "STRING"
}
]
}
}
The error response is pretty generic:
{
"code": "INVALID_VALUE",
"message": "Invalid value provided",
"errors": []
}
I’ve verified the following:
- The S3 path is correct and the file exists. The IAM role attached to the Genesys Cloud org has read access.
- The CSV file has a header row matching the column names in the
mappingobject. - The
contactListTypeis set toCSVas expected. - I’ve tried removing the
descriptionfield, just in case it was choking on that. - The API token has the
outbound:contactlist:createscope.
It feels like the fileSource structure might be off, but the schema in the Swagger UI looks exactly like what I’m sending. Has anyone run into this? Is there a specific format for the filePath when using S3 storage? Or maybe the mapping object needs a different structure?
Any pointers would be great. I’m about to start poking at the raw HTTP headers to see if there’s something weird going on there.