Adding `tag_ids` when using upsert

Hi,

I’m using the upsert command through the REST API, and it appears that you cannot create with a set of tag ids. I’m getting this error

{
  "message": "Tags can't be added or removed through this object"
}

when I use this JSON

{"source_type":"WEBFORM","duplicate_option":"Email","given_name":"Zak","family_name":"","email_addresses":[{"email":"zak@example.com","field":"EMAIL1"}],"opt_in_reason":"Opted out of form", "tag_ids": [92]}

Note: tag id 92 is “New Lead” in the system list of tags.

I notice that, in the documentation, the tag_ids entry is

"tag_ids": [
    0
  ]

Which makes me wonder whether this really isn’t supported yet, and the only valid option is “0”. The schema example, though, says it is

tag_ids
array[integer](optional)

So, I’m hoping that I’m just missing something here. I hope that I don’t have to make two calls: create the contact, then apply tags. If so, I’m confused as to what the tag_ids field in the JSON is for.

Thanks for the help!

In the interim, I’m looking at working around this problem by making a second call to the apply tags endpoint (/contacts/{contactId}/tags).

One thing I noticed is that the schema for applying tags uses camel-case
tagIds

While the list of tag ids in the create contact schema uses snake-case
tag_ids

Wondering if this is a consistency oversight or something related to their interpretation in the different calls.