VTEX · Capability
VTEX Headless CMS — Pages
VTEX Headless CMS — Pages. 3 operations. Lead operation: VTex Get all content types. Self-contained Naftiko capability covering one Vtex business surface.
What You Can Do
GET
Getallcontenttypes
— VTex Get all content types
/v1/v/cms/api/{projectid}
GET
Getpagesbycontenttype
— VTex Get all CMS pages by content type
/v1/v/cms/api/{projectid}/{content-type}
GET
Getcmspage
— VTex Get CMS page
/v1/v/cms/api/{projectid}/{content-type}/{document-id}
MCP Tools
vtex-get-all-content-types
VTex Get all content types
read-only
idempotent
vtex-get-all-cms-pages
VTex Get all CMS pages by content type
read-only
idempotent
vtex-get-cms-page
VTex Get CMS page
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: VTEX Headless CMS — Pages
description: 'VTEX Headless CMS — Pages. 3 operations. Lead operation: VTex Get all content types. Self-contained Naftiko
capability covering one Vtex business surface.'
tags:
- Vtex
- Pages
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
VTEX_API_KEY: VTEX_API_KEY
capability:
consumes:
- type: http
namespace: headless-cms-pages
baseUri: https://{accountName}.myvtex.com
description: VTEX Headless CMS — Pages business capability. Self-contained, no shared references.
resources:
- name: _v-cms-api-projectId
path: /_v/cms/api/{projectId}
operations:
- name: getallcontenttypes
method: GET
description: VTex Get all content types
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: projectId
in: path
type: string
description: Project ID specified in the settings of the CMS (alpha) app.
required: true
- name: _v-cms-api-projectId-content-type
path: /_v/cms/api/{projectId}/{content-type}
operations:
- name: getpagesbycontenttype
method: GET
description: VTex Get all CMS pages by content type
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: projectId
in: path
type: string
description: Project ID specified in the settings of the CMS (alpha) app.
required: true
- name: content-type
in: path
type: string
description: Content type identifier defined in the FastStore project.
required: true
- name: versionId
in: query
type: string
description: Version ID presented in the URL path of a CMS preview.
- name: releaseId
in: query
type: string
description: Release ID presented in the URL path of a CMS preview.
- name: filters[{field}]
in: query
type: string
description: Filter results by a property of the page (e.g., `filters[status]`) or by a nested custom field of the
`parameters` object (e.g., `filters[parameters.collection.
- name: _v-cms-api-projectId-content-type-document-id
path: /_v/cms/api/{projectId}/{content-type}/{document-id}
operations:
- name: getcmspage
method: GET
description: VTex Get CMS page
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: projectId
in: path
type: string
description: Project ID specified in the settings of the CMS (alpha) app.
required: true
- name: content-type
in: path
type: string
description: Content type ID defined in the FastStore project.
required: true
- name: document-id
in: path
type: string
description: Document ID presented in the URL path of a CMS preview.
required: true
- name: versionId
in: query
type: string
description: Version ID presented in the URL path of a CMS preview.
- name: releaseId
in: query
type: string
description: Release ID presented in the URL path of a CMS preview.
exposes:
- type: rest
namespace: headless-cms-pages-rest
port: 8080
description: REST adapter for VTEX Headless CMS — Pages. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/v/cms/api/{projectid}
name: v-cms-api-projectid
description: REST surface for _v-cms-api-projectId.
operations:
- method: GET
name: getallcontenttypes
description: VTex Get all content types
call: headless-cms-pages.getallcontenttypes
with:
projectId: rest.projectId
outputParameters:
- type: object
mapping: $.
- path: /v1/v/cms/api/{projectid}/{content-type}
name: v-cms-api-projectid-content-type
description: REST surface for _v-cms-api-projectId-content-type.
operations:
- method: GET
name: getpagesbycontenttype
description: VTex Get all CMS pages by content type
call: headless-cms-pages.getpagesbycontenttype
with:
projectId: rest.projectId
content-type: rest.content-type
versionId: rest.versionId
releaseId: rest.releaseId
filters[{field}]: rest.filters[{field}]
outputParameters:
- type: object
mapping: $.
- path: /v1/v/cms/api/{projectid}/{content-type}/{document-id}
name: v-cms-api-projectid-content-type-document-id
description: REST surface for _v-cms-api-projectId-content-type-document-id.
operations:
- method: GET
name: getcmspage
description: VTex Get CMS page
call: headless-cms-pages.getcmspage
with:
projectId: rest.projectId
content-type: rest.content-type
document-id: rest.document-id
versionId: rest.versionId
releaseId: rest.releaseId
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: headless-cms-pages-mcp
port: 9090
transport: http
description: MCP adapter for VTEX Headless CMS — Pages. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: vtex-get-all-content-types
description: VTex Get all content types
hints:
readOnly: true
destructive: false
idempotent: true
call: headless-cms-pages.getallcontenttypes
with:
projectId: tools.projectId
outputParameters:
- type: object
mapping: $.
- name: vtex-get-all-cms-pages
description: VTex Get all CMS pages by content type
hints:
readOnly: true
destructive: false
idempotent: true
call: headless-cms-pages.getpagesbycontenttype
with:
projectId: tools.projectId
content-type: tools.content-type
versionId: tools.versionId
releaseId: tools.releaseId
filters[{field}]: tools.filters[{field}]
outputParameters:
- type: object
mapping: $.
- name: vtex-get-cms-page
description: VTex Get CMS page
hints:
readOnly: true
destructive: false
idempotent: true
call: headless-cms-pages.getcmspage
with:
projectId: tools.projectId
content-type: tools.content-type
document-id: tools.document-id
versionId: tools.versionId
releaseId: tools.releaseId
outputParameters:
- type: object
mapping: $.