When tries to retrieve a list of all contacts (via REST API) then I found all required contacts but each contact’s ‘tag_ids’ is empty although it has ‘tag_ids’. please notice “id=2041” in screenshot below.
You are correct in that it is not visible from that view. Extended relational information about objects (in this case the Contact’s relation to Tags) isn’t returned in list operations for performance reasons.
We hope to have a way to address that concern through the REST API within the next couple of release cycles, but if it is an immediately pressing concern, you can access it via XML-RPC, yes.
@TomScott has this been updated at all? Is there a parameter we can pass in to receive this info back? I need to find contacts by email address and I’d prefer to get this info in one request instead of doing 2 requests: 1 to find by email and get that ID, and another to fetch the details (including tag_ids).
We evaluated the impact of this request, and have determined that providing the related list of tags through the search endpoint isn’t a workable solution at the moment, given the current structure of the database and object models.
Because of this one simple design flaw, we end up making 100s of calls to Keap to get the latest tags of each contact, when there is a high traffic on our app. The performance of your api will only improve, if you provide an optional way of including tag_ids (just like you did for custom_fields).