Core APIs

Assets

Upload source images and videos before creating video or split jobs. Assets receive a public asset_* id — internal storage keys are never exposed.

Upload flow

  1. POST /assets/upload-url — returns presigned upload_url and asset_id
  2. PUT file bytes to upload_url with the required Content-Type header
  3. POST /assets/confirm-upload — marks the asset ready
curl -s -X POST "https://api.flikly.ai/api/v1/developer/assets/upload-url" \
  -H "Authorization: Bearer $FLIKLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "hero.mp4",
    "content_type": "video/mp4",
    "size_bytes": 5242880,
    "purpose": "split_source"
  }'

Purposes

  • split_source — video MIME types only (for split jobs)
  • video_source — video MIME types
  • image_source — image MIME types (for image-to-video)
  • general — any allowed MIME type

Supported content types

image/jpeg, image/png, image/webp, video/mp4, video/quicktime, video/webm

Size limits

Upload size must not exceed max_asset_upload_size_bytes from GET /me or usage (Team default: 2 GB). Oversized uploads return ASSET_UPLOAD_TOO_LARGE.

Read and download

  • GET /assets/{id} — metadata and status (pending, uploaded, failed)
  • GET /assets/{id}/download-url — short-lived presigned download URL

Scopes: assets:create, assets:read.