API Reference

Descriptions

Product and category descriptions: the content and the URL of a product or category in one language.

Descriptions in Postman

About descriptions

A description is a product’s, or a category’s, name, text, slug and layout areas in one language. It keeps its content in revisions, like a page, and is published on its own: a product with an unpublished description has no page. Descriptions are created with their product or category, and changed here.

Show a product description by its URL#

GET /cdna-api/products/product-description/{path}

Finds a description by its path, as the site does: a custom URL first, then the slug.

Access
Admin users and integrations, with an OAuth access token or an API key.
Model
ProductDescription, in the Reference

Parameters

pathpathrequired
string
The custom URL without its leading slash, or the slug.
propertiesquery
selector
The fields and relations to return, such as {id,name,slug,fullPath,published,product{id,code}}.

Example

Show a product description by its URL
GET /cdna-api/products/product-description/api-sandbox-mug?properties={id,name,slug,fullPath,published,product{id,code}} HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
Response 200 OK
{
  "result": "success",
  "data": {
    "id": 1,
    "name": "API sandbox mug",
    "slug": "api-sandbox-mug",
    "fullPath": "/products/api-sandbox/api-sandbox-mug",
    "published": "2026-10-18T01:26:41+00:00",
    "product": {
      "id": 1,
      "code": "API-SANDBOX-MUG"
    }
  }
}
Open in Postman docs Real response from this documentation site

Edit a product description#

PUT /cdna-api/products/product-description/{id}

Changes a product description. Fields left out keep their values.

Access
Admin users and integrations, with an OAuth access token or an API key.
Returns
The saved description under data.productDescription, and a message.

Parameters

idpathrequired
integer
The description id.
name, slugbody
string
The name and the path segment.
publishedbody
datetime
true publishes now, a future datetime schedules, null unpublishes. Needs the publish permission.
revisions, patchRevisionbody
object
Its layout areas, as on a page: see Collection operations.

A revisions object makes a new revision that is not live unless the request also sends "activeRevision": true, and it holds only the areas sent. To change some areas and keep the rest, use patchRevision with originRevision.

Example

Edit a product description
PUT /cdna-api/products/product-description/9 HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json

{
  "name": "API sandbox mug, stoneware"
}

Check that a product slug is free#

POST /cdna-api/products/product-descriptions/check-slug

Answers {"result":"success"} when no product description uses the slug. A slug in use answers HTTP 200 too, with "result": "error" and a message.

Access
Admin users and integrations, with an OAuth access token or an API key.

Parameters

slugbodyrequired
string
The slug to check.
idbody
integer
A description to leave out of the check, when renaming it.
parentbody
integer
The parent to check under, when slugs are unique per parent.
sitebody
integer
The site to check in.

Example

Check that a product slug is free
POST /cdna-api/products/product-descriptions/check-slug HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json

{
  "slug": "api-sandbox-teapot"
}
Response
{
  "result": "success"
}
{
  "result": "error",
  "message": "A record with this slug already exists"
}
Real response from this documentation site

Edit a category description#

PUT /cdna-api/products/category-description/{id}

Changes a category description. Fields left out keep their values.

Access
Admin users and integrations, with an OAuth access token or an API key.
Returns
The saved description under data.categoryDescription, and a message.

Parameters

idpathrequired
integer
The description id.
name, slugbody
string
The name and the path segment.
revisions, patchRevisionbody
object
Its layout areas, as on a page.

A revisions object makes a new revision that is not live unless the request also sends "activeRevision": true, and it holds only the areas sent. To change some areas and keep the rest, use patchRevision with originRevision.

Example

Edit a category description
PUT /cdna-api/products/category-description/9 HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json

{
  "name": "API sandbox mugs"
}

Check that a category slug is free#

POST /cdna-api/products/category-descriptions/check-slug

As for a product slug: {"result":"success"} when it is free, and HTTP 200 with "result": "error" when it is not.

Access
Admin users and integrations, with an OAuth access token or an API key.

Parameters

slugbodyrequired
string
The slug to check.
idbody
integer
A description to leave out of the check, when renaming it.
parentbody
integer
The parent to check under, when slugs are unique per parent.
sitebody
integer
The site to check in.

Example

Check that a category slug is free
POST /cdna-api/products/category-descriptions/check-slug HTTP/1.1
Host: hub.coredna.com
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json

{
  "slug": "api-sandbox"
}