Read responses and write data are not uniformly symmetrical in the Asana API. To create a task with tags, you only need to supply an array of tag IDs. If you GET a task, the response will include tags as an array of key value pairs.
To fix your data, you need to change your tags array to only include tag IDs. Here’s an example request to create a task with two tags:
curl --request POST -H 'Content-Type: application/json' -H "Authorization: Bearer 0/abc123456789" \
https://app.asana.com/api/1.0/tasks \
-d
'{
"data": {
"projects": "123456789",
"name" : "I'm a task from curl",
"tags": ["123456789", "234567890"]
}
}'