Skip to content

Media API ​

Guide for managing media files in your Cosmic bucket.

Overview ​

Media tools allow you to manage images, videos, documents, and other files in your Cosmic bucket. All media files are automatically optimized and served through Cosmic's CDN.

Available Tools ​

list_media ​

List media files in your bucket with filtering and pagination.

Use Cases:

  • Browse uploaded images
  • Find media by folder
  • Paginate through large media libraries
  • Filter by file type

Parameters:

  • limit (optional): Number of files to return (max 1000)
  • skip (optional): Skip files for pagination
  • folder (optional): Filter by folder path
  • sort (optional): Sort field and direction

Example:

json
{
  "folder": "blog-images",
  "limit": 20,
  "sort": "-created_at"
}

get_media ​

Get details about a specific media file.

Use Cases:

  • Get image URLs and metadata
  • Check file size and dimensions
  • Retrieve optimization settings
  • Get CDN URLs

Parameters:

  • id (required): Media file ID

Example:

json
{
  "id": "64f8a123b456c789"
}

upload_media ​

Upload new media files to your bucket.

Use Cases:

  • Add images to blog posts
  • Upload product photos
  • Store documents and PDFs
  • Upload video content

Parameters:

  • file (required): File data (base64 encoded)
  • filename (required): Original filename
  • folder (optional): Folder to upload to
  • metadata (optional): Additional metadata

Example:

json
{
  "file": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...",
  "filename": "hero-image.jpg",
  "folder": "homepage",
  "metadata": {
    "alt_text": "Hero image for homepage",
    "caption": "Beautiful sunset over mountains",
    "photographer": "John Doe"
  }
}

File Types Supported ​

Images ​

  • JPEG (.jpg, .jpeg) - Photos and complex images
  • PNG (.png) - Images with transparency
  • GIF (.gif) - Animated images
  • WebP (.webp) - Modern format with better compression
  • SVG (.svg) - Vector graphics

Videos ​

  • MP4 (.mp4) - Most common video format
  • WebM (.webm) - Web-optimized video
  • MOV (.mov) - QuickTime format

Documents ​

  • PDF (.pdf) - Documents and presentations
  • DOC/DOCX (.doc, .docx) - Word documents
  • TXT (.txt) - Plain text files

Other ​

  • ZIP (.zip) - Compressed archives
  • JSON (.json) - Data files
  • CSV (.csv) - Spreadsheet data

Image Optimization ​

Cosmic automatically optimizes images and provides powerful transformation options:

URL Transformations ​

https://cosmic-s3.imgix.net/your-image.jpg?w=800&h=600&fit=crop

Common Parameters:

  • w - Width in pixels
  • h - Height in pixels
  • fit - Resize behavior (crop, scale, fill)
  • q - Quality (1-100)
  • fm - Format (jpg, png, webp, auto)
  • auto - Auto-optimize (compress, format)

Responsive Images ​

html
<img
  src="https://cosmic-s3.imgix.net/image.jpg?w=800&auto=compress,format"
  srcset="
    https://cosmic-s3.imgix.net/image.jpg?w=400&auto=compress,format   400w,
    https://cosmic-s3.imgix.net/image.jpg?w=800&auto=compress,format   800w,
    https://cosmic-s3.imgix.net/image.jpg?w=1200&auto=compress,format 1200w
  "
  sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, 1200px"
  alt="Optimized image"
/>

File Organization ​

Folder Structure ​

Organize your media with folders:

/
├── blog-images/
│   ├── 2024/
│   └── featured/
├── products/
│   ├── electronics/
│   └── clothing/
└── assets/
    ├── icons/
    └── logos/

Naming Conventions ​

Good practices:

  • Use descriptive names: product-hero-image.jpg
  • Include dates: 2024-01-15-event-photo.jpg
  • Use hyphens instead of spaces: team-photo.jpg
  • Include dimensions: logo-300x100.png

Avoid:

  • Special characters: image@#$.jpg
  • Spaces: my image.jpg
  • Very long names: this-is-a-very-long-filename-that-is-hard-to-read.jpg

Common Patterns ​

Blog Image Workflow ​

  1. Upload: upload_media with blog-specific folder
  2. Get URL: Use returned URL in blog post content
  3. Optimize: Add URL parameters for responsive images
  1. Upload multiple: upload_media for each product image
  2. Organize: Use product-specific folders
  3. Retrieve: list_media with folder filter

Asset Management ​

  1. List by type: Filter media by folder
  2. Update metadata: Add alt text and captions
  3. Clean up: Remove unused files periodically

Error Handling ​

Common issues and solutions:

  • File too large: Check file size limits (usually 10MB)
  • Invalid format: Verify file type is supported
  • Upload failed: Check network connection and API key
  • Not found: Verify media ID exists

Best Practices ​

Performance ​

  1. Optimize images: Use appropriate formats and sizes
  2. Use CDN: Always use Cosmic's CDN URLs
  3. Lazy loading: Implement lazy loading for images
  4. WebP format: Use modern formats when possible

Organization ​

  1. Folder structure: Keep media organized in folders
  2. Naming: Use consistent, descriptive naming
  3. Metadata: Add alt text and captions for accessibility
  4. Cleanup: Remove unused media regularly

Security ​

  1. File validation: Validate file types on upload
  2. Size limits: Enforce reasonable file size limits
  3. Access control: Use appropriate API keys