Adding `tag_ids` when using upsert


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":"","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": [

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


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

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

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