Trying to spin up a new contact list via the Outbound API. We’ve got a simple script that pulls a CSV from S3, parses it into the required format, and POSTs it to /api/v2/outbound/contacts/lists.
The payload looks exactly right based on the docs. Here’s the JSON body we’re sending:
{
"name": "Q3_Marketing_Test",
"description": "Test list for API integration",
"type": "csv",
"file": {
"name": "contacts.csv",
"contentType": "text/csv",
"data": "base64encodedcontenthere=="
}
}
We get a 400 Bad Request back immediately. The error object in the response is pretty bare:
{
"code": "INVALID_VALUE",
"message": "Invalid value",
"status": "Bad Request",
"contextId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
I’ve verified the base64 string is valid. I can decode it locally and it matches the CSV file perfectly. Tried changing the contentType to application/octet-stream just in case. Same error.
Checked the contextId in the logs but nothing jumps out as a validation failure on the field level. It’s not complaining about the name being taken or anything specific. Just “Invalid value”.
Anyone hit this wall before? Is there a hidden requirement for the file object structure that the Swagger docs are glossing over? Maybe the base64 needs padding handled differently?
Running this from a Node.js script using the axios library. Standard bearer token auth. Everything else works fine with the same token.