How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

HubSpot CMS Tags API

vNext REST API for Public Blog services

HubSpot CMS Tags API is one of 144 APIs that HubSpot publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 692 JSON Schema definitions.

Tagged areas include CMS and Tags. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, code examples, and 692 JSON Schemas.

This API exposes 20 operations across 17 paths, organized into 3 resource areas, and defines 20 schemas. It is described by OpenAPI 3.0.1, at version 2026-09.

Requests are made against a single base URL, https://api.hubapi.com.

20 operations 17 paths 20 schemas 1 DELETE8 GET1 PATCH9 POST1 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.1
API Version
2026-09
Base URL
https://api.hubapi.com
Authentication
API Key, OAuth 2.0, API Key, API Key
Resource Areas
3

Authentication & Security 4

HubSpot CMS Tags API declares 4 security schemes for authenticating requests. An API key is passed in the query as hapikey (developer_hapikey). It supports OAuth 2.0 (oauth2) using the authorizationCode flow, exposing 1 scope. An API key is passed in the header as private-app (private_apps). An API key is passed in the header as private-app-legacy (private_apps_legacy).

Paths & Operations 20

Across 17 paths, the API surfaces 20 operations — 1 DELETE, 8 GET, 1 PATCH, 9 POST, 1 PUT. They span 3 resource areas: Basic, Batch, Multi-language. Each is listed below with its method, path, parameters, and response codes.

Basic 11
GET
/cms/blogs/2026-09/authors/cursor
get-/cms/blogs/2026-09/authors/cursor_/cms/blogs/v3/authors/cursor 11 params → 200default
GET
/cms/blogs/2026-09/authors/cursor/query
get-/cms/blogs/2026-09/authors/cursor/query_/cms/blogs/v3/authors/cursor/query 11 params → 200default
GET
/cms/blogs/2026-09/posts/cursor
get-/cms/blogs/2026-09/posts/cursor_/cms/blogs/v3/posts/cursor 11 params → 200default
GET
/cms/blogs/2026-09/posts/cursor/query
get-/cms/blogs/2026-09/posts/cursor/query_/cms/blogs/v3/posts/cursor/query 11 params → 200default
GET
/cms/blogs/2026-09/tags
Get all Blog Tags
get-/cms/blogs/2026-09/tags_getPage 11 params → 200default
POST
/cms/blogs/2026-09/tags
Create a new Blog Tag
post-/cms/blogs/2026-09/tags_create body → 201default
GET
/cms/blogs/2026-09/tags/cursor
get-/cms/blogs/2026-09/tags/cursor_/cms/blogs/v3/tags/cursor 11 params → 200default
GET
/cms/blogs/2026-09/tags/cursor/query
get-/cms/blogs/2026-09/tags/cursor/query_/cms/blogs/v3/tags/cursor/query 11 params → 200default
GET
/cms/blogs/2026-09/tags/{objectId}
Retrieve a Blog Tag
get-/cms/blogs/2026-09/tags/{objectId}_getById 3 params → 200default
DELETE
/cms/blogs/2026-09/tags/{objectId}
Delete a Blog Tag
delete-/cms/blogs/2026-09/tags/{objectId}_archive 2 params → 204default
PATCH
/cms/blogs/2026-09/tags/{objectId}
Update a Blog Tag
patch-/cms/blogs/2026-09/tags/{objectId}_update 2 params body → 200default
Batch 4
POST
/cms/blogs/2026-09/tags/batch/archive
Delete a batch of Blog Tags
post-/cms/blogs/2026-09/tags/batch/archive_archiveBatch body → 204default
POST
/cms/blogs/2026-09/tags/batch/create
Create a batch of Blog Tags
post-/cms/blogs/2026-09/tags/batch/create_createBatch body → 201207default
POST
/cms/blogs/2026-09/tags/batch/read
Retrieve a batch of Blog Tags
post-/cms/blogs/2026-09/tags/batch/read_readBatch 1 param body → 200207default
POST
/cms/blogs/2026-09/tags/batch/update
Update a batch of Blog Tags
post-/cms/blogs/2026-09/tags/batch/update_updateBatch 1 param body → 200207default
Multi-language 5
POST
/cms/blogs/2026-09/tags/multi-language/attach-to-lang-group
Attach a Blog Tag to a multi-language group
post-/cms/blogs/2026-09/tags/multi-language/attach-to-lang-group_attachToLangGroup body → default
POST
/cms/blogs/2026-09/tags/multi-language/create-language-variation
Create a new language variation
post-/cms/blogs/2026-09/tags/multi-language/create-language-variation_createLangVariation body → 200default
POST
/cms/blogs/2026-09/tags/multi-language/detach-from-lang-group
Detach a Blog Tag from a multi-language group
post-/cms/blogs/2026-09/tags/multi-language/detach-from-lang-group_detachFromLangGroup body → default
PUT
/cms/blogs/2026-09/tags/multi-language/set-new-lang-primary
Set a new primary language
put-/cms/blogs/2026-09/tags/multi-language/set-new-lang-primary_setLangPrimary body → 204default
POST
/cms/blogs/2026-09/tags/multi-language/update-languages
Update languages of multi-language group
post-/cms/blogs/2026-09/tags/multi-language/update-languages_updateLangs body → default

Schemas 20

The contract defines 20 schemas that model the data the API accepts and returns. The most detailed are BatchResponseTagWithErrors (8 properties), Tag (8 properties), StandardError (8 properties), Error (7 properties). Each schema is shown below with its type and property counts.

AttachToLangPrimaryRequestVNext
object
4 properties 3 required
BatchInputJsonNode
object
1 property 1 required
BatchInputString
object
1 property 1 required
BatchInputTag
object
1 property 1 required
BatchResponseTag
object
6 properties 4 required
BatchResponseTagWithErrors
object
8 properties 4 required
CollectionResponseWithTotalTagForwardPaging
object
3 properties 2 required
CursorPagedResultBlogAuthorLong
object
CursorPagedResultBlogPostLong
object
CursorPagedResultTagLong
object
DetachFromLangGroupRequestVNext
object
1 property 1 required
Error
object
Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the…
7 properties 3 required
ErrorDetail
object
Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typic…
5 properties 1 required
ForwardPaging
object
Paging information for forward-only pagination. Contains the next page reference when more results are available; omitted or empty on the last page.
1 property
NextPage
object
Specifies the paging information needed to retrieve the next set of results in a paginated API response
2 properties 1 required
SetNewLanguagePrimaryRequestVNext
object
1 property 1 required
StandardError
object
Ye olde error
8 properties 6 required
Tag
object
8 properties 8 required
TagCloneRequestVNext
object
5 properties 2 required
UpdateLanguagesRequestVNext
object
2 properties 2 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

hubspot-cms-tags-api-openapi.yml Raw ↑

Other APIs HubSpot publishes across the network.

HubSpot URL Redirects API
HubSpot Pipelines API
HubSpot Products API
HubSpot Line Items API
HubSpot Quotes API
HubSpot CRM Properties API
HubSpot Owners API
HubSpot CRM Imports API
HubSpot Custom Objects API
HubSpot Marketing Events API
HubSpot Forms API
HubSpot Workflows API
Where this information came from

This is an independent, third-party profile of HubSpot CMS Tags API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.