Content Folders
Creator-owned folder organization for the web content library.
Folders do not change:
- the public sales link
- buyer access
- pricing
- moderation state
They do change how creators organize products in the web content library.
Folder resource
| Field | Type | Notes |
|---|---|---|
id | string | Folder id. |
name | string | Folder name. |
items_count | integer | Count of visible products with usable media currently in the folder. |
created_at | string or null | Timestamp. |
GET /api/content-folders
List all folders for the authenticated creator.
- Auth required: Yes
- Roles: Authenticated creator
Success response example
json
{
"success": true,
"errors_message": null,
"data": [
{
"id": "12",
"name": "Campaigns",
"items_count": 3,
"created_at": "2026-04-20T10:15:00.000000Z"
}
]
}Counting behavior
items_count only includes products that currently have usable media fields populated:
mediapreviewpreview_blurred
POST /api/content-folders
Create a folder.
- Auth required: Yes
- Roles: Authenticated creator
- Content type:
application/json
Request body
json
{
"name": "Campaigns"
}Success response
Returns the created folder resource.
PATCH /api/content-folders/
Rename a folder.
- Auth required: Yes
- Roles: Folder owner
Request body
json
{
"name": "Spring Campaign"
}DELETE /api/content-folders/
Delete a folder and unassign all products currently inside it.
- Auth required: Yes
- Roles: Folder owner
Side effects
- products are not deleted
- all matching products are updated with
folder_id=null - folder record is deleted
Success response
Backend returns the deleted folder resource wrapped in the standard success response.
Product assignment endpoint
Folder membership is updated through:
PATCH /api/products/{product}/folder
Assign:
json
{
"folder_id": 12
}Unassign:
json
{
"folder_id": null
}