Description
Upload multiple media files through the WordPress REST API with optional authentication, duplicate detection, detailed responses and upload limits.
REST API
POST /wp-json/mmbyapi/v1/upload-multiple-images
File field:
mmbyapi_file_upload[]
Optional field:
post_id
Features
- Optional authentication using WordPress authentication/Application Passwords.
- Backward-compatible public mode when authentication is disabled.
- Detailed per-file JSON responses.
- Duplicate detection using a content hash.
- Maximum files per request setting.
- Maximum individual file size setting.
- Allowed MIME type settings.
- Optional post attachment.
Authentication
Authentication is OFF by default for backward compatibility.
When enabled, the caller must be authenticated and have the WordPress upload_files capability.
Application Password example:
curl -i -u “USERNAME:APPLICATION_PASSWORD” \
-F “mmbyapi_file_upload[]=@/path/to/image1.jpg” \
-F “mmbyapi_file_upload[]=@/path/to/image2.jpg” \
“https://example.com/wp-json/mmbyapi/v1/upload-multiple-images”
Response
Successful uploads return attachment information including attachment ID, URL, MIME type, file size, image dimensions when available, and a content hash.
Duplicate uploads return the existing attachment with duplicate: true.
If some files fail and others succeed, the endpoint returns HTTP 207 with per-file results.
Duplicate detection
Duplicate detection is enabled by default. The plugin calculates a SHA-256 hash of each uploaded file and stores it as attachment metadata. Uploading identical file content returns the existing Media Library attachment instead of creating a second attachment. Renaming a file does not bypass duplicate detection.
Compatibility fixes
The 1.6.0 settings allow-list correctly validates MIME types against WordPress MIME values. PNG, JPEG/JPG, GIF and WebP remain enabled by default. Duplicate detection also works when the same file is included more than once in a single API request.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Upload Multiple Media by API” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Upload Multiple Media by API” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Change log
1.6.0
- Added optional REST API authentication.
- Added admin settings page.
- Added upload_files capability check.
- Added detailed per-file API responses.
- Added duplicate detection using a content hash.
- Added maximum files per request setting.
- Added maximum file size setting.
- Added allowed MIME type settings.
- Added optional post_id support.
- Preserved the existing endpoint and field name.
1.5.1
- Fixed multiple-file handling for multipart/form-data requests.
- Improved upload error handling.

