VTEX Headless CMS
VTEX Headless CMSv0.31.2
The VTEX Headless CMS is a no-code management system for storefront content. That means you can store your content as structured data in a layer decoupled from the frontend and use the VTEX Headless CMS to access and deliver your content to your storefront project. Notice that the VTEX Headless CMS typically works with FastStore projects only. In this case, you can use this API to fetch data using SSR (NextJS and Gatsby v4+) or SSG (NextJS). Servers - https://{account}.myvtex.com/ - https://{workspace}--{account}.myvtex.com/ Server variables - accountName: Name of your VTEX account…
- Endpoints
- 3 (3 GET)
- Base URL
https://vtex.local- Authentication
- Not specified in spec
- Spec format
- OpenAPI 3.0.0
- API version
- 0.31.2
- Provider
- vtex.local
- Last updated
Use this API in Bruno:
- Download the Bruno collection above and unzip it.
- In Bruno, choose Open Collection and select the unzipped folder.
- Set the
baseUrlvariable (for examplehttps://vtex.local), then send requests.
GET
Get CMS page
{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/
QUERY PARAMS
builderId
content-type
document-id
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/")
require "http/client"
url = "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/_v/cms/api/:builderId/:content-type/:document-id/ HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/');
xhr.send(data);
import axios from 'axios';
const options = {
method: 'GET',
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/'
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/_v/cms/api/:builderId/:content-type/:document-id/',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {
method: 'GET',
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {
method: 'GET',
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/'
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/');
echo $response->getBody();
setUrl('{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/_v/cms/api/:builderId/:content-type/:document-id/")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/_v/cms/api/:builderId/:content-type/:document-id/') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/
http GET {{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/_v/cms/api/:builderId/:content-type/:document-id/")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"id": "ad2fd81d-a53c-4281-8d01-a4fc2f274db3",
"name": "Home",
"sections": [
{
"data": {
"actionLink": "link.url.com",
"dismissible": true,
"icon": "Bell",
"linkText": "alert link",
"text": "alert text"
},
"id": "1651804180614",
"name": "Alert"
},
{
"data": {
"imageAlt": "hero image",
"imageSrc": "https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/299f7d32-bb6a-40fd-82a0-4af5573ba572___17239443c00c1e894cff10ca05018058.jpg",
"link": "/office",
"linkText": "See all",
"subtitle": "At FastStore you can shop the best tech of 2022. Enjoy and get 10% off on your first purchase.",
"title": "New Products Available"
},
"id": "1647286556072",
"name": "Hero"
},
{
"data": {
"after": "0",
"first": 5,
"selectedFacets": [
{
"key": "productClusterIds",
"value": "140"
}
],
"sort": "score_desc",
"title": "Most Wanted!"
},
"id": "1649293076336",
"name": "ProductShelf"
},
{
"data": {
"after": "0",
"first": 3,
"selectedFacets": [
{
"key": "productClusterIds",
"value": "141"
}
],
"sort": "score_desc",
"title": "Just Arrived"
},
"id": "1649293548351",
"name": "ProductTiles"
},
{
"data": {
"actionLabel": "See all",
"actionPath": "/office",
"caption": "Enjoy and get 10% off on your first purchase!!",
"title": "Receive our news and promotions in advance."
},
"id": "1647286735093",
"name": "BannerText"
},
{
"data": {
"after": "0",
"first": 5,
"selectedFacets": [
{
"key": "productClusterIds",
"value": "142"
}
],
"sort": "score_desc",
"title": "Deals & Promotions"
},
"id": "1649293131632",
"name": "ProductShelf"
}
],
"status": "published",
"type": "home",
"versionId": "e3867e2c-7082-4fe6-83ed-c473242b6970",
"versionStatus": "publishing"
}
GET
Get all CMS pages by Content Type
{{baseUrl}}/_v/cms/api/:builderId/:content-type
QUERY PARAMS
builderId
content-type
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/_v/cms/api/:builderId/:content-type");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/_v/cms/api/:builderId/:content-type")
require "http/client"
url = "{{baseUrl}}/_v/cms/api/:builderId/:content-type"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/_v/cms/api/:builderId/:content-type"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/_v/cms/api/:builderId/:content-type");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/_v/cms/api/:builderId/:content-type"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/_v/cms/api/:builderId/:content-type HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/_v/cms/api/:builderId/:content-type")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/_v/cms/api/:builderId/:content-type"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/_v/cms/api/:builderId/:content-type")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/_v/cms/api/:builderId/:content-type")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/_v/cms/api/:builderId/:content-type');
xhr.send(data);
import axios from 'axios';
const options = {
method: 'GET',
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type'
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/_v/cms/api/:builderId/:content-type';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/_v/cms/api/:builderId/:content-type")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/_v/cms/api/:builderId/:content-type',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {
method: 'GET',
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type'
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/_v/cms/api/:builderId/:content-type');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {
method: 'GET',
url: '{{baseUrl}}/_v/cms/api/:builderId/:content-type'
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/_v/cms/api/:builderId/:content-type';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/_v/cms/api/:builderId/:content-type"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/_v/cms/api/:builderId/:content-type" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/_v/cms/api/:builderId/:content-type",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/_v/cms/api/:builderId/:content-type');
echo $response->getBody();
setUrl('{{baseUrl}}/_v/cms/api/:builderId/:content-type');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/_v/cms/api/:builderId/:content-type');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/_v/cms/api/:builderId/:content-type' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/_v/cms/api/:builderId/:content-type' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/_v/cms/api/:builderId/:content-type")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/_v/cms/api/:builderId/:content-type"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/_v/cms/api/:builderId/:content-type"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/_v/cms/api/:builderId/:content-type")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/_v/cms/api/:builderId/:content-type') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/_v/cms/api/:builderId/:content-type";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/_v/cms/api/:builderId/:content-type
http GET {{baseUrl}}/_v/cms/api/:builderId/:content-type
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/_v/cms/api/:builderId/:content-type
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/_v/cms/api/:builderId/:content-type")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"data": [
{
"id": "d05d3db8-62b2-4f0b-9b70-d6d25ff29b6e",
"name": "Electronics",
"parameters": {
"collection": {
"brandId": "123",
"sort": "\"\""
}
},
"sections": [
{
"data": {
"content": "{\"blocks\":[{\"key\":\"dtg7g\",\"text\":\"-\",\"type\":\"unstyled\",\"depth\":0,\"inlineStyleRanges\":[],\"entityRanges\":[],\"data\":{}}],\"entityMap\":{}}"
},
"id": "1632244409269",
"name": "RichText"
},
{
"data": {
"content": "{\"blocks\":[{\"key\":\"2qtft\",\"text\":\",\",\"type\":\"unstyled\",\"depth\":0,\"inlineStyleRanges\":[],\"entityRanges\":[],\"data\":{}}],\"entityMap\":{}}"
},
"id": "1632244445091",
"name": "RichText"
}
],
"status": "published",
"type": "plp",
"versionId": "ed51d1cd-e020-4f16-b48b-ca83e720472d",
"versionStatus": "published"
},
{
"id": "4ab6388d-79e6-492f-adda-3e251b85eeb6",
"name": "Beauty",
"parameters": {
"collection": {
"clusterId": "1182",
"seo": {
"description": "beauty products",
"slug": "/beauty",
"title": "Page title"
},
"sort": "\"\""
}
},
"sections": [
{
"data": {
"alt": "beauty",
"description": "beauty products",
"desktop": {
"srcSet": "https://storecomponents.vtexassets.com/assets/vtex.file-manager-graphql/images/dda7c17e-5182-4439-b5af-94f651e2d835___1ef09be73ec9e80c719da13432666441.jpeg"
},
"mobile": {
"srcSet": "https://storecomponents.vtexassets.com/assets/vtex.file-manager-graphql/images/ed8ef334-c1e5-4269-8728-34dbffeda424___1ef09be73ec9e80c719da13432666441.jpeg"
},
"title": "beauty"
},
"id": "1643319987751",
"name": "SearchBanner"
}
],
"status": "published",
"type": "plp",
"versionId": "95f940d4-584e-4b3d-9872-8c713ba42583",
"versionStatus": "published"
}
],
"hasNextPage": false,
"totalItems": 2
}
GET
Get all Content Types
{{baseUrl}}/_v/cms/api/:builderId/
QUERY PARAMS
builderId
Examples
REQUEST
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "{{baseUrl}}/_v/cms/api/:builderId/");
CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])
(client/get "{{baseUrl}}/_v/cms/api/:builderId/")
require "http/client"
url = "{{baseUrl}}/_v/cms/api/:builderId/"
response = HTTP::Client.get url
puts response.body
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("{{baseUrl}}/_v/cms/api/:builderId/"),
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
var client = new RestClient("{{baseUrl}}/_v/cms/api/:builderId/");
var request = new RestRequest("", Method.Get);
var response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "{{baseUrl}}/_v/cms/api/:builderId/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
GET /baseUrl/_v/cms/api/:builderId/ HTTP/1.1
Host: example.com
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("GET", "{{baseUrl}}/_v/cms/api/:builderId/")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/_v/cms/api/:builderId/"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("{{baseUrl}}/_v/cms/api/:builderId/")
.get()
.build();
Response response = client.newCall(request).execute();
HttpResponse response = Unirest.get("{{baseUrl}}/_v/cms/api/:builderId/")
.asString();
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', '{{baseUrl}}/_v/cms/api/:builderId/');
xhr.send(data);
import axios from 'axios';
const options = {method: 'GET', url: '{{baseUrl}}/_v/cms/api/:builderId/'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const url = '{{baseUrl}}/_v/cms/api/:builderId/';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
const settings = {
async: true,
crossDomain: true,
url: '{{baseUrl}}/_v/cms/api/:builderId/',
method: 'GET',
headers: {}
};
$.ajax(settings).done(function (response) {
console.log(response);
});
val client = OkHttpClient()
val request = Request.Builder()
.url("{{baseUrl}}/_v/cms/api/:builderId/")
.get()
.build()
val response = client.newCall(request).execute()
const http = require('https');
const options = {
method: 'GET',
hostname: 'example.com',
port: null,
path: '/baseUrl/_v/cms/api/:builderId/',
headers: {}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
const request = require('request');
const options = {method: 'GET', url: '{{baseUrl}}/_v/cms/api/:builderId/'};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
const unirest = require('unirest');
const req = unirest('GET', '{{baseUrl}}/_v/cms/api/:builderId/');
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
const axios = require('axios').default;
const options = {method: 'GET', url: '{{baseUrl}}/_v/cms/api/:builderId/'};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
const fetch = require('node-fetch');
const url = '{{baseUrl}}/_v/cms/api/:builderId/';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
#import
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"{{baseUrl}}/_v/cms/api/:builderId/"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "{{baseUrl}}/_v/cms/api/:builderId/" in
Client.call `GET uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)
"{{baseUrl}}/_v/cms/api/:builderId/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
request('GET', '{{baseUrl}}/_v/cms/api/:builderId/');
echo $response->getBody();
setUrl('{{baseUrl}}/_v/cms/api/:builderId/');
$request->setMethod(HTTP_METH_GET);
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
setRequestUrl('{{baseUrl}}/_v/cms/api/:builderId/');
$request->setRequestMethod('GET');
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$response = Invoke-WebRequest -Uri '{{baseUrl}}/_v/cms/api/:builderId/' -Method GET
$response = Invoke-RestMethod -Uri '{{baseUrl}}/_v/cms/api/:builderId/' -Method GET
import http.client
conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/baseUrl/_v/cms/api/:builderId/")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
import requests
url = "{{baseUrl}}/_v/cms/api/:builderId/"
response = requests.get(url)
print(response.json())
library(httr)
url <- "{{baseUrl}}/_v/cms/api/:builderId/"
response <- VERB("GET", url, content_type("application/octet-stream"))
content(response, "text")
require 'uri'
require 'net/http'
url = URI("{{baseUrl}}/_v/cms/api/:builderId/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
require 'faraday'
conn = Faraday.new(
url: 'https://example.com',
)
response = conn.get('/baseUrl/_v/cms/api/:builderId/') do |req|
end
puts response.status
puts response.body
use reqwest;
#[tokio::main]
pub async fn main() {
let url = "{{baseUrl}}/_v/cms/api/:builderId/";
let client = reqwest::Client::new();
let response = client.get(url)
.send()
.await;
let results = response.unwrap()
.json::()
.await
.unwrap();
dbg!(results);
}
curl --request GET \
--url {{baseUrl}}/_v/cms/api/:builderId/
http GET {{baseUrl}}/_v/cms/api/:builderId/
wget --quiet \
--method GET \
--output-document \
- {{baseUrl}}/_v/cms/api/:builderId/
import Foundation
let request = NSMutableURLRequest(url: NSURL(string: "{{baseUrl}}/_v/cms/api/:builderId/")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
RESPONSE HEADERS
Content-Type
application/json
RESPONSE BODY json
{
"contentTypes": [
{
"configurationSchemaSets": [],
"id": "home",
"name": "Home Page"
},
{
"configurationSchemaSets": [
{
"configurations": [
{
"name": "Collection",
"schema": {
"description": "Definition of a Collection for the CMS",
"oneOf": [
{
"description": "Configure a Category",
"properties": {
"categoryId": {
"title": "Category ID",
"type": "string"
},
"sort": {
"default": "\"\"",
"enum": [
"\"\"",
"discount:desc",
"release:desc",
"name:asc",
"name:desc",
"orders:desc",
"price:asc",
"price:desc"
],
"enumNames": [
"Relevance",
"Discount",
"Release date",
"Name, ascending",
"Name, descending",
"Sales",
"Price: Low to High",
"Price: High to Low"
],
"title": "Default ordering",
"type": "string"
}
},
"required": [
"categoryId",
"sort"
],
"title": "Category",
"type": "object"
},
{
"description": "Configure a Brand",
"properties": {
"brandId": {
"title": "Brand ID",
"type": "string"
},
"sort": {
"default": "\"\"",
"enum": [
"\"\"",
"discount:desc",
"release:desc",
"name:asc",
"name:desc",
"orders:desc",
"price:asc",
"price:desc"
],
"enumNames": [
"Relevance",
"Discount",
"Release date",
"Name, ascending",
"Name, descending",
"Sales",
"Price: Low to High",
"Price: High to Low"
],
"title": "Default ordering",
"type": "string"
}
},
"required": [
"brandId",
"sort"
],
"title": "Brand",
"type": "object"
},
{
"description": "Configure a Collection",
"properties": {
"clusterId": {
"title": "Collection ID",
"type": "string"
},
"seo": {
"properties": {
"description": {
"default": "Page description",
"description": "Suggested for search engines",
"title": "Description (Meta description)",
"type": "string"
},
"slug": {
"default": "/path/to/page",
"description": "Final part of the page's address. No spaces allowed.",
"pattern": "^/([a-zA-Z0-9]|-|/|_)*",
"title": "URL slug",
"type": "string"
},
"title": {
"default": "Page title",
"description": "Appears in the browser tab and is suggested for search engines",
"title": "Title",
"type": "string"
}
},
"required": [
"title",
"description",
"slug"
],
"title": "Seo",
"type": "object",
"widget": {
"ui:ObjectFieldTemplate": "GoogleSeoPreview"
}
},
"sort": {
"default": "\"\"",
"enum": [
"\"\"",
"discount:desc",
"release:desc",
"name:asc",
"name:desc",
"orders:desc",
"price:asc",
"price:desc"
],
"enumNames": [
"Relevance",
"Discount",
"Release date",
"Name, ascending",
"Name, descending",
"Sales",
"Price: Low to High",
"Price: High to Low"
],
"title": "Default ordering",
"type": "string"
}
},
"required": [
"clusterId",
"sort",
"seo"
],
"title": "Collection",
"type": "object"
}
],
"title": "Collection"
}
}
],
"name": "Parameters"
}
],
"id": "plp",
"name": "PLP"
},
{
"configurationSchemaSets": [
{
"configurations": [
{
"name": "siteMetadataWithSlug",
"schema": {
"description": "Configure global site metadata",
"properties": {
"description": {
"default": "A beautifuly designed site for general VTEX stores",
"title": "Meta tag description",
"type": "string"
},
"slug": {
"default": "/landing-page-url",
"title": "URL Slug",
"type": "string"
},
"title": {
"default": "Store Theme | VTEX FastStore",
"description": "Display this title when no other tile is available",
"title": "Default page title",
"type": "string"
},
"titleTemplate": {
"default": "%s | Store Theme",
"title": "Title template to be used in category/product pages",
"type": "string"
}
},
"title": "Site Metadata",
"type": "object",
"widget": {
"ui:ObjectFieldTemplate": "GoogleSeoPreview"
}
}
}
],
"name": "SEO"
}
],
"id": "institutionalPage",
"name": "Institutional page"
}
]
}