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 Pages API

HubSpot CMS Pages — 66 operation(s) from HubSpot's published OpenAPI.

HubSpot CMS Pages 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 Pages. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, code examples, and 692 JSON Schemas.

This API exposes 66 operations across 55 paths, organized into 8 resource areas, and defines 49 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.

66 operations 55 paths 49 schemas 3 DELETE14 GET5 PATCH42 POST2 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
8

Authentication & Security 4

HubSpot CMS Pages 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 3 scopes. 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 66

Across 55 paths, the API surfaces 66 operations — 3 DELETE, 14 GET, 5 PATCH, 42 POST, 2 PUT. They span 8 resource areas: Landing pages, A/B tests, Batch, Folders, Multi-language, Website pages, Advanced, Basic. Each is listed below with its method, path, parameters, and response codes.

Landing pages 11
GET
/cms/pages/2026-09/landing-pages
Get all landing pages
get-/cms/pages/2026-09/landing-pages_getPage 11 params → 200default
POST
/cms/pages/2026-09/landing-pages
Create a landing page
post-/cms/pages/2026-09/landing-pages_create body → 201default
POST
/cms/pages/2026-09/landing-pages/clone
Clone a landing page
post-/cms/pages/2026-09/landing-pages/clone_clone body → 200default
POST
/cms/pages/2026-09/landing-pages/schedule
Schedule landing page publishing
post-/cms/pages/2026-09/landing-pages/schedule_schedule body → 204default
GET
/cms/pages/2026-09/landing-pages/{objectId}
Retrieve a landing page
get-/cms/pages/2026-09/landing-pages/{objectId}_getById 3 params → 200default
DELETE
/cms/pages/2026-09/landing-pages/{objectId}
Delete a landing page
delete-/cms/pages/2026-09/landing-pages/{objectId}_archive 2 params → 204default
PATCH
/cms/pages/2026-09/landing-pages/{objectId}
Update a landing page
patch-/cms/pages/2026-09/landing-pages/{objectId}_update 2 params body → 200default
GET
/cms/pages/2026-09/landing-pages/{objectId}/draft
Retrieve a landing page draft
get-/cms/pages/2026-09/landing-pages/{objectId}/draft_getDraftById 1 param → 200default
PATCH
/cms/pages/2026-09/landing-pages/{objectId}/draft
Update the draft of a landing page
patch-/cms/pages/2026-09/landing-pages/{objectId}/draft_updateDraft 1 param body → 200default
POST
/cms/pages/2026-09/landing-pages/{objectId}/draft/push-live
Push Landing Page draft edits live
post-/cms/pages/2026-09/landing-pages/{objectId}/draft/push-live_pushLive 1 param → 204default
POST
/cms/pages/2026-09/landing-pages/{objectId}/draft/reset
Reset a landing page draft
post-/cms/pages/2026-09/landing-pages/{objectId}/draft/reset_resetDraft 1 param → 204default
A/B tests 6
POST
/cms/pages/2026-09/landing-pages/ab-test/create-variation
Create a new A/B test variation
post-/cms/pages/2026-09/landing-pages/ab-test/create-variation_createABTestVariation body → 201default
POST
/cms/pages/2026-09/landing-pages/ab-test/end
End an active A/B test
post-/cms/pages/2026-09/landing-pages/ab-test/end_endActiveABTest body → 204default
POST
/cms/pages/2026-09/landing-pages/ab-test/rerun
Rerun a previous A/B test
post-/cms/pages/2026-09/landing-pages/ab-test/rerun_rerunPreviousABTest body → 204default
POST
/cms/pages/2026-09/site-pages/ab-test/create-variation
Create a new A/B test variation
post-/cms/pages/2026-09/site-pages/ab-test/create-variation_createABTestVariation body → 201default
POST
/cms/pages/2026-09/site-pages/ab-test/end
End an active A/B test
post-/cms/pages/2026-09/site-pages/ab-test/end_endActiveABTest body → 204default
POST
/cms/pages/2026-09/site-pages/ab-test/rerun
Rerun a previous A/B test
post-/cms/pages/2026-09/site-pages/ab-test/rerun_rerunPreviousABTest body → 204default
Batch 11
POST
/cms/pages/2026-09/landing-pages/batch/archive
Delete landing pages
post-/cms/pages/2026-09/landing-pages/batch/archive_archiveBatch body → 204default
POST
/cms/pages/2026-09/landing-pages/batch/create
Create landing pages
post-/cms/pages/2026-09/landing-pages/batch/create_createBatch body → 201207default
POST
/cms/pages/2026-09/landing-pages/batch/read
Retrieve landing pages
post-/cms/pages/2026-09/landing-pages/batch/read_readBatch 1 param body → 200207default
POST
/cms/pages/2026-09/landing-pages/batch/update
Update landing pages
post-/cms/pages/2026-09/landing-pages/batch/update_updateBatch 1 param body → 200207default
POST
/cms/pages/2026-09/landing-pages/folders/batch/archive
Delete folders
post-/cms/pages/2026-09/landing-pages/folders/batch/archive_archiveFolders body → 204default
POST
/cms/pages/2026-09/landing-pages/folders/batch/create
Create folders
post-/cms/pages/2026-09/landing-pages/folders/batch/create_createFolders body → 201207default
POST
/cms/pages/2026-09/landing-pages/folders/batch/update
Update folders
post-/cms/pages/2026-09/landing-pages/folders/batch/update_updateFolders 1 param body → 200207default
POST
/cms/pages/2026-09/site-pages/batch/archive
Delete website pages
post-/cms/pages/2026-09/site-pages/batch/archive_archiveBatch body → 204default
POST
/cms/pages/2026-09/site-pages/batch/create
Create website pages
post-/cms/pages/2026-09/site-pages/batch/create_createBatch body → 201207default
POST
/cms/pages/2026-09/site-pages/batch/read
Retrieve website pages
post-/cms/pages/2026-09/site-pages/batch/read_readBatch 1 param body → 200207default
POST
/cms/pages/2026-09/site-pages/batch/update
Update website pages
post-/cms/pages/2026-09/site-pages/batch/update_updateBatch 1 param body → 200207default
Folders 9
GET
/cms/pages/2026-09/landing-pages/folders
Get all landing page folders
get-/cms/pages/2026-09/landing-pages/folders_getFoldersPage 11 params → 200default
POST
/cms/pages/2026-09/landing-pages/folders
Create a landing page folder
post-/cms/pages/2026-09/landing-pages/folders_createFolder body → 201default
POST
/cms/pages/2026-09/landing-pages/folders/batch/read
Retrieve folders
post-/cms/pages/2026-09/landing-pages/folders/batch/read_readFolders 1 param body → 200207default
GET
/cms/pages/2026-09/landing-pages/folders/{objectId}
Retrieve a landing page folder
get-/cms/pages/2026-09/landing-pages/folders/{objectId}_getFolderById 3 params → 200default
DELETE
/cms/pages/2026-09/landing-pages/folders/{objectId}
Delete a landing page folder
delete-/cms/pages/2026-09/landing-pages/folders/{objectId}_archiveFolder 2 params → 204default
PATCH
/cms/pages/2026-09/landing-pages/folders/{objectId}
Update a landing page folder
patch-/cms/pages/2026-09/landing-pages/folders/{objectId}_updateFolder 2 params body → 200default
GET
/cms/pages/2026-09/landing-pages/folders/{objectId}/revisions
Retrieves previous versions of a folder
get-/cms/pages/2026-09/landing-pages/folders/{objectId}/revisions_getFolderPreviousVersions 4 params → 200default
GET
/cms/pages/2026-09/landing-pages/folders/{objectId}/revisions/{revisionId}
Retrieve a previous version of a folder
get-/cms/pages/2026-09/landing-pages/folders/{objectId}/revisions/{revisionId}_getFolderPreviousVersion 2 params → 200default
POST
/cms/pages/2026-09/landing-pages/folders/{objectId}/revisions/{revisionId}/restore
Restore a previous version of a folder
post-/cms/pages/2026-09/landing-pages/folders/{objectId}/revisions/{revisionId}/restore_restoreFolderPreviousVersion 2 params → 200default
Multi-language 9
POST
/cms/pages/2026-09/landing-pages/multi-language/attach-to-lang-group
Add a landing page to a multi-language group
post-/cms/pages/2026-09/landing-pages/multi-language/attach-to-lang-group_attachToLangGroup body → default
POST
/cms/pages/2026-09/landing-pages/multi-language/create-language-variation
Create a new language variation
post-/cms/pages/2026-09/landing-pages/multi-language/create-language-variation_createLangVariation body → 200default
POST
/cms/pages/2026-09/landing-pages/multi-language/detach-from-lang-group
Remove a landing page from a multi-language group
post-/cms/pages/2026-09/landing-pages/multi-language/detach-from-lang-group_detachFromLangGroup body → default
POST
/cms/pages/2026-09/landing-pages/multi-language/update-languages
Update languages of multi-language group
post-/cms/pages/2026-09/landing-pages/multi-language/update-languages_updateLangs body → default
POST
/cms/pages/2026-09/site-pages/multi-language/attach-to-lang-group
Add a website page to a multi-language group
post-/cms/pages/2026-09/site-pages/multi-language/attach-to-lang-group_attachToLangGroup body → default
POST
/cms/pages/2026-09/site-pages/multi-language/create-language-variation
Create a new language variation
post-/cms/pages/2026-09/site-pages/multi-language/create-language-variation_createLangVariation body → 200default
POST
/cms/pages/2026-09/site-pages/multi-language/detach-from-lang-group
Remove a website page from a multi-language group
post-/cms/pages/2026-09/site-pages/multi-language/detach-from-lang-group_detachFromLangGroup body → default
PUT
/cms/pages/2026-09/site-pages/multi-language/set-new-lang-primary
Set a new primary language
put-/cms/pages/2026-09/site-pages/multi-language/set-new-lang-primary_setLangPrimary body → 204default
POST
/cms/pages/2026-09/site-pages/multi-language/update-languages
Update languages of multi-language group
post-/cms/pages/2026-09/site-pages/multi-language/update-languages_updateLangs body → default
Website pages 11
PUT
/cms/pages/2026-09/landing-pages/multi-language/set-new-lang-primary
Set a new primary language
put-/cms/pages/2026-09/landing-pages/multi-language/set-new-lang-primary_setLangPrimary body → 204default
GET
/cms/pages/2026-09/site-pages
Retrieve all website pages
get-/cms/pages/2026-09/site-pages_getPage 11 params → 200default
POST
/cms/pages/2026-09/site-pages
Create a website page
post-/cms/pages/2026-09/site-pages_create body → 201default
POST
/cms/pages/2026-09/site-pages/clone
Clone a website page
post-/cms/pages/2026-09/site-pages/clone_clone body → 200default
POST
/cms/pages/2026-09/site-pages/schedule
Schedule a website page to be published
post-/cms/pages/2026-09/site-pages/schedule_schedule body → 204default
GET
/cms/pages/2026-09/site-pages/{objectId}
Retrieve a website page
get-/cms/pages/2026-09/site-pages/{objectId}_getById 3 params → 200default
DELETE
/cms/pages/2026-09/site-pages/{objectId}
Delete a website page
delete-/cms/pages/2026-09/site-pages/{objectId}_archive 2 params → 204default
PATCH
/cms/pages/2026-09/site-pages/{objectId}
Update a website page
patch-/cms/pages/2026-09/site-pages/{objectId}_update 2 params body → 200default
GET
/cms/pages/2026-09/site-pages/{objectId}/draft
Retrieve a website page draft
get-/cms/pages/2026-09/site-pages/{objectId}/draft_getDraftById 1 param → 200default
PATCH
/cms/pages/2026-09/site-pages/{objectId}/draft
Update a website page draft
patch-/cms/pages/2026-09/site-pages/{objectId}/draft_updateDraft 1 param body → 200default
POST
/cms/pages/2026-09/site-pages/{objectId}/draft/push-live
Publish website page draft
post-/cms/pages/2026-09/site-pages/{objectId}/draft/push-live_pushLive 1 param → 204default
Advanced 5
GET
/cms/pages/2026-09/landing-pages/{objectId}/revisions
Retrieve all previous versions of a landing page
get-/cms/pages/2026-09/landing-pages/{objectId}/revisions_getPreviousVersions 4 params → 200default
GET
/cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}
Retrieve a previous version of a landing page
get-/cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}_getPreviousVersion 2 params → 200default
POST
/cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}/restore
Restore a previous version of a landing page
post-/cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}/restore_restorePreviousVersion 2 params → 200default
POST
/cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}/restore-to-draft
Restore a previous version of a landing page
post-/cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}/restore-to-draft_restorePreviousVersionToDraft 2 params → 200default
POST
/cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}/restore
Restore a previous version of a website page
post-/cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}/restore_restorePreviousVersion 2 params → 200default
Basic 4
POST
/cms/pages/2026-09/site-pages/{objectId}/draft/reset
Reset the draft of a website page
post-/cms/pages/2026-09/site-pages/{objectId}/draft/reset_resetDraft 1 param → 204default
GET
/cms/pages/2026-09/site-pages/{objectId}/revisions
Retrieve all previous versions of a website page
get-/cms/pages/2026-09/site-pages/{objectId}/revisions_getPreviousVersions 4 params → 200default
GET
/cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}
Retrieve a previous version of a website page
get-/cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}_getPreviousVersion 2 params → 200default
POST
/cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}/restore-to-draft
Restore a previous draft of a website page
post-/cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}/restore-to-draft_restorePreviousVersionToDraft 2 params → 200default

Schemas 49

The contract defines 49 schemas that model the data the API accepts and returns. The most detailed are Page (57 properties), ContentLanguageVariation (15 properties), LayoutSection (13 properties), BatchResponseContentFolderWithErrors (8 properties). Each schema is shown below with its type and property counts.

AbTestCreateRequestVNext
object
2 properties 2 required
AbTestEndRequestVNext
object
2 properties 2 required
AbTestRerunRequestVNext
object
2 properties 2 required
Angle
object
2 properties 2 required
AttachToLangPrimaryRequestVNext
object
4 properties 3 required
BackgroundImage
object
3 properties 3 required
BatchInputContentFolder
object
1 property 1 required
BatchInputJsonNode
object
1 property 1 required
BatchInputPage
object
1 property 1 required
BatchInputString
object
1 property 1 required
BatchResponseContentFolder
object
6 properties 4 required
BatchResponseContentFolderWithErrors
object
8 properties 4 required
BatchResponsePage
object
6 properties 4 required
BatchResponsePageWithErrors
object
8 properties 4 required
BreakpointStyles
object
3 properties 3 required
CollectionResponseWithTotalContentFolderForwardPaging
object
3 properties 2 required
CollectionResponseWithTotalContentFolderVersion
object
3 properties 2 required
CollectionResponseWithTotalPageForwardPaging
object
3 properties 2 required
CollectionResponseWithTotalPageVersion
object
3 properties 2 required
ColorStop
object
1 property 1 required
ContentCloneRequestVNext
object
2 properties 1 required
ContentFolder
object
7 properties 7 required
ContentFolderVersion
object
4 properties 4 required
ContentLanguageCloneRequestVNext
object
4 properties 1 required
ContentLanguageVariation
object
15 properties 14 required
ContentScheduleRequestVNext
object
2 properties 2 required
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
Gradient
object
3 properties 3 required
LayoutSection
object
13 properties 13 required
Margin
object
2 properties 2 required
NextPage
object
Specifies the paging information needed to retrieve the next set of results in a paginated API response
2 properties 1 required
Padding
object
4 properties 4 required
Page
object
57 properties 57 required
PageVersion
object
4 properties 4 required
Paging
object
2 properties
PreviousPage
object
specifies the paging information needed to retrieve the previous set of results in a paginated API response
2 properties 1 required
PublicAccessRule
object
RGBAColor
object
4 properties 4 required
RowMetaData
object
2 properties 2 required
SetNewLanguagePrimaryRequestVNext
object
1 property 1 required
SideOrCorner
object
2 properties 2 required
Size
object
2 properties 2 required
StandardError
object
Ye olde error
8 properties 6 required
Styles
object
8 properties 7 required
UpdateLanguagesRequestVNext
object
2 properties 2 required
VersionUser
object
3 properties 3 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

hubspot-cms-pages-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 Pages 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.