For Agents
Read, write, search, and batch-manage HubSpot Courses CRM records via the standard /crm/v3/objects/courses endpoints with custom-property support.
Get started with Courses 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 course record"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Courses API.
Create individual course records with custom properties via POST /crm/v3/objects/{objectType}
Bulk-import up to 100 courses per request through POST /crm/v3/objects/{objectType}/batch/create
Search course records by property filters with POST /crm/v3/objects/{objectType}/search
Upsert courses by external identifier using POST /crm/v3/objects/{objectType}/batch/upsert
GET STARTED
Use for: I need to create a new course record in HubSpot for a learner enrollment, Search for all active course records assigned to a specific owner, List all courses in HubSpot updated in the last 7 days, Retrieve the full property set for a single course by its objectId
Not supported: Does not handle learner authentication, video hosting, or quiz delivery — use for tracking course records inside HubSpot CRM only.
The HubSpot Courses API exposes the Courses CRM object so AI agents can read, create, update, archive, and search course records that sit alongside companies, contacts, and deals. It supports single-record and batch operations through the standard /crm/v3/objects/{objectType} surface, with full support for custom properties and pagination. Courses are commonly used by education, training, and onboarding teams that want learner enrollments tracked inside the same CRM as sales pipeline data.
Archive obsolete course records with DELETE /crm/v3/objects/{objectType}/{objectId}
Patch specific course properties via PATCH /crm/v3/objects/{objectType}/{objectId} without touching other fields
Patterns agents use Courses API for, with concrete tasks.
★ LMS to CRM Course Sync
Sync course enrollments from an external learning management system into HubSpot so that sales and customer success teams see a learner's training history alongside deals and tickets. The batch upsert endpoint handles up to 100 courses per call and uses an external identifier to avoid duplicates. A nightly sync of a few thousand records typically completes in minutes.
Bulk-upsert 50 course records into HubSpot via POST /crm/v3/objects/courses/batch/upsert using courseExternalId as the idProperty, then verify the response status is 200.
Course Pipeline Reporting
Pull course records by completion status, owner, or date range to feed weekly training reports. The search endpoint accepts property filters, sorting, and pagination cursors so reporting jobs can stream large result sets without timing out. Pair with the CRM Owners API to resolve owner IDs to user names.
Search HubSpot courses where hs_pipeline_stage equals completed and createdate is within the last 30 days, then return the count and the first page of records.
Course Lifecycle Cleanup
Archive courses that have been retired so they no longer appear in active reports or workflows, while preserving historical data for audits. The single-record archive endpoint marks the record as archived rather than hard-deleting it, and a separate batch archive endpoint handles cleanup at scale.
Archive 25 retired course records using POST /crm/v3/objects/courses/batch/archive with the list of objectIds, then confirm a 204 response.
Agent-Driven Course Updates via Jentic
An AI agent monitoring training events updates the corresponding HubSpot course record when a learner finishes a module. Through Jentic, the agent searches for the right operation, loads the input schema, and executes the PATCH call without parsing HubSpot docs or storing the API key in its context. Integration through Jentic takes under an hour versus 1-2 days for direct OAuth wiring.
Use Jentic to search 'update a HubSpot course record', load the PATCH /crm/v3/objects/courses/{objectId} schema, and execute it with a new completion timestamp.
11 endpoints — the hubspot courses api exposes the courses crm object so ai agents can read, create, update, archive, and search course records that sit alongside companies, contacts, and deals.
METHOD
PATH
DESCRIPTION
/crm/v3/objects/{objectType}
List course records with pagination
/crm/v3/objects/{objectType}
Create a course record
/crm/v3/objects/{objectType}/{objectId}
Retrieve a course by ID
/crm/v3/objects/{objectType}/{objectId}
Update properties on a course
/crm/v3/objects/{objectType}/batch/create
Batch-create up to 100 courses
/crm/v3/objects/{objectType}/batch/upsert
Batch-upsert courses by external ID
/crm/v3/objects/{objectType}/search
Search courses by property filters
/crm/v3/objects/{objectType}
List course records with pagination
/crm/v3/objects/{objectType}
Create a course record
/crm/v3/objects/{objectType}/{objectId}
Retrieve a course by ID
/crm/v3/objects/{objectType}/{objectId}
Update properties on a course
/crm/v3/objects/{objectType}/batch/create
Batch-create up to 100 courses
Three things that make agents converge on Jentic-routed access.
Credential isolation
HubSpot OAuth tokens or private app API 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., 'create a HubSpot course record') and Jentic returns the matching /crm/v3/objects/courses operation with its input schema, so the agent can call the right endpoint without browsing HubSpot's developer docs.
Time to first call
Direct HubSpot integration: 1-2 days for OAuth setup, scope management, and error handling. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
HubSpot Contacts
Manage the contacts that are typically associated with course enrollments
Use Contacts when the agent needs to attach a learner profile to a course record or look up a contact before creating an enrollment.
HubSpot Deals
Track sales opportunities tied to training or course purchases
Use Deals alongside Courses when course enrollments are tied to a paid training contract that needs pipeline tracking.
HubSpot CRM Properties
Define custom properties on the courses object type
Call Properties first to discover or create the custom fields a course record will use before reading or writing course data.
Salesforce
Salesforce custom objects offer the same CRM-record pattern in a different ecosystem
Choose Salesforce when the organisation already standardises on Sales Cloud or needs Apex-based custom logic on course records.
Specific to using Courses API through Jentic.
What authentication does the HubSpot Courses API use?
The Courses API accepts OAuth 2.0 access tokens or HubSpot private app API keys passed in the private-app or private-app-legacy header. Through Jentic, credentials are stored in the MAXsystem vault and injected at execution time so the raw OAuth token or API key never enters the agent's context.
Can I bulk-import course records with the HubSpot Courses API?
Yes. POST /crm/v3/objects/courses/batch/create accepts up to 100 records per request, and POST /crm/v3/objects/courses/batch/upsert lets you insert-or-update by an external identifier in the same call. Use these endpoints instead of looping single creates to stay within rate limits.
What are the rate limits for the HubSpot Courses API?
HubSpot enforces account-level limits — typically 100 requests per 10 seconds for OAuth apps and 190 per 10 seconds for private apps on paid tiers, plus a daily cap. Batch endpoints count as a single request, so prefer batch/create and batch/upsert for high-volume jobs.
How do I search HubSpot courses through Jentic?
Run jentic.search('search HubSpot course records'), load the schema for POST /crm/v3/objects/courses/search, then execute it with a filterGroups payload (for example, hs_pipeline_stage equals completed). Jentic returns results as structured JSON ready for the next step in your workflow.
Can the Courses API associate a course with a contact or deal?
The Courses API itself only manages the course record. To link a course to a contact, deal, or company, use the CRM Associations API in HubSpot — Jentic exposes that as a separate operation you can chain after creating the course.
Does the HubSpot Courses API support custom properties?
Yes. Course records support any custom property defined on the courses object type. Pass property names in the properties array on read calls to control what comes back, and include them in the properties map on create or update.
/crm/v3/objects/{objectType}/batch/upsert
Batch-upsert courses by external ID
/crm/v3/objects/{objectType}/search
Search courses by property filters