API Reference

Content

List, retrieve, update, and delete content items in your library.

List Content

GET/api/v1/content

Retrieve a paginated list of content items for your brand.

Query parameters

ParameterTypeDescription
statusstringFilter by status: draft, scheduled, published, failed
typestringFilter by type: shortform, carousel, longform
searchstringSearch by title (case-insensitive)
limitnumberItems per page (default 50, max 100)
offsetnumberNumber 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/:id

Retrieve 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/:id

Update metadata or status of a content item. Only include the fields you want to change.

Request body

ParameterTypeDescription
titlestringContent title
descriptionstringContent description
hashtagsstring[]Array of hashtag strings
statusstringdraft, scheduled, published, or failed
platformSettingsobjectPer-platform metadata (e.g. YouTube visibility, TikTok duet settings)
thumbnailKeystringR2 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/:id

Permanently 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.