For Agents
Create and manage HubSpot CRM lists, edit filter definitions, add and remove records from lists, and organise lists into folders.
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.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Lists, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
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
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
/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
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.
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.
GET STARTED