For Agents
Create, schedule, translate, and version HubSpot blog posts via batch and multi-language endpoints, so an agent can manage a full blog publishing workflow without the HubSpot UI.
Get started with Posts 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 and schedule a hubspot blog post"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Posts API.
Create or update blog posts individually or in batches of dozens at a time
Schedule a blog post to publish at a specific timestamp
Manage post drafts and push the draft live in one call
Clone a published post as the starting point for a new variant
Restore a post to an earlier revision or restore the revision into draft
GET STARTED
Use for: Create a new HubSpot blog post in the marketing blog, Schedule the product launch post for tomorrow at 09:00, Clone the Q3 best-of post as the starting point for Q4, Restore blog post 12345 to revision 6789
Not supported: Does not manage authors, tags, or blog-level configuration, and does not surface post analytics — use for authoring, scheduling, translating, and versioning HubSpot blog posts only.
The HubSpot CMS Blog Posts API manages every blog post in a HubSpot CMS portal, with single and batch endpoints for create, read, update, archive, schedule, draft, and clone. It includes revision endpoints for restoring or restoring-into-draft, plus a multi-language group so the same post can exist in several locales while sharing one identity. Use it for end-to-end programmatic blog publishing — from drafting to scheduling to archive.
Attach a post to a multi-language group so translated variants share an identity
Archive obsolete posts in batch without breaking historical URLs
Patterns agents use Posts API for, with concrete tasks.
★ Editorial Calendar Automation
Editorial teams plan content weeks in advance and want each post to appear at a precise time. The schedule endpoint paired with batch create lets an integration ingest a calendar, create the posts in draft, and schedule each for its slot in one orchestrated run. The result is a deterministic publishing pipeline backed by version history.
Read 10 calendar entries, POST them to /cms/v3/blogs/posts/batch/create as drafts, then call /cms/v3/blogs/posts/schedule for each with the planned publish timestamp.
Multi-Language Translation Workflow
Brands publishing in several languages need the translated post tied to the source post for analytics and routing. The multi-language endpoints attach posts to a language group, set a primary, and update language metadata in one call. The original post remains the canonical reference even as translations are added or replaced.
POST to /cms/v3/blogs/posts/multi-language/attach-to-lang-group with the source postId and the translated postIds, then call set-new-lang-primary if the primary language changed.
Content Reuse Through Cloning
Annual or quarterly recap posts share a structure year over year. The clone endpoint duplicates an existing post as a draft so an editor can swap in fresh data without rebuilding the layout. Combined with the draft endpoints, the new post can be reviewed, scheduled, or pushed live with a single call.
POST to /cms/v3/blogs/posts/clone with the source postId, edit the resulting draft via /cms/v3/blogs/posts/{objectId}/draft, then call the draft push-live endpoint.
Pre-Publish Revision Diff
Before a high-stakes post goes live, an editor wants to confirm exactly what changed since the last published version. The revisions endpoints return the change history and a specific revision payload so the agent can render a diff for human approval before pushing the draft live.
GET /cms/v3/blogs/posts/{objectId}/revisions, fetch the latest two revisions, render a diff for the reviewer, and either push the draft live or POST to the restore-to-draft endpoint.
Agent-Driven Blog Publishing
An AI agent given a brief and brand voice rules can produce a complete post end-to-end. Through Jentic the agent searches for the create-post operation, loads the schema, executes it with the drafted content, then calls the schedule endpoint to publish at the planned time. Credentials never leave the Jentic vault.
Use Jentic to search 'create hubspot blog post', load the schema, execute it with the drafted body and metadata, then call the schedule operation for the agreed publish time.
24 endpoints — the hubspot cms blog posts api manages every blog post in a hubspot cms portal, with single and batch endpoints for create, read, update, archive, schedule, draft, and clone.
METHOD
PATH
DESCRIPTION
/cms/v3/blogs/posts
List blog posts
/cms/v3/blogs/posts/batch/create
Create posts in batch
/cms/v3/blogs/posts/batch/update
Update posts in batch
/cms/v3/blogs/posts/batch/archive
Archive posts in batch
/cms/v3/blogs/posts/schedule
Schedule a post to publish
/cms/v3/blogs/posts/clone
Clone an existing post
/cms/v3/blogs/posts/{objectId}/draft
Update the draft of a post
/cms/v3/blogs/posts/{objectId}/draft/push-live
Push the draft of a post live
/cms/v3/blogs/posts
List blog posts
/cms/v3/blogs/posts/batch/create
Create posts in batch
/cms/v3/blogs/posts/batch/update
Update posts in batch
/cms/v3/blogs/posts/batch/archive
Archive posts in batch
/cms/v3/blogs/posts/schedule
Schedule a post to publish
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 (MAXsystem). The agent only ever holds a scoped execution token, so the raw HubSpot secret never enters the agent's context.
Intent-based discovery
Agents search Jentic with intents like 'create hubspot blog post' or 'schedule hubspot blog post' and receive the matching operation plus a ready-to-execute input schema.
Time to first call
Direct integration: 2-3 days to wire OAuth, batch creates, scheduling, drafts, and language groups. Through Jentic: under a day to search, load, and execute each operation.
Alternatives and complements available in the Jentic catalogue.
Blog Authors
Provides the author records that appear as bylines on these posts
Use Authors first to fetch or create the byline, then attach the author ID to the new post.
Blog Tags
Manages tags applied to posts for categorisation and filtering
Use Tags when the agent needs to classify a post; use Posts to author and schedule the post itself.
Blog Settings
Configures the blog containers in which these posts live
Use Blog Settings when the agent needs to choose or configure the blog before posting.
CMS Pages
Manages site and landing pages instead of blog post records
Choose Pages when the content type is a marketing page rather than a blog entry.
Specific to using Posts API through Jentic.
What authentication does the HubSpot Blog Posts API use?
It accepts HubSpot OAuth 2.0 tokens or Private App tokens in the Authorization header with the content scope. Jentic stores those credentials in its encrypted vault so the agent only ever holds a scoped execution token.
Can I publish a post to a specific blog within a multi-blog portal?
Yes. The contentGroupId field in the post payload identifies the destination blog. Combine with the Blog Settings API to list available blogs before choosing the target.
What are the rate limits for the HubSpot Blog Posts API?
It uses HubSpot's standard public API caps: 100 requests per 10 seconds for OAuth apps and 110 per 10 seconds for Private Apps on Pro and Enterprise. Batch endpoints count as one request even when updating many posts.
How do I publish a post on a schedule through Jentic?
Run pip install jentic, search 'schedule hubspot blog post', load the schema, and execute it with the postId and target timestamp. Jentic posts to /cms/v3/blogs/posts/schedule with valid auth headers.
Does the API expose post-level analytics like views and conversions?
No. Engagement and traffic metrics live in HubSpot's analytics endpoints. The Blog Posts API only manages the post object — its content, schedule, and revision state.
Can I clone a post into a different blog?
The clone endpoint /cms/v3/blogs/posts/clone duplicates a post within the same content space. To move it to a different blog, update the contentGroupId on the cloned post via the standard update endpoint before publishing.
/cms/v3/blogs/posts/clone
Clone an existing post
/cms/v3/blogs/posts/{objectId}/draft
Update the draft of a post
/cms/v3/blogs/posts/{objectId}/draft/push-live
Push the draft of a post live