<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Search endpoint filter enumeration properties? in APIs &amp; Integrations</title>
    <link>https://community.hubspot.com/t5/APIs-Integrations/Search-endpoint-filter-enumeration-properties/m-p/775689#M62681</link>
    <description>&lt;P&gt;Hi,&lt;BR /&gt;Thank you very much for the reply.&lt;BR /&gt;I do not know if this behavior is expected, but I tested EQ with only a single value, and it returns the entity in the result.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
  "limit": 100,
  "after": 0,
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "hs_all_contact_vids",
          "operator": "EQ",
          "value": "201"
        }
      ]
    }
  ],
  "properties": [
    "id",
    "hs_all_contact_vids",
    "testenumeration"
  ]
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
    "total": 1,
    "results": [
        {
            "id": "251",
            "properties": {
                "createdate": "2022-09-22T04:02:01.807Z",
                "hs_all_contact_vids": "201;251",
                "hs_object_id": "251",
                "lastmodifieddate": "2023-03-28T08:34:35.433Z",
                "testenumeration": "Option1;Option2;Option3;Option4;Option5Option"
            },
            "createdAt": "2022-09-22T04:02:01.807Z",
            "updatedAt": "2023-03-28T08:34:35.433Z",
            "archived": false
        }
    ]
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I also tested the following, but none of them worked:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;          "value": ["201;251"] -&amp;gt; Invalid input JSON 
          "value": ["201"] -&amp;gt; Invalid input JSON 
          "values": ["201"] -&amp;gt; operator EQ requires a value&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;EM&gt;&amp;gt; For your use case, are the contacts who have multiple values for “hs_all_contact_vids” contacts who've been merged?&lt;/EM&gt;&lt;BR /&gt;Yes. The problem can also be reproduced if using a custom property that allows selecting multiple options (&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;Multiple checkboxes&lt;/SPAN&gt;&lt;/SPAN&gt;).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
  "limit": 100,
  "after": 0,
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "testenumeration",
          "operator": "EQ",
          "value": "Option1"
        }
      ]
    }
  ],
  "properties": [
    "id",
    "hs_all_contact_vids",
    "testenumeration"
  ]
}&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;{
    "total": 2,
    "results": [
        {
            "id": "151",
            "properties": {
                "createdate": "2022-09-20T12:29:20.903Z",
                "hs_all_contact_vids": "151",
                "hs_object_id": "151",
                "lastmodifieddate": "2023-03-28T09:11:00.233Z",
                "testenumeration": "Option1"
            },
            "createdAt": "2022-09-20T12:29:20.903Z",
            "updatedAt": "2023-03-28T09:11:00.233Z",
            "archived": false
        },
        {
            "id": "251",
            "properties": {
                "createdate": "2022-09-22T04:02:01.807Z",
                "hs_all_contact_vids": "201;251",
                "hs_object_id": "251",
                "lastmodifieddate": "2023-03-28T08:34:35.433Z",
                "testenumeration": "Option1;Option2;Option3;Option4;Option5Option"
            },
            "createdAt": "2022-09-22T04:02:01.807Z",
            "updatedAt": "2023-03-28T08:34:35.433Z",
            "archived": false
        }
    ]
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It seems to me that the API is treating each value as a sub-field of its own even though GET returns them as one semicolon separated list. So, "EQ value" for enumeration types works like 'retrieve all records that have at least this value in that property'.&lt;/P&gt;</description>
    <pubDate>Wed, 29 Mar 2023 16:32:07 GMT</pubDate>
    <dc:creator>AB35</dc:creator>
    <dc:date>2023-03-29T16:32:07Z</dc:date>
    <item>
      <title>Search endpoint filter enumeration properties?</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/Search-endpoint-filter-enumeration-properties/m-p/774485#M62617</link>
      <description>&lt;P&gt;Hello!&lt;BR /&gt;I am trying to retrieve all contacts that have a specific set of vids (IDs - canonical or otherwise) via the Search Endpoint and the 'hs_all_contact_vids' property:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;        {
            "updatedAt": "2022-05-27T20:57:17.998Z",
            "createdAt": "2019-08-06T02:41:10.764Z",
            "name": "hs_all_contact_vids",
            "label": "All vids for a contact",
            "type": "enumeration",
            "fieldType": "select",
            "description": "A set of all vids, canonical or otherwise, for a contact",
            "groupName": "contactinformation",
            "options": [],
            "displayOrder": -1,
            "calculated": true,
            "externalOptions": false,
            "hasUniqueValue": false,
            "hidden": true,
            "hubspotDefined": true,
            "modificationMetadata": {
                "archivable": true,
                "readOnlyDefinition": true,
                "readOnlyValue": true
            },
            "formField": false
        }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;When retrieving data via "/crm/v4/objects/contacs", as can be seen below 'hs_all_contact_vids' si returned as '201;251'&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;        {
            "id": "251",
            "properties": {
                "createdate": "2022-09-22T04:02:01.807Z",
                "firstname": "John2",
                "hs_all_contact_vids": "201;251",
                "hs_object_id": "251",
                "lastmodifieddate": "2023-03-27T15:53:36.095Z"
            },
            "createdAt": "2022-09-22T04:02:01.807Z",
            "updatedAt": "2023-03-27T15:53:36.095Z",
            "archived": false
        }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp; However, this query returns no resulsts:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
  "limit": 1,
  "after": 0,
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "hs_all_contact_vids",
          "operator": "EQ",
          "value": "201;251"
        }
      ]
    }
  ],
  "properties": [
    "id"
  ]
}&lt;/LI-CODE&gt;&lt;P&gt;Changing the above to IN and values resolves the issue:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
  "limit": 100,
  "after": 0,
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "hs_all_contact_vids",
          "operator": "IN",
          "values": ["201","251"]
        }
      ]
    }
  ],
  "properties": [
    "firstname",
    "hs_all_contact_vids"
  ]
}&lt;/LI-CODE&gt;&lt;P&gt;But why does this occurr? Why does IN work and not EQ? Is there some API usage rule I am missing? Any information on this behavior and how to generally handle it would be appreciated.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Mar 2023 16:26:29 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/Search-endpoint-filter-enumeration-properties/m-p/774485#M62617</guid>
      <dc:creator>AB35</dc:creator>
      <dc:date>2023-03-27T16:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: Search endpoint filter enumeration properties?</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/Search-endpoint-filter-enumeration-properties/m-p/775037#M62651</link>
      <description>&lt;P&gt;Hey,&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/441851"&gt;@AB35&lt;/a&gt;&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":waving_hand:"&gt;👋&lt;/span&gt; Thanks for reaching out! This is a great question. The Search API documentation on Search Operators doesn't specify whether the EQ filter will accept multiple values or multiple values as an array.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Questions:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Have you tried using an array in your request using EQ?&amp;nbsp;&lt;BR /&gt;&lt;LI-CODE lang="markup"&gt;{
  "limit": 1,
  "after": 0,
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "hs_all_contact_vids",
          "operator": "EQ",
          "value": ["201;251"]
        }
      ]
    }
  ],
  "properties": [
    "id"
  ]
}​&lt;/LI-CODE&gt;&lt;/LI&gt;
&lt;LI&gt;For your use case, are the contacts who have multiple values for&amp;nbsp;&amp;nbsp;“hs_all_contact_vids” contacts who've been merged? So, I can try to reproduce on my end if needed.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;I understand why the EQ operator makes sense in this case. And I want to clarify if we can leverage it this way, e.g. matching multiple specific values.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;P&gt;Jaycee&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2023 16:59:21 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/Search-endpoint-filter-enumeration-properties/m-p/775037#M62651</guid>
      <dc:creator>Jaycee_Lewis</dc:creator>
      <dc:date>2023-03-28T16:59:21Z</dc:date>
    </item>
    <item>
      <title>Re: Search endpoint filter enumeration properties?</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/Search-endpoint-filter-enumeration-properties/m-p/775689#M62681</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;Thank you very much for the reply.&lt;BR /&gt;I do not know if this behavior is expected, but I tested EQ with only a single value, and it returns the entity in the result.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
  "limit": 100,
  "after": 0,
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "hs_all_contact_vids",
          "operator": "EQ",
          "value": "201"
        }
      ]
    }
  ],
  "properties": [
    "id",
    "hs_all_contact_vids",
    "testenumeration"
  ]
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
    "total": 1,
    "results": [
        {
            "id": "251",
            "properties": {
                "createdate": "2022-09-22T04:02:01.807Z",
                "hs_all_contact_vids": "201;251",
                "hs_object_id": "251",
                "lastmodifieddate": "2023-03-28T08:34:35.433Z",
                "testenumeration": "Option1;Option2;Option3;Option4;Option5Option"
            },
            "createdAt": "2022-09-22T04:02:01.807Z",
            "updatedAt": "2023-03-28T08:34:35.433Z",
            "archived": false
        }
    ]
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I also tested the following, but none of them worked:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;          "value": ["201;251"] -&amp;gt; Invalid input JSON 
          "value": ["201"] -&amp;gt; Invalid input JSON 
          "values": ["201"] -&amp;gt; operator EQ requires a value&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;EM&gt;&amp;gt; For your use case, are the contacts who have multiple values for “hs_all_contact_vids” contacts who've been merged?&lt;/EM&gt;&lt;BR /&gt;Yes. The problem can also be reproduced if using a custom property that allows selecting multiple options (&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;Multiple checkboxes&lt;/SPAN&gt;&lt;/SPAN&gt;).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;{
  "limit": 100,
  "after": 0,
  "filterGroups": [
    {
      "filters": [
        {
          "propertyName": "testenumeration",
          "operator": "EQ",
          "value": "Option1"
        }
      ]
    }
  ],
  "properties": [
    "id",
    "hs_all_contact_vids",
    "testenumeration"
  ]
}&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;{
    "total": 2,
    "results": [
        {
            "id": "151",
            "properties": {
                "createdate": "2022-09-20T12:29:20.903Z",
                "hs_all_contact_vids": "151",
                "hs_object_id": "151",
                "lastmodifieddate": "2023-03-28T09:11:00.233Z",
                "testenumeration": "Option1"
            },
            "createdAt": "2022-09-20T12:29:20.903Z",
            "updatedAt": "2023-03-28T09:11:00.233Z",
            "archived": false
        },
        {
            "id": "251",
            "properties": {
                "createdate": "2022-09-22T04:02:01.807Z",
                "hs_all_contact_vids": "201;251",
                "hs_object_id": "251",
                "lastmodifieddate": "2023-03-28T08:34:35.433Z",
                "testenumeration": "Option1;Option2;Option3;Option4;Option5Option"
            },
            "createdAt": "2022-09-22T04:02:01.807Z",
            "updatedAt": "2023-03-28T08:34:35.433Z",
            "archived": false
        }
    ]
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It seems to me that the API is treating each value as a sub-field of its own even though GET returns them as one semicolon separated list. So, "EQ value" for enumeration types works like 'retrieve all records that have at least this value in that property'.&lt;/P&gt;</description>
      <pubDate>Wed, 29 Mar 2023 16:32:07 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/Search-endpoint-filter-enumeration-properties/m-p/775689#M62681</guid>
      <dc:creator>AB35</dc:creator>
      <dc:date>2023-03-29T16:32:07Z</dc:date>
    </item>
  </channel>
</rss>

