<?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: V3 &amp;amp; V4 API-s: Reading metadata/data for associations in an efficient manner in APIs &amp; Integrations</title>
    <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1173611#M83056</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/148965"&gt;@skerdi&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unless I'm mistaken, you can retrieve all object schemas (standard and custom), singular/plural labels and associations via:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;GET /crm-object-schemas/v3/schemas?includeStandard=true&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And all association definitions/labels via:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;GET /crm/v4/associations/definitions/configurations/all&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 07 Jul 2025 13:28:22 GMT</pubDate>
    <dc:creator>sylvain_tirreau</dc:creator>
    <dc:date>2025-07-07T13:28:22Z</dc:date>
    <item>
      <title>V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1166847#M82735</link>
      <description>&lt;DIV&gt;Hello,&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;I am a developer of an application which consumes the V3 &amp;amp; V4 API-s.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;My use case is to read all association labels data for all objects in the V3 &amp;amp; V4 API-s using the requests below:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;LI-SPOILER&gt;&lt;P&gt;GET /crm/v3/objects/contacts?limit=100&amp;amp;associations=companies,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;/P&gt;&lt;P&gt;GET /crm/v3/objects/companies?limit=100&amp;amp;associations=contacts,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;...&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;GET /crm/v4/objects/contacts?limit=100&amp;amp;associations=companies,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;/P&gt;&lt;P&gt;GET /crm/v4/objects/companies?limit=100&amp;amp;associations=contacts,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;...&lt;/P&gt;&lt;/LI-SPOILER&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;There are 2 problems that I am facing with this scenario.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;FONT size="5"&gt;1 - The first problem&lt;/FONT&gt;, is that I have to first fetch the object names/type ids, in order to provide the list of values to the associations query parameter. To retrieve this data, I have to make a call to the &lt;STRONG&gt;/schemas/{object}&lt;/STRONG&gt; endpoint. I do this by saving every value for the &lt;EM&gt;toObjectTypeId&lt;/EM&gt; property in the label definitions in a set data structure.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;LI-SPOILER&gt;GET &lt;A href="https://api.hubapi.com/crm/v3/schemas/contact" target="_blank" rel="noopener"&gt;https://api.hubapi.com/crm/v3/schemas/contact&lt;/A&gt; HTTP/1.1&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; "labels": { "singular": "Contact", "plural": "Contacts" },&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; "associations": [&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "fromObjectTypeId": "0-1",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "toObjectTypeId": "0-11",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "name": "CONTACT_TO_CONVERSATION",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cardinality": "ONE_TO_MANY",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "inverseCardinality": "ONE_TO_MANY",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hasUserEnforcedMaxToObjectIds": false,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hasUserEnforcedMaxFromObjectIds": false,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "maxToObjectIds": 50000,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "maxFromObjectIds": 50000,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "id": "62",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "createdAt": null,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "updatedAt": null&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "fromObjectTypeId": "0-11",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "toObjectTypeId": "0-1",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "name": "CONVERSATION_TO_CONTACT",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cardinality": "ONE_TO_MANY",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "inverseCardinality": "ONE_TO_MANY",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hasUserEnforcedMaxToObjectIds": false,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hasUserEnforcedMaxFromObjectIds": false,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "maxToObjectIds": 50000,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "maxFromObjectIds": 50000,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "id": "61",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "createdAt": null,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "updatedAt": null&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "fromObjectTypeId": "0-1",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "toObjectTypeId": "0-118",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "name": "CONTACT_TO_PAYMENT_LINK",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "cardinality": "ONE_TO_MANY",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "inverseCardinality": "ONE_TO_MANY",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hasUserEnforcedMaxToObjectIds": false,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "hasUserEnforcedMaxFromObjectIds": false,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "maxToObjectIds": 50000,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "maxFromObjectIds": 50000,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "id": "470",&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "createdAt": null,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "updatedAt": null&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI-SPOILER&gt;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;In the example above: &amp;lt;&lt;EM&gt;0-11, 0-118, etc&amp;gt;.&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;FONT size="5"&gt;2 - The second problem&lt;/FONT&gt; (although I guess this is very specific to my use case), is that I want to be able to provide the users with the singular name of the associated object type for every association label. For example:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;LI-SPOILER&gt;&lt;P&gt;GET /crm/v3/objects/contacts?limit=100&amp;amp;associations=companies,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;&lt;BR /&gt;GET /crm/v4/objects/contacts?limit=100&amp;amp;associations=companies,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;/P&gt;&lt;/LI-SPOILER&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;LI-SPOILER&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;results&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; [&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;103381403171&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;105363718492&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;associations&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;courses&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;results&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; [{ &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;437892522595&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;contact_to_course&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; }]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;companies&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;results&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; [&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;21960462656&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;contact_to_company&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;21960462653&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;contact_to_company_unlabeled&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;21960462656&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;contact_to_company_unlabeled&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;21960462657&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;contact_to_company_unlabeled&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;p45447734_my_custom_object_2&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;results&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt; [&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;29664938156&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;contact_to_my_custom_object_2&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; },&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; ]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI-SPOILER&gt;&lt;LI-SPOILER&gt;&lt;P&gt;Id=105363718492&lt;BR /&gt;AssociatedObjectId=437892522595&lt;BR /&gt;AssociatedObjectType=Course&lt;BR /&gt;LabelName=contact_to_course&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Id=105363718492&lt;BR /&gt;AssociatedObjectId=21960462656&lt;BR /&gt;AssociatedObjectType=Company&lt;BR /&gt;LabelName=contact_to_company&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;...&lt;/P&gt;&lt;/LI-SPOILER&gt;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;However, the API returns the names of the associated objects in plural:&lt;/SPAN&gt;&lt;/P&gt;&lt;LI-SPOILER&gt;"companies": {&lt;BR /&gt;"courses": {&lt;/LI-SPOILER&gt;&lt;DIV&gt;&lt;SPAN&gt;, so I have to make a request to the &lt;STRONG&gt;/schemas/{object}&lt;/STRONG&gt; endpoint for every object and build a map of singular-plural object names internally, which I can later use to create the results for the application's users:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;LI-SPOILER&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; "labels": { "singular": "Contact", "plural": "Contacts" }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; ...&lt;BR /&gt;}&lt;/LI-SPOILER&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;This means that my users will have to wait some time (call the&amp;nbsp;&lt;STRONG&gt;/schemas/{object}&lt;/STRONG&gt; endpoint several times and parse the data), before they are able to read any associations data.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;The extra API calls to the &lt;STRONG&gt;/schemas/{objectType}&amp;nbsp;&lt;/STRONG&gt;make the overall user experience of the application bad. I think it would be much more convenient and efficient for HubSpot's API consumers if the API provided objects metadata (where associations metadata is also included) in 1 call:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;LI-SPOILER&gt;&lt;P&gt;GET &lt;A href="https://api.hubapi.com/crm/v3/schemas" target="_blank" rel="noopener"&gt;https://api.hubapi.com/crm/v3/schemas&lt;/A&gt; HTTP/1.1&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;GET /crm/v3/objects/contacts?limit=100&amp;amp;associations=companies,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;GET /crm/v3/objects/companies?limit=100&amp;amp;associations=contacts,tickets,deals,quotes,tasks&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;/LI-SPOILER&gt;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;I investigated whether this was possible and made some tests, but it seems the &lt;STRONG&gt;/schemas&lt;/STRONG&gt; endpoint only returns metadata for user-defined HubSpot objects:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;A title="https://community.hubspot.com/t5/APIs-Integrations/API-endpoint-to-retrieve-a-list-of-all-objects-in-a-HubSpot/m-p/824108" href="https://community.hubspot.com/t5/APIs-Integrations/API-endpoint-to-retrieve-a-list-of-all-objects-in-a-HubSpot/m-p/824108" target="_blank" rel="noopener"&gt;&lt;SPAN&gt; https://community.hubspot.com/t5/APIs-Integrations/API-endpoint-to-retrieve-a-list-of-all-objects-in-a-HubSpot/m-p/824108&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;A href="https://community.hubspot.com/t5/APIs-Integrations/Object-Schemas-GET-All-Custom-and-Standard/m-p/795828" target="_blank" rel="noopener"&gt;&lt;SPAN&gt; https://community.hubspot.com/t5/APIs-Integrations/Object-Schemas-GET-All-Custom-and-Standard/m-p/795828&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;- &lt;/SPAN&gt;&lt;A title="https://developers.hubspot.com/docs/reference/api/crm/objects/schemas" href="https://developers.hubspot.com/docs/reference/api/crm/objects/schemas" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;https://developers.hubspot.com/docs/reference/api/crm/objects/schemas&lt;/SPAN&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;Is there any other way through which I can read associations and objects&amp;nbsp;metadata for all objects in 1 request? If not, has HubSpot considered this functionality? In that case, what would be a rough estimate about the time when it's generally released to the public?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;H3&gt;&lt;SPAN&gt;&lt;SPAN&gt;Note&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H3&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;If the server was able to detect this use case, by letting the consumer provide some special input/parameter, that would be an even better solution &lt;STRONG&gt;for the first problem&lt;/STRONG&gt;. For example, a wildcard:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;LI-SPOILER&gt;&lt;DIV&gt;GET /crm/v3/objects/contacts?limit=100&amp;amp;associations=*&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;&lt;DIV&gt;GET /crm/v3/objects/companies?limit=100&amp;amp;associations=*&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;...&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;GET /crm/v4/objects/contacts?limit=100&amp;amp;associations=*&amp;amp;archived=false HTTP/1.1&lt;BR /&gt;GET /crm/v4/objects/companies?limit=100&amp;amp;associations=*&amp;amp;archived=false HTTP/1.1&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;...&lt;/DIV&gt;&lt;/LI-SPOILER&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;&lt;H3&gt;Note&lt;/H3&gt;&lt;DIV&gt;In the examples I have provided here, I have used the plural object names in the list of values for the associations query parameter. In reality however, I do use the object type ids as I explained before.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Thu, 19 Jun 2025 16:14:48 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1166847#M82735</guid>
      <dc:creator>skerdi</dc:creator>
      <dc:date>2025-06-19T16:14:48Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1167055#M82744</link>
      <description>&lt;P&gt;Hi &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/148965"&gt;@skerdi&lt;/a&gt;&lt;/SPAN&gt; and Happy Friday!&lt;BR /&gt;&lt;BR /&gt;Thanks for asking the HubSpot Community and for the detailed information!&lt;BR /&gt;&lt;BR /&gt;I'd love to put you in touch with our Top Experts: Hi &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/426475"&gt;@coldrickjack&lt;/a&gt;&lt;/SPAN&gt;, &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/601366"&gt;@sylvain_tirreau&lt;/a&gt;&lt;/SPAN&gt; and &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/17186"&gt;@Anton&lt;/a&gt; do you know of a way to read associations and objects metadata for all objects in 1 request to help &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/148965"&gt;@skerdi&lt;/a&gt;&lt;/SPAN&gt;, please?&lt;BR /&gt;&lt;BR /&gt;Have a lovely weekend and thank you very much for your help!&lt;BR /&gt;Bérangère&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jun 2025 09:39:22 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1167055#M82744</guid>
      <dc:creator>BérangèreL</dc:creator>
      <dc:date>2025-06-20T09:39:22Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1173611#M83056</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/148965"&gt;@skerdi&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unless I'm mistaken, you can retrieve all object schemas (standard and custom), singular/plural labels and associations via:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;GET /crm-object-schemas/v3/schemas?includeStandard=true&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And all association definitions/labels via:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;GET /crm/v4/associations/definitions/configurations/all&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Jul 2025 13:28:22 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1173611#M83056</guid>
      <dc:creator>sylvain_tirreau</dc:creator>
      <dc:date>2025-07-07T13:28:22Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1174498#M83115</link>
      <description>&lt;P&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/601366"&gt;@sylvain_tirreau&lt;/a&gt;&amp;nbsp;, thanks for the suggestions. Regarding what you said:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. I tested the &lt;STRONG&gt;/crm-object-schemas/v3/schemas&lt;/STRONG&gt; endpoint with the &lt;STRONG&gt;includeStandard=true&lt;/STRONG&gt; parameter, but just like the&amp;nbsp;&lt;STRONG&gt;/crm/v3/schemas &lt;/STRONG&gt;endpoint. only the schemas of custom/user-defined objects are returned.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. The &lt;STRONG&gt;/crm/v4/associations/definitions/configurations/all&lt;/STRONG&gt; endpoint returns the association schemas. I concluded this from tests I made and the &lt;A href="https://developers.hubspot.com/docs/reference/api/crm/associations/associations-schema#get-%2Fcrm%2Fv4%2Fassociations%2Fdefinitions%2Fconfigurations%2Fall" target="_blank" rel="noopener"&gt;API documentation&lt;/A&gt; which seems very clear about this. What I want however, is to read the actual associations (instances) that a HubSpot object has with all other HubSpot objects which are associated with it (association labels are defined for these relationships).&lt;/P&gt;</description>
      <pubDate>Wed, 09 Jul 2025 13:21:26 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1174498#M83115</guid>
      <dc:creator>skerdi</dc:creator>
      <dc:date>2025-07-09T13:21:26Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1174578#M83119</link>
      <description>&lt;P&gt;1. Does your application grant read permissions for the objects whose associations you want to obtain:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;crm.schemas.&amp;lt;object&amp;gt;.read&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2.&amp;nbsp;I haven't tested it, but I'll try to do it this way.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With &lt;STRONG&gt;/crm-object-schemas/v3/schemas?includeStandard=true&lt;/STRONG&gt;, you retrieve all object metadata. You extract the singular and plural labels for each objectTypeId.&lt;/P&gt;&lt;P&gt;With &lt;STRONG&gt;/crm/v4/associations/definitions/configurations/all&lt;/STRONG&gt;, you retrieve all association definitions (labels, etc.). You then construct an object like this:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;assoc_by_id -&amp;gt; direct access to the definition from the associationTypeId.&lt;/LI&gt;&lt;LI&gt;from_to_index -&amp;gt; list of possible associationTypeIds between two objects.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Finally, read the instances via the batch API:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;POST /crm/v4/associations/{fromObject}/{toObject}/batch/read&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Jul 2025 16:12:41 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1174578#M83119</guid>
      <dc:creator>sylvain_tirreau</dc:creator>
      <dc:date>2025-07-09T16:12:41Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1174841#M83137</link>
      <description>&lt;P&gt;1. Yes, my access token has been granted many of the&amp;nbsp;&lt;STRONG&gt;crm.schemas.&amp;lt;object&amp;gt;.read &lt;/STRONG&gt;scopes (e.g. contacts, companies, deals, etc.). However, this endpoint still returns only the schemas of user-defined HubSpot objects.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. I suppose this is one of the many ways to read associations data. Another less efficient way would be to use the &lt;STRONG&gt;/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} &lt;/STRONG&gt;endpoint. However, to me both of these solutions are not acceptable. I was trying to explain this in the post's description, but the main idea here is that I need to provide my users with the best performance possible for reading associations data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&lt;STRONG&gt;/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}&lt;/STRONG&gt;, will return all the associations that one object in an object category has with all objects in another object category.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&lt;STRONG&gt;/crm/v4/associations/{fromObject}/{toObject}/batch/read&lt;/STRONG&gt;,&amp;nbsp;will return all the assocaitions that multiples objects in an object category have with all objects in another object category.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&lt;SPAN&gt;&lt;STRONG&gt;/crm/v4/objects/contacts?associations=companies,tickets,...,&lt;/STRONG&gt;&amp;nbsp;will return all the associations that all objects in an object category have will all objects in all object categories with which they are associated with.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I look at it from this viewpoint, it becomes clear to me that the 3rd option will result in far less API calls/requests, which means better performance in reading all the associations.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Furthermore, the&amp;nbsp;&lt;STRONG&gt;/crm/v4/associations/definitions/configurations/all &lt;/STRONG&gt;endpoint seems to return only the schemas of user-defined association labels. The endpoint description in the &lt;A href="https://developers.hubspot.com/docs/reference/api/crm/associations/associations-schema#get-%2Fcrm%2Fv4%2Fassociations%2Fdefinitions%2Fconfigurations%2Fall" target="_blank" rel="noopener"&gt;API documentation&lt;/A&gt; kind of hints this as well:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Returns all user configurations available on a given portal&lt;/LI-CODE&gt;&lt;P&gt;HubSpot's system-defined labels such as &lt;STRONG&gt;CONTACT_TO_COMPANY&lt;/STRONG&gt;, &lt;STRONG&gt;CONTACT_TO_DEAL&lt;/STRONG&gt;, &lt;STRONG&gt;CONTACT_TO_TICKET&lt;/STRONG&gt;, etc. are not returned. Either way, considering what I said regarding performance, I still don't see how this endpoint could help me.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Jul 2025 09:05:14 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1174841#M83137</guid>
      <dc:creator>skerdi</dc:creator>
      <dc:date>2025-07-10T09:05:14Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1175257#M83169</link>
      <description>&lt;P&gt;On reflection, I think it's normal that there is only the list of associations customized by the user, given that the other associations are a fixed list, possibly updated from time to time. If I were you, I would store this list and update it regularly. I would do this by querying the endpoints useful for this on a regular basis via a cron. You have a list &lt;A href="https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4" target="_blank" rel="noopener"&gt;here&lt;/A&gt;, but I think that querying the right endpoints regularly would allow you to have both the customized associations and the associations defined by Hubspot.&amp;nbsp;And this way you achieve significantly improved performance, because you store the data with the structure you want.&lt;/P&gt;</description>
      <pubDate>Fri, 11 Jul 2025 04:06:28 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1175257#M83169</guid>
      <dc:creator>sylvain_tirreau</dc:creator>
      <dc:date>2025-07-11T04:06:28Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1177086#M83264</link>
      <description>&lt;P&gt;Sorry, but I still do not understand how the association ids can help. It's not like I can use these ids in the associations query parameter:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;https://api.hubapi.com/crm/v4/objects/contacts?limit=100&amp;amp;associations=279%2C4%2C15&amp;amp;archived=false&lt;/LI-CODE&gt;&lt;P&gt;I tried this and it does not work.&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jul 2025 09:08:44 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1177086#M83264</guid>
      <dc:creator>skerdi</dc:creator>
      <dc:date>2025-07-16T09:08:44Z</dc:date>
    </item>
    <item>
      <title>Re: V3 &amp; V4 API-s: Reading metadata/data for associations in an efficient manner</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1177125#M83270</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/148965"&gt;@skerdi&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm sorry, I didn't go into enough detail and probably gave you the wrong link.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. Locally, you build a dictionary (object in js; I call it here "objects") that will store the singular and plural.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For custom objects, use&amp;nbsp;&lt;STRONG&gt;/crm-object-schemas/v3/schemas&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For standard objects, use &lt;STRONG&gt;/crm-object-schemas/v3/schemas/{object_id}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I would do something like this (in Python) for standards:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;standard_ids = {
    "0-1": "Contacts",
    "0-2": "Companies",
    "0-3": "Deals",
    "0-5": "Tickets",
    "0-53": "Quotes",
    "0-18": "Line items",
    "0-27": "Tasks",
    "0-4": "Notes",
    "0-48": "Meetings",
    "0-106": "Calls",
}

for object_id in standard_ids:
    if object_id in objects:
        continue
    r = requests.get(f"https://api.hubapi.com/crm-object-schemas/v3/schemas/{object_id}", headers=HEAD, timeout=15)
    ...&lt;/LI-CODE&gt;&lt;P&gt;You can build your object with, for example, this structure:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;{object_id: {"singular": "...", "plural": "..."}}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Then you generate all possible pairs of your object IDs stored in your dictionary (see "&lt;EM&gt;itertools.permutations&lt;/EM&gt;" in Python to achieve the same result with another language or with your own function). In Python, it's a generator, so we can iterate directly on the function, and we can retrieve each possible pair.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For each of the pairs, you retrieve the metadata via &lt;STRONG&gt;/crm/v4/associations/{from}/{to}/labels&lt;/STRONG&gt;&amp;nbsp;that you store on your side (in a "associations" dictionnary). You save for example "objects" and "associations" in a json file ({"objects": {...}, "associations": {...}).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You perform those steps once a day, whenever you want.&lt;/P&gt;&lt;P&gt;In your application, you load your cached JSON file and use it as needed.&lt;/P&gt;&lt;P&gt;You probably need to adapt all of this to your environment...&lt;/P&gt;</description>
      <pubDate>Wed, 16 Jul 2025 10:44:46 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/V3-amp-V4-API-s-Reading-metadata-data-for-associations-in-an/m-p/1177125#M83270</guid>
      <dc:creator>sylvain_tirreau</dc:creator>
      <dc:date>2025-07-16T10:44:46Z</dc:date>
    </item>
  </channel>
</rss>

