mbilski
09/02/2026, 9:14 AMBrendan O'Leary
09/03/2026, 10:57 PMobjectType: "leads" with:
• HUBSPOT_SEARCH_CRM_OBJECTS_BY_CRITERIA or HUBSPOT_READ_APAGE_OF_OBJECTS_BY_TYPE to list/search leads
• HUBSPOT_READ_CRM_OBJECT_BY_ID to read one lead
• HUBSPOT_PARTIALLY_UPDATE_CRM_OBJECT_BY_ID to update it
To change qualification status, first use HUBSPOT_READ_A_CRM_PROPERTY_BY_NAME for hs_lead_label to get the valid labels in that HubSpot account, then update hs_lead_label with the generic update tool.
The connection must have [crm.objects.leads.read](http://crm.objects.leads.read) and crm.objects.leads.write. HubSpot restricts these scopes to Sales Hub Professional or Enterprise, and they are not part of Composio-managed HubSpot’s default scope set. For Leads access, use a custom HubSpot auth config with your own OAuth app, enable those scopes in HubSpot, add them under Optional Scopes, and reconnect.
So you do not need the HTTP toolkit for this. We do not have an ETA to share for dedicated lead-named wrappers, but the docs should make the generic Leads path easier to discover. Thanks for flagging that.