For Agents
Create and manage HubSpot CRM lists, edit filter definitions, add and remove records from lists, and organise lists into folders.
Get started with Lists in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"create a HubSpot list and add contacts to it"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Lists API.
Create static and active lists scoped to any object type with custom filter definitions
Add or remove records from a static list, individually or in bulk via the add-and-remove endpoint
Search across lists by name, type, or processing status
Update a list's filter definition to change which records qualify for an active list
GET STARTED
Use for: I need to create a static list of high-value contacts for a campaign, I want to add 500 contacts to an existing HubSpot list, Search for all lists scoped to the deals object, Find a list by its name without knowing its ID
Not supported: Does not handle marketing email sending, workflow execution, or contact property creation — use for HubSpot CRM list and membership management only.
The HubSpot CRM Lists API manages static and active (filter-defined) lists for any CRM object — contacts, companies, deals, custom objects. It supports list creation, deletion, renaming, filter-definition updates, membership add and remove, search across lists, folder organisation, and translation between legacy and modern list IDs. Use it to build segmentation logic, drive marketing or workflow membership, or programmatically curate audiences for downstream automation.
Translate legacy v1 list IDs to modern v3 list IDs in batch for migration scripts
Move lists between folders and rename folders for organisational hygiene
Patterns agents use Lists API for, with concrete tasks.
★ Programmatic Audience Curation for Campaigns
Build a static list of contacts for a marketing send or workflow trigger by creating the list and then adding members in bulk. The Lists API exposes both a one-shot add endpoint and a combined add-and-remove endpoint, which is the right shape for incremental curation as new records qualify or fall out of scope. Lists of tens of thousands of members are routinely managed this way and feed directly into HubSpot Workflows.
POST /crm/v3/lists with a static list payload, capture the listId, then PUT /crm/v3/lists/{listId}/memberships/add with the contact IDs to add, in batches of up to 100.
Migrate from Legacy List IDs
Older HubSpot integrations stored v1 list IDs that are not interchangeable with the modern v3 list IDs returned by current endpoints. The Lists API offers single and batch ID translation endpoints so a migration script can rewrite stored references in bulk without manual lookup. Translating thousands of legacy IDs typically completes in a single batch request.
POST /crm/v3/lists/idmapping with an array of legacy list IDs and persist the returned modern IDs against each downstream record in the migration script.
Agent-Driven Active List Tuning
An AI agent that maintains marketing audiences can search for an active list by name, inspect its current filter definition, and update the filter when the underlying segmentation logic changes. Through Jentic, the agent finds the search and update operations by intent and chains them, which is useful for marketing-ops copilots that respond to brief updates.
Find the list with GET /crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}, then PUT /crm/v3/lists/{listId}/update-list-filters with the revised filter branch.
25 endpoints — the hubspot crm lists api manages static and active (filter-defined) lists for any crm object — contacts, companies, deals, custom objects.
METHOD
PATH
DESCRIPTION
/crm/v3/lists/{listId}
Fetch a list by ID
/crm/v3/lists/{listId}
Delete a list
/crm/v3/lists/{listId}/update-list-name
Rename a list
/crm/v3/lists/{listId}/update-list-filters
Update an active list's filter definition
/crm/v3/lists/{listId}/memberships/add
Add records to a list
/crm/v3/lists/{listId}/memberships/add-and-remove
Add and remove records in a single call
/crm/v3/lists/search
Search lists by name, type, or status
/crm/v3/lists/{listId}
Fetch a list by ID
/crm/v3/lists/{listId}
Delete a list
/crm/v3/lists/{listId}/update-list-name
Rename a list
/crm/v3/lists/{listId}/update-list-filters
Update an active list's filter definition
/crm/v3/lists/{listId}/memberships/add
Add records to a list
Three things that make agents converge on Jentic-routed access.
Credential isolation
HubSpot OAuth and Private App tokens are stored encrypted in the Jentic vault. Agents receive scoped access references, never raw tokens.
Intent-based discovery
Agents search by intent (e.g., 'add records to a HubSpot list') and Jentic returns the matching membership operation with its full input schema, including listId and member-ID array shape.
Time to first call
Direct integration: 2-3 days for OAuth, list filter shape, and membership sync. Through Jentic: under 1 hour.
Alternatives and complements available in the Jentic catalogue.
HubSpot CRM Contacts
Lists are most commonly composed of contact records
Use CRM-contacts to find or create the contact records that will be added to a list
HubSpot CRM Properties
Active list filters reference contact and object properties
Use CRM-properties to discover the property names and types that an active list filter can target
HubSpot CRM Custom Objects
Lists can be scoped to custom object types in addition to standard objects
Use CRM-customObjects to define the schema before creating a list scoped to that object type
Specific to using Lists API through Jentic.
What authentication does the HubSpot Lists API use?
OAuth 2.0 Bearer tokens or HubSpot Private App tokens in the Authorization header. Jentic stores the token encrypted in the vault and provides the agent with a scoped reference, so the raw token never enters the prompt.
Can I create a list that auto-updates as records change?
Yes. Create the list with a filter definition (an active list) and the membership is recomputed automatically as records change in the portal. PUT /crm/v3/lists/{listId}/update-list-filters can revise that definition later.
What are the rate limits for the HubSpot Lists API?
Standard HubSpot quotas apply: 100 requests per 10 seconds for OAuth apps and 110 for Private Apps, with daily caps that vary by Hub tier. Membership add and remove calls accept up to 100 record IDs per request, which is the recommended pattern for bulk curation.
How do I add contacts to an existing list through Jentic?
Run pip install jentic, call client.search('add records to a HubSpot list'), client.load to get the schema for PUT /crm/v3/lists/{listId}/memberships/add, and client.execute with the listId and an array of contact IDs.
Can I look up a list by name instead of ID?
Yes. GET /crm/v3/lists/object-type-id/{objectTypeId}/name/{listName} returns the list metadata for a given name and object type, which avoids storing list IDs in downstream systems.
How do I migrate from legacy v1 list IDs to v3 IDs?
POST /crm/v3/lists/idmapping accepts an array of legacy list IDs and returns the corresponding modern IDs in a single call. This is the recommended pattern for migration scripts that have legacy IDs persisted against downstream records.
/crm/v3/lists/{listId}/memberships/add-and-remove
Add and remove records in a single call
/crm/v3/lists/search
Search lists by name, type, or status