/
Contents
Navigation
Menus, redirects and sitemap — everything a frontend needs to build routes.
Base URL, authentication and conventions of this API are on the Content Delivery API page.
get
/redirectsList the site's redirects
Redirect rules to apply in your frontend or edge (code is the HTTP status, e.g. 301 or 302).
GET https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/redirects
Authentication: Bearer token
Rate limit: 120 requests per 1m, per IP
Responses
200Redirects.application/json
dataarray of RedirectAttributes of each item
from_pathstringto_pathstringcodeintegerOne of301302307308localestring | null
401Missing or unknown delivery token.application/json
messagestring
404Not found. Also returned when the workspace slug is unknown or when the token belongs to another site (Nucleo never confirms that a site exists to a token that cannot read it). The text of
messagevaries with the case: branch on the404status only. application/jsonmessagestring
429More than 120 requests in a minute from the same IP.application/json
HeadersRetry-AfterX-RateLimit-LimitX-RateLimit-Remaining
messagestring
curl -X GET https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/redirects \
-H "Authorization: Bearer $NUCLEO_CMS_TOKEN" \
-H 'Accept: application/json'const res = await fetch("https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/redirects", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.NUCLEO_CMS_TOKEN}`,
Accept: "application/json",
},
});
const data = await res.json();
console.log(res.status, data);<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/redirects', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('NUCLEO_CMS_TOKEN'),
'Accept' => 'application/json',
],
'http_errors' => false,
]);
echo $response->getStatusCode(), PHP_EOL;
echo $response->getBody();{
"data": [
{
"from_path": "/chi-siamo",
"to_path": "/it/about",
"code": 301,
"locale": "it"
},
{
"from_path": "/summer-sale",
"to_path": "/shop",
"code": 302,
"locale": null
}
]
}{
"message": "Delivery token required (Authorization: Bearer)."
}{
"message": "Invalid delivery token."
}{
"message": "Not found."
}{
"message": "Too Many Attempts."
}get
/sitemapList every published path
Every published path for every enabled locale: pages (only when the page and all its ancestors
are translated in that locale, so the path is resolvable by /page?path=) and collection
entries (/<collection>/<entry-slug>). Use it to generate sitemap.xml and static routes.
GET https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/sitemap
Authentication: Bearer token
Rate limit: 120 requests per 1m, per IP
Responses
200Published paths.application/json
dataarray of SitemapItemAttributes of each item
localestringrequiredkindstringrequiredOne ofpageentrycollectionstringOnly for
kind = entry.pathstringrequiredupdated_atstring (date-time) | null
401Missing or unknown delivery token.application/json
messagestring
404Not found. Also returned when the workspace slug is unknown or when the token belongs to another site (Nucleo never confirms that a site exists to a token that cannot read it). The text of
messagevaries with the case: branch on the404status only. application/jsonmessagestring
429More than 120 requests in a minute from the same IP.application/json
HeadersRetry-AfterX-RateLimit-LimitX-RateLimit-Remaining
messagestring
curl -X GET https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/sitemap \
-H "Authorization: Bearer $NUCLEO_CMS_TOKEN" \
-H 'Accept: application/json'const res = await fetch("https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/sitemap", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.NUCLEO_CMS_TOKEN}`,
Accept: "application/json",
},
});
const data = await res.json();
console.log(res.status, data);<?php
require 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/sitemap', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('NUCLEO_CMS_TOKEN'),
'Accept' => 'application/json',
],
'http_errors' => false,
]);
echo $response->getStatusCode(), PHP_EOL;
echo $response->getBody();{
"data": [
{
"locale": "en",
"kind": "page",
"path": "/",
"updated_at": "2026-09-30T10:15:00.000000Z"
},
{
"locale": "en",
"kind": "page",
"path": "/about/team",
"updated_at": "2026-09-30T10:15:00.000000Z"
},
{
"locale": "en",
"kind": "entry",
"collection": "blog",
"path": "/blog/autumn-drop",
"updated_at": "2026-09-28T08:00:00.000000Z"
}
]
}{
"message": "Delivery token required (Authorization: Bearer)."
}{
"message": "Invalid delivery token."
}{
"message": "Not found."
}{
"message": "Too Many Attempts."
}Was this page helpful?