For Agents
Kick off asynchronous CRM exports of contacts, deals, companies, tickets, or custom objects to XLSX or CSV and poll for completion via /crm/v3/exports.
Get started with CRM Exports 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:
"start a HubSpot async export"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with CRM Exports API.
Start an asynchronous export task with POST /crm/v3/exports/export/async
Poll an export task's status and download URL via GET /crm/v3/exports/export/async/tasks/{taskId}/status
Export a saved CRM view rather than building filter criteria inline
Choose property columns explicitly so the export contains only the fields a downstream system needs
GET STARTED
Use for: I need to export every contact created in 2026 to a CSV for a data warehouse load, Start a deal export filtered to closed-won opportunities last quarter, Check the status of an export task I started earlier, List all properties on a saved view export so I know what columns to expect
Not supported: Does not transform data, run scheduled syncs, or push results to external systems — use for kicking off async HubSpot exports and retrieving the resulting file only.
The HubSpot CRM Exports API kicks off asynchronous bulk exports of CRM data — contacts, companies, deals, tickets, custom objects, or saved views — and returns the resulting file as XLSX or CSV. It exposes one endpoint to start an export task and a second to poll its status, which is the right pattern for pulling tens or hundreds of thousands of records without paginating the search API. Exports respect HubSpot property selection and filter criteria, so agents can specify exactly which columns and which records to include.
Export custom objects as well as standard contact, company, deal, and ticket data
Patterns agents use CRM Exports API for, with concrete tasks.
★ Data Warehouse Loads
Export full or filtered CRM tables on a schedule (nightly, weekly) to land them in a data warehouse like Snowflake or BigQuery. The async export endpoint accepts a list of properties and filter groups so the resulting file matches the warehouse schema, and the status endpoint returns a signed download URL once HubSpot finishes preparing the file. This is the recommended path for moving large slices of CRM data — search-based pagination is too slow above a few thousand records.
Start a contact export with type CONTACT, format CSV, and filterGroups limiting createdate to 2026, then poll GET /crm/v3/exports/export/async/tasks/{taskId}/status until status is COMPLETE.
Stakeholder Spreadsheet Pulls
Generate ad-hoc XLSX exports of saved views for stakeholders who need a snapshot rather than live data — for example, exec teams reviewing the quarterly pipeline. The export endpoint can target a saved view ID directly, so analysts do not have to rebuild filters in API calls. Status polling typically completes within a minute for views under 50,000 records.
Start an export with type DEAL, format XLSX, and the saved view ID for 'Q2 Pipeline', then return the download URL once status is COMPLETE.
Compliance Data Pulls
Run a one-time export of all contacts matching a compliance request (for example, a GDPR data subject request limited to one email address) so the records can be reviewed and redacted offline. The async pattern keeps the call non-blocking, and HubSpot's exported file includes every selected property and history. Pair with HubSpot's privacy delete endpoints once review is complete.
Start an export filtered to contact email equals 'subject@example.com' with all properties selected, poll until COMPLETE, and return the download URL.
Agent-Driven Bulk Pulls via Jentic
An AI analyst building a one-off report needs every deal closed last quarter as a CSV. Through Jentic the agent searches for the start-export operation, executes it with the right filter, then chains the status poll until the file is ready. The whole flow uses Jentic-managed credentials and returns the structured download URL for the next step.
Use Jentic to search 'start a HubSpot async export', execute POST /crm/v3/exports/export/async with type DEAL and filter dealstage equals closedwon, then chain the status poll until COMPLETE.
2 endpoints — the hubspot crm exports api kicks off asynchronous bulk exports of crm data — contacts, companies, deals, tickets, custom objects, or saved views — and returns the resulting file as xlsx or csv.
METHOD
PATH
DESCRIPTION
/crm/v3/exports/export/async
Start an asynchronous export task
/crm/v3/exports/export/async/tasks/{taskId}/status
Poll an export task and retrieve the download URL when complete
/crm/v3/exports/export/async
Start an asynchronous export task
/crm/v3/exports/export/async/tasks/{taskId}/status
Poll an export task and retrieve the download URL when complete
Three things that make agents converge on Jentic-routed access.
Credential isolation
HubSpot OAuth tokens and private app keys are stored encrypted in the Jentic vault. Agents receive a scoped execution token — the raw HubSpot credential is injected at call time and never enters the agent's context.
Intent-based discovery
Agents search Jentic by intent (e.g., 'start a HubSpot export') and Jentic returns the POST /crm/v3/exports/export/async operation with its input schema, so the agent calls the right endpoint without browsing HubSpot docs.
Time to first call
Direct HubSpot integration: 2-3 days for OAuth scopes, status polling, and file download handling. Through Jentic: under 1 hour — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
HubSpot Contacts
Read-modify contacts before or after a bulk export
Use Contacts when the agent needs to update specific records identified in an export rather than mass-modify them through the export pipeline.
HubSpot Deals
Search deals when an export is overkill for a small slice
Use Deals search for live, paginated reads of fewer than a few thousand records — fall back to Exports when row counts grow.
HubSpot CRM Properties
Discover the property names to include in export columns
Call Properties first when the agent does not know the available column names for a custom object export.
Salesforce
Salesforce Bulk API offers similar large-volume exports in Sales Cloud
Choose Salesforce Bulk API when the source CRM is Sales Cloud rather than HubSpot.
Specific to using CRM Exports API through Jentic.
What authentication does the HubSpot CRM Exports API use?
Exports accepts OAuth 2.0 access tokens with the relevant object read scopes (e.g., crm.objects.contacts.read for contact exports) and HubSpot private app API keys passed in the private-app header. Through Jentic the credential lives in the MAXsystem vault and is injected at execution time so it never enters the agent's context.
Can I export custom objects with this API?
Yes. Pass the custom object's fully-qualified type or object type ID in the export request alongside the properties array, and HubSpot will produce the file in the same way as a standard object export. Use the Properties API to discover available property names first.
What are the rate limits for the HubSpot CRM Exports API?
Each export task counts as a single API call, so request rate is rarely the constraint — HubSpot caps the number of concurrent export jobs per account and the per-export row count instead. Poll the status endpoint at a reasonable interval (every 10-30 seconds) rather than tight loops.
How do I run an export through Jentic?
Run jentic.search('start a HubSpot async export'), load the schema for POST /crm/v3/exports/export/async, and execute it with the export type, format, and filter criteria. Then chain GET /crm/v3/exports/export/async/tasks/{taskId}/status until status is COMPLETE to retrieve the download URL.
Is the resulting file delivered synchronously?
No. The start endpoint returns a task ID immediately and the file is prepared asynchronously. Poll the status endpoint until status is COMPLETE — the response then includes a temporary download URL. Large exports can take several minutes.
Can I export based on a saved view rather than ad-hoc filters?
Yes. Pass the publicCrmSearchRequest with a savedViewId on POST /crm/v3/exports/export/async to mirror exactly what a user sees in a saved CRM view. This avoids rebuilding the same filter logic in API calls.