Contents
Collections
Entries of a collection (blog, news, case studies…), paginated.
Base URL, authentication and conventions of this API are on the Content Delivery API page.
/collections/{collection}/entriesList published entries of a collection
Entries that have a published translation in the locale, newest first (by publish date,
then id). Standard pagination: data plus current_page, last_page, per_page,
total, links and the page URLs. Unknown collection → 404.
Path parameters
collectionstringrequiredCollection slug.
Example:blog
Query parameters
localestringLocale code enabled on the site. Default the site's default locale.
Example:enpageintegermin 1default 1Example:1per_pageintegerClamped to 1–50.
min 1max 50default 12Example:12
Responses
200A page of entries.application/json
current_pageintegerdataarray of Entry & objectAttributes of each item
idintegertitlestringslugstringfieldsobject | nullCollection-defined fields.
seoobject | nullpublished_atstring (date-time) | nullsortinteger
first_page_urlstring (uri)frominteger | nulllast_pageintegerlast_page_urlstring (uri)linksarray of objectnext_page_urlstring (uri) | nullpathstring (uri)per_pageintegerprev_page_urlstring (uri) | nulltointeger | nulltotalinteger
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/collections/blog/entries?locale=en&page=1&per_page=12' \
-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/collections/blog/entries?locale=en&page=1&per_page=12", {
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/collections/blog/entries?locale=en&page=1&per_page=12', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('NUCLEO_CMS_TOKEN'),
'Accept' => 'application/json',
],
'http_errors' => false,
]);
echo $response->getStatusCode(), PHP_EOL;
echo $response->getBody();{
"current_page": 1,
"data": [
{
"id": 501,
"sort": 0,
"title": "Autumn drop is live",
"slug": "autumn-drop",
"fields": {
"excerpt": "Ten new tees in organic cotton.",
"cover_media_id": 340
},
"seo": {
"title": "Autumn drop · Acme Apparel"
},
"published_at": "2026-09-28T08:00:00.000000Z"
}
],
"first_page_url": "https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/collections/blog/entries?page=1",
"from": 1,
"last_page": 4,
"last_page_url": "https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/collections/blog/entries?page=4",
"links": [],
"next_page_url": "https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/collections/blog/entries?page=2",
"path": "https://api-brain.nucleoplatform.com/api/delivery/v1/acme/sites/12/collections/blog/entries",
"per_page": 12,
"prev_page_url": null,
"to": 12,
"total": 41
}{
"message": "Delivery token required (Authorization: Bearer)."
}{
"message": "Invalid delivery token."
}{
"message": "Not found."
}{
"message": "Too Many Attempts."
}/collections/{collection}/entries/{entry}Get a published entry by slug
One entry by its translated slug in the locale; 404 if it does not exist or is not published in that locale.
Path parameters
collectionstringrequiredCollection slug.
Example:blogentrystringrequiredEntry slug in the requested locale.
Example:autumn-drop
Query parameters
localestringLocale code enabled on the site. Default the site's default locale.
Example:en
Responses
200The entry.application/json
dataEntryChild attributes
idintegertitlestringslugstringfieldsobject | nullCollection-defined fields.
seoobject | nullpublished_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/collections/blog/entries/autumn-drop?locale=en' \
-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/collections/blog/entries/autumn-drop?locale=en", {
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/collections/blog/entries/autumn-drop?locale=en', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('NUCLEO_CMS_TOKEN'),
'Accept' => 'application/json',
],
'http_errors' => false,
]);
echo $response->getStatusCode(), PHP_EOL;
echo $response->getBody();{
"data": {
"id": 501,
"title": "Autumn drop is live",
"slug": "autumn-drop",
"fields": {
"excerpt": "Ten new tees in organic cotton.",
"body": "<p>Available from today in Milano and online.</p>",
"cover_media_id": 340
},
"seo": {
"title": "Autumn drop · Acme Apparel",
"description": "Ten new tees in organic cotton."
},
"published_at": "2026-09-28T08:00:00.000000Z"
}
}{
"message": "Delivery token required (Authorization: Bearer)."
}{
"message": "Invalid delivery token."
}{
"message": "Not found."
}{
"message": "Too Many Attempts."
}