I am working on an automated content generation and publishing workflow using n8n (an automation platform) to push content directly into the HubSpot CMS.
My goal is to create a fully dynamic end-to-end workflow, but I've hit a roadblock concerning the prerequisite structure: the Blog/Content Group.
The Problem: Cannot Create the Blog Container via API
To create a new blog post via the API (POST /cms/v3/blogs/posts), two IDs are mandatory in the payload:
blogAuthorId (Author ID)
contentGroupId (The ID of the specific blog where the post will live)
I am successfully fetching the required IDs for the Author and the existing Content Group using the GET endpoints:
GET /cms/v3/blogs/authors
GET /cms/v3/blogs/blogs
The core issue is that I cannot find a public API endpoint to programmatically create a brand new blog (Content Group) itself.
If I need to categorize my content into new, distinct blogs based on the content generated (e.g., creating a new Content Group for a new topic cluster), I am forced to pause my automation, log into HubSpot, and manually create the new blog before my automated system can proceed.
My Question to the Community:
Is there a hidden or undocumented API endpoint for creating a new Blog/Content Group within the HubSpot CMS?
If not, has anyone in the community developed a robust workaround for dynamically managing blog containers for large, automated content generation projects?
Are there any plans in the HubSpot API roadmap to allow POST requests to the /cms/v3/blogs/blogs endpoint?
Any guidance on whether this is possible or if there's a recommended best practice for this level of automation would be greatly appreciated!
as far as I know, creating a blog is only an internal/private API which isn't shared with the public for a good reason. Imagine creating 10s/100s/1000s blogs via API during testing... This would simply overload the whole system.
The best practise is (and I assume will be) to create blogs (ContentGroups) manually and then go from there.
If you'd like to strucutre your content, the best practise is as @SealaB suggested to go with the Blog tags and structure your blog listing page similar to blog.hubspot.com
Furthermore: A single blog can only contain a max. of 10k posts in all language variations. In other words - 10k posts in 1 language, 5k posts in 2 languages, ...
Something you can also think about is rebuilding a blog-like experience with HubDB and dynamic pages, it might be a bit more work, but would also give you more flexibility in functionality
as far as I know, creating a blog is only an internal/private API which isn't shared with the public for a good reason. Imagine creating 10s/100s/1000s blogs via API during testing... This would simply overload the whole system.
The best practise is (and I assume will be) to create blogs (ContentGroups) manually and then go from there.
If you'd like to strucutre your content, the best practise is as @SealaB suggested to go with the Blog tags and structure your blog listing page similar to blog.hubspot.com
Furthermore: A single blog can only contain a max. of 10k posts in all language variations. In other words - 10k posts in 1 language, 5k posts in 2 languages, ...
Something you can also think about is rebuilding a blog-like experience with HubDB and dynamic pages, it might be a bit more work, but would also give you more flexibility in functionality
Jumping right in, I'm going to tag a few of our top developer experts who might have encountered this exact "container" limitation before: @GonzaloTorreras, @Bortami, and @WesQ - do you have any other creative workarounds for dynamically spinning up blog instances?
I would suggest you review the Blog Tags API documentation to see if switching your architecture to "Tags" solves the dynamic creation hurdle.