# HubSpot CMS Posts API

> HubSpot CMS Posts API on Apizie: 30 endpoints (List Authors, Query authors, Get all posts, Create a new post, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/business:hubspot-cms-posts/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:hubspot-cms-posts`
- Category: Business
- Status: byok
- Source: https://developers.hubspot.com/docs/api/overview
- Page: https://apizie.tech/api/business/hubspot-cms-posts
- OpenAPI: https://apizie.tech/api/business/hubspot-cms-posts/openapi.json

vNext REST API for Public Blog services

## Endpoints

### List Authors
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-authors-cursor-cms-blogs-v3-authors-cu` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| archived | boolean | no | Whether to return only results that have been archived. |
| createdAfter | string | no | Filter authors created after the specified date and time. |
| createdAt | string | no | Filter authors by the exact creation date and time. |
| createdBefore | string | no | Filter authors created before the specified date and time. |
| limit | integer | no | The maximum number of results to display per page. |
| property | string | no | Specify a property to include in the response. |
| sort | array | no | Specify the order in which to sort the results. Accepts an array of fields. |
| updatedAfter | string | no | Filter authors updated after the specified date and time. |
| updatedAt | string | no | Filter authors by the exact update date and time. |
| updatedBefore | string | no | Filter authors updated before the specified date and time. |

### Query authors
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-authors-cursor-query-cms-blogs-v3-auth` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| archived | boolean | no | Whether to return only results that have been archived. |
| createdAfter | string | no | Filter authors created after the specified date and time. |
| createdAt | string | no | Filter authors by the exact creation date and time. |
| createdBefore | string | no | Filter authors created before the specified date and time. |
| limit | integer | no | The maximum number of results to display per page. |
| property | string | no | Specify which properties of the authors to include in the response. |
| sort | array | no | Specify the order of results using a list of fields to sort by. |
| updatedAfter | string | no | Filter authors updated after the specified date and time. |
| updatedAt | string | no | Filter authors by the exact last update date and time. |
| updatedBefore | string | no | Filter authors updated before the specified date and time. |

### Get all posts
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-posts-get-page` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| archived | boolean | no | Whether to return only results that have been archived. |
| createdAfter | string | no | Filter posts created after the specified date and time. |
| createdAt | string | no | Filter posts by their creation date and time. |
| createdBefore | string | no | Filter posts created before the specified date and time. |
| limit | integer | no | The maximum number of results to display per page. |
| property | string | no | Specify which properties to include in the response. |
| sort | array | no | Specify the order in which to sort the results. Accepts an array of field names. |
| updatedAfter | string | no | Filter posts updated after the specified date and time. |
| updatedAt | string | no | Filter posts by their last update date and time. |
| updatedBefore | string | no | Filter posts updated before the specified date and time. |

### Create a new post
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-create` (byok)

### Delete a batch of blog posts
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-batch-archive-archive` (byok)

### Create a batch of blog posts
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-batch-create-create` (byok)

### Retrieve a batch of Blog Posts
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-batch-read-read` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| archived | boolean | no | Whether to return only results that have been archived. |

### Update a batch of Blog Posts
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-batch-update-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| archived | boolean | no | Whether to return only results that have been archived. |

### Clone a blog post
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-clone-clone` (byok)

### List posts
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-posts-cursor-cms-blogs-v3-posts-cursor` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| archived | boolean | no | Whether to return only results that have been archived. |
| createdAfter | string | no | Filter posts created after a specific date and time. |
| createdAt | string | no | Filter posts by their creation date and time. |
| createdBefore | string | no | Filter posts created before a specific date and time. |
| limit | integer | no | The maximum number of results to display per page. |
| property | string | no | Specify properties to include in the response. |
| sort | array | no | Specify the sorting order of the results. Accepts an array of field names. |
| updatedAfter | string | no | Filter posts updated after a specific date and time. |
| updatedAt | string | no | Filter posts by their last update date and time. |
| updatedBefore | string | no | Filter posts updated before a specific date and time. |

### Query Posts
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-posts-cursor-query-cms-blogs-v3-posts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| archived | boolean | no | Whether to return only results that have been archived. |
| createdAfter | string | no | Filter posts created after the specified date-time. |
| createdAt | string | no | Filter posts by their exact creation date. The format is date-time. |
| createdBefore | string | no | Filter posts created before the specified date-time. |
| limit | integer | no | The maximum number of results to display per page. |
| property | string | no | Specify properties to include in the response. |
| sort | array | no | Specify the sorting order of the results. Accepts an array of strings. |
| updatedAfter | string | no | Filter posts updated after the specified date-time. |
| updatedAt | string | no | Filter posts by their exact update date. The format is date-time. |
| updatedBefore | string | no | Filter posts updated before the specified date-time. |

### Attach post to a multi-language group
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-multi-language-attach-to-lang-g` (byok)

### Create a language variation
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-multi-language-create-language` (byok)

### Detach post from a multi-language group
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-multi-language-detach-from-lang` (byok)

### Set a new primary language
`POST https://apizie.tech/v1/business:hubspot-cms-posts/put-cms-blogs-2026-09-posts-multi-language-set-new-lang-prim` (byok)

### Update languages of multi-language group
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-multi-language-update-languages` (byok)

### Schedule a post to be published
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-schedule-schedule` (byok)

### Retrieve a blog post
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-posts-object-id-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post to retrieve. |
| archived | boolean | no | Whether to return only results that have been archived. |
| property | string | no | A specific property of the blog post to include in the response. |

### Update a post
`POST https://apizie.tech/v1/business:hubspot-cms-posts/patch-cms-blogs-2026-09-posts-object-id-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post to update. |
| archived | boolean | no | Whether to return only results that have been archived. |

### Delete a blog post
`POST https://apizie.tech/v1/business:hubspot-cms-posts/delete-cms-blogs-2026-09-posts-object-id-archive` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post to delete. |
| archived | boolean | no | Whether to return only results that have been archived. |

### Retrieve the full draft version of the Blog Post
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-posts-object-id-draft-get-draft-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post whose draft version is to be retrieved. |

### Update the draft of a post
`POST https://apizie.tech/v1/business:hubspot-cms-posts/patch-cms-blogs-2026-09-posts-object-id-draft-update-draft` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post draft to update. |

### Publish blog post draft
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-object-id-draft-push-live-push` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post draft to be published. |

### Reset post draft to the live version
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-object-id-draft-reset-reset-dra` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post whose draft is to be reset. |

### Retrieves all previous versions of a post
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-posts-object-id-revisions-get-previous` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post for which revisions are being retrieved. |
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| before | string | no | A cursor token to retrieve results before a specific point in the list. |
| limit | integer | no | The maximum number of results to display per page. |

### Retrieve a previous version of a blog post
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-posts-object-id-revisions-revision-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post. |
| revisionId | string | yes | The unique identifier of the revision to retrieve. |

### Restore a previous version
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-object-id-revisions-revision-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post for which the revision is to be restored. |
| revisionId | string | yes | The unique identifier of the revision to restore. |

### Restore a draft to a previous version
`POST https://apizie.tech/v1/business:hubspot-cms-posts/post-cms-blogs-2026-09-posts-object-id-revisions-revision-id-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| objectId | string | yes | The unique identifier of the blog post whose revision is being restored. |
| revisionId | integer | yes | The unique identifier of the revision to restore to draft. It is an integer value. |

### List tags
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-tags-cursor-cms-blogs-v3-tags-cursor` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| archived | boolean | no | Whether to return only results that have been archived. |
| createdAfter | string | no | Filter results to include only those created after the specified date and time. |
| createdAt | string | no | Filter results by the exact creation date and time. |
| createdBefore | string | no | Filter results to include only those created before the specified date and time. |
| limit | integer | no | The maximum number of results to display per page. |
| property | string | no | Specify which properties to include in the response. |
| sort | array | no | Specify the order of results. Accepts an array of field names to sort by. |
| updatedAfter | string | no | Filter results to include only those updated after the specified date and time. |
| updatedAt | string | no | Filter results by the exact update date and time. |
| updatedBefore | string | no | Filter results to include only those updated before the specified date and time. |

### Query Tags
`GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-tags-cursor-query-cms-blogs-v3-tags-cu` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| archived | boolean | no | Whether to return only results that have been archived. |
| createdAfter | string | no | Filter tags created after the specified date and time. |
| createdAt | string | no | Filter tags by their exact creation date and time. |
| createdBefore | string | no | Filter tags created before the specified date and time. |
| limit | integer | no | The maximum number of results to display per page. |
| property | string | no | Specify a property to include in the response. |
| sort | array | no | Specify the sort order of the results. Accepts an array of fields to sort by. |
| updatedAfter | string | no | Filter tags updated after the specified date and time. |
| updatedAt | string | no | Filter tags by their exact update date and time. |
| updatedBefore | string | no | Filter tags updated before the specified date and time. |

## Example
```
curl "https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-authors-cursor-cms-blogs-v3-authors-cu" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the HubSpot CMS Posts API?
Create a free Apizie key, then send GET https://apizie.tech/v1/business:hubspot-cms-posts/get-cms-blogs-2026-09-authors-cursor-cms-blogs-v3-authors-cu with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the HubSpot CMS Posts API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. HubSpot CMS Posts itself also needs your own key from hubapi.com.

### Can AI agents use the HubSpot CMS Posts API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:hubspot-cms-posts.

### What is the status of the HubSpot CMS Posts API?
Needs your own provider key (bring your own key)
