Skip to content

Base URL: /api/assets

Assets ​

List Assets ​

GET /

  • Query Params:
    • limit: Number of items (default 50)
    • offset: Pagination offset
    • folderId: Filter by folder
    • type: Filter by asset type (IMAGE, VIDEO, etc.)
    • tags: Filter by tags (comma-separated)
    • search: Search term
  • Response: { assets: Asset[], total: number }

Get Asset Details ​

GET /:id

  • Response: Asset object

Upload Asset (Direct) ​

POST /direct

  • Body: Multipart form data (file)
  • Response: { asset: Asset, cdnUrl: string }

Import from URL ​

POST /import

  • Body: { url: string, folderId?: string }
  • Response: Asset object

Update Asset ​

PATCH /:id

  • Body: { title?, description?, altText?, tags?, folderId? }
  • Response: Updated Asset object

Delete Asset ​

DELETE /:id

  • Query Params: hard=true for permanent delete
  • Response: { success: true }

Folders ​

List Folders ​

GET /folders

  • Query Params: parentId (optional)
  • Response: AssetFolder[]

Create Folder ​

POST /folders

  • Body: { name: string, parentId?: string }
  • Response: AssetFolder

AI & Validation ​

Analyze Asset ​

POST /:id/analyze

  • Triggers background AI analysis.
  • Response: { queued: boolean, jobId: string }

Validate Asset ​

POST /:id/validate

  • Body: { platforms: Platform[] }
  • Response: Record<Platform, ValidationResult>

List Tags ​

GET /tags

  • Returns all used tags with usage counts.
  • Response: { name: string, count: number }[]

TendSocial Documentation