API Reference
Content
List, retrieve, update, and delete content items in your library.
List Content
GET
/api/v1/contentRetrieve a paginated list of content items for your brand.
Query parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status: draft, scheduled, published, failed |
type | string | Filter by type: shortform, carousel, longform |
search | string | Search by title (case-insensitive) |
limit | number | Items per page (default 50, max 100) |
offset | number | Number of items to skip (default 0) |
Response
{
"items": [
{
"id": "uuid",
"type": "shortform",
"title": "Morning routine",
"status": "draft",
"thumbnailUrl": "https://...",
"createdAt": "2026-04-18T12:00:00Z",
...
}
],
"limit": 50,
"offset": 0,
"hasMore": true
}Example
List published shortform content
curl "https://stashkit.net/api/v1/content?status=published&type=shortform&limit=10" \
-H "Authorization: Bearer sk_your_api_key"Get Content
GET
/api/v1/content/:idRetrieve a single content item by ID. Carousel items include a files array.
Response
{
"item": {
"id": "uuid",
"type": "carousel",
"title": "Summer collection",
"description": "Behind the scenes of our latest shoot",
"hashtags": ["summer", "fashion"],
"status": "draft",
"fileUrl": "https://...",
"thumbnailUrl": "https://...",
"platformSettings": {},
"createdAt": "2026-04-18T12:00:00Z",
"updatedAt": "2026-04-18T14:30:00Z"
},
"files": [
{ "id": "uuid", "fileKey": "...", "sortOrder": 0 },
{ "id": "uuid", "fileKey": "...", "sortOrder": 1 }
]
}Example
cURL
curl https://stashkit.net/api/v1/content/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer sk_your_api_key"Update Content
PATCH
/api/v1/content/:idUpdate metadata or status of a content item. Only include the fields you want to change.
Request body
| Parameter | Type | Description |
|---|---|---|
title | string | Content title |
description | string | Content description |
hashtags | string[] | Array of hashtag strings |
status | string | draft, scheduled, published, or failed |
platformSettings | object | Per-platform metadata (e.g. YouTube visibility, TikTok duet settings) |
thumbnailKey | string | R2 storage key for a thumbnail image. The server resolves thumbnailUrl automatically. |
Response
Returns the full updated content item.
{
"item": {
"id": "uuid",
"title": "Updated title",
"hashtags": ["creator", "content"],
"status": "draft",
...
}
}Examples
Update title and description
curl -X PATCH https://stashkit.net/api/v1/content/uuid \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Morning routine — final cut",
"description": "Quick morning routine for busy creators"
}'Change status to draft
curl -X PATCH https://stashkit.net/api/v1/content/uuid \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"status": "draft"}'Set platform-specific settings
curl -X PATCH https://stashkit.net/api/v1/content/uuid \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"platformSettings": {
"youtube": { "visibility": "public", "category": "22" },
"tiktok": { "duet": false }
}
}'Status transitions
The API currently allows setting any valid status. Status values are:
draft, scheduled, published, failed.Delete Content
DELETE
/api/v1/content/:idPermanently delete a content item and all associated files from storage.
Response
{ "deleted": true }Example
cURL
curl -X DELETE https://stashkit.net/api/v1/content/uuid \
-H "Authorization: Bearer sk_your_api_key"Irreversible
Deletion is permanent. The content item, all carousel files, and thumbnails are removed from both the database and storage. This cannot be undone.