Skip to Content
splashify CLIMedia library

Media library

The media command surfaces the /media page — list every file uploaded to your account, see storage usage, upload new files from disk, and delete files by media_id.

Quick start

splashify media # list every file (URLs + details) splashify media list # same as above (alias) splashify media list --type image # filter by type splashify media storage # storage quota + usage splashify media upload ./logo.png # upload a file from disk splashify media upload /var/files/invoice.pdf splashify media delete 7a32bce6-910d-4b1f-... # remove a file by media_id

Command reference

SubcommandBacked by
(none — default) / list / lsGET /api/v1/app/media[?type=...]
storage / quotaGET /api/v1/app/media/storage
upload <path>POST /api/v1/app/media/upload (multipart, field file)
delete <media_id> / rm <media_id>DELETE /api/v1/app/media/:media_id

What each file row contains

{ "media_id": "uuid", "file_name": "media/.../1700000000-original.png", "original_name": "logo.png", "file_url": "https://splashify.blr1.cdn.digitaloceanspaces.com/media/...", "file_type": "image", "mime_type": "image/png", "file_size": 12345, "file_extension": ".png", "created_at": "2026-05-19T13:57:23.582Z" }

The file_url is the public CDN URL of the file. You can hand it straight to splashify message media --url <file_url> to send the file in a WhatsApp message without re-uploading.

Accepted file types

Enforced by the backend’s classifyFileType:

TypeExtensionsMax size
image.jpg .jpeg .pngper backend config
video.mp4per backend config
audio.mp3 .ogg .webm .aac .amr .m4aper backend config
document.pdf .xlsx .xls .doc .docx .csvper backend config

Other extensions are refused with a 400 listing the accepted set. The exact per-type size caps live in the backend and are reported in the error message when a file is too large.

Storage quota

splashify media storage | jq # { # "success": true, # "storage_used": 524288, # "storage_limit": 5368709120, # "files_count": 12 # }

When an upload would exceed the quota the backend refuses with HTTP 400 and the JSON includes storage_used and storage_limit so the CLI surfaces a clear “storage quota exceeded” message.

Common patterns

# Just the URLs of every image splashify media list --type image | jq -r '.files[].file_url' # Total bytes used by uploaded videos splashify media list --type video | jq '[.files[].file_size] | add' # Most recent upload of any type splashify media | jq '.files | sort_by(.created_at) | reverse | .[0]' # Bulk delete every audio file — irreversible splashify media list --type audio | jq -r '.files[].media_id' | \ xargs -I{} splashify media delete {}
  • Messages — pass file_url to message media --url
  • Templatestemplates upload-media returns a Meta media handle (different surface; this page is the CDN library)