You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 3, 2025. It is now read-only.
A lightweight and efficient HTTP API for uploading, storing, and transforming images on demand.
Supports multiple upload methods, dynamic resizing, rotation, flipping, quality adjustments, and optimized serving.
Designed for integration with web apps, mobile apps, and automated processing pipelines.
Base URL
/_api/v1
All endpoints are prefixed with this base path.
Features
Multiple upload methods — form-data or raw binary
On-the-fly transformations — resize, rotate, flip, and adjust quality without storing duplicates
Non-destructive processing — original images are kept unchanged
Format-preserving output — processed image retains its original format
Optimized for performance — uses streaming to minimize memory usage
Strict input validation — invalid parameters are rejected with detailed error messages
Custom 404 page — editor page shows a friendly 404 if the requested media ID does not exist or when visiting a non-existing page.
Scripts
Script
Description
npm run build
Lint, format, and compile TypeScript to JS
npm run test
Run Jasmine tests after building the project
npm run start
Build and start the server
npm run lint
Run ESLint and fix issues
npm run format
Run Prettier to format code
Upload Image
Endpoint:POST /media
Content-Type:
multipart/form-data (recommended) — for uploading images via form-data.
image/png, image/jpeg, image/jpg — for raw binary uploads. Any other MIME type will be rejected with 415 Unsupported Media Type.
Query Parameters (required for raw binary upload only)