Professional media conversion and storage management
Convert images and videos to optimized formats with quality control.
Converting media... Please wait.
Upload any file type directly to Google Cloud Storage without conversion.
Uploading file... Please wait.
Make any HTTP request with full customization. Perfect for API testing and integration.
Sending request... Please wait.
Integrate Media Manager into your applications with our comprehensive RESTful API.
Convert images and videos with cropping, quality control, and loop settings.
POST https://media-manager-yf55zpjhia-uc.a.run.app
Upload any file type directly to Google Cloud Storage.
POST https://media-manager-yf55zpjhia-uc.a.run.app
Make HTTP requests with automatic base64 image processing and storage.
POST https://media-manager-yf55zpjhia-uc.a.run.app
Endpoint: POST https://media-manager-yf55zpjhia-uc.a.run.app
Parameter | Type | Required | Description |
---|---|---|---|
file_url |
string | One of file_url or file | URL of the file to convert |
file |
string | One of file_url or file | Base64 encoded file data |
quality |
integer | No (default: 85) | Quality 1-100 for WebP, 0-63 for WebM |
output_format |
string | No (default: webp) | webp or webm |
crop_ratio |
string | No | Aspect ratio (e.g., "1:1", "16:9", "custom") |
gcs_path |
string | No | Storage folder path in Google Cloud Storage |
loop |
boolean | No (default: true) | For videos/animations - true = loop forever, false = end static on last frame |
curl -X POST https://media-manager-yf55zpjhia-uc.a.run.app \
-H "Content-Type: application/json" \
-d '{
"file_url": "https://example.com/image.png",
"quality": 85,
"output_format": "webp"
}'
curl -X POST https://media-manager-yf55zpjhia-uc.a.run.app \
-H "Content-Type: application/json" \
-d '{
"file_url": "https://example.com/image.png",
"quality": 85,
"output_format": "webp",
"crop_ratio": "1:1",
"gcs_path": "social-media/instagram"
}'
curl -X POST https://media-manager-yf55zpjhia-uc.a.run.app \
-H "Content-Type: application/json" \
-d '{
"file_url": "https://example.com/animation.gif",
"quality": 85,
"output_format": "webp",
"loop": false,
"gcs_path": "animations/static"
}'
{
"success": true,
"webp_url": "https://storage.googleapis.com/...",
"file_url": "https://storage.googleapis.com/...",
"filename": "converted_20241201_143022.webp",
"file_type": "image",
"output_format": "webp",
"quality": 85,
"crop_ratio": "1:1",
"loop": true,
"original_size": 1024000,
"converted_size": 512000,
"compression_ratio": 50.0,
"bucket": "onsitetrainer-uploads",
"gcs_path": "gs://onsitetrainer-uploads/social-media/instagram/converted_20241201_143022.webp",
"expires_in": "permanent (public URL)"
}
Endpoint: POST https://media-manager-yf55zpjhia-uc.a.run.app
Parameter | Type | Required | Description |
---|---|---|---|
file |
string | Yes | Base64 encoded file data |
filename |
string | No | Custom filename |
content_type |
string | No | MIME type (auto-detected if not provided) |
gcs_path |
string | No | Storage folder path |
curl -X POST https://media-manager-yf55zpjhia-uc.a.run.app \
-H "Content-Type: application/json" \
-d '{
"file": "base64_encoded_file_data",
"filename": "document.pdf",
"content_type": "application/pdf",
"gcs_path": "documents/reports"
}'
{
"success": true,
"file_url": "https://storage.googleapis.com/...",
"filename": "document.pdf",
"bucket": "onsitetrainer-uploads",
"gcs_path": "gs://onsitetrainer-uploads/documents/reports/document.pdf",
"size": 1024000,
"content_type": "application/pdf"
}
Endpoint: POST https://media-manager-yf55zpjhia-uc.a.run.app
Parameter | Type | Required | Description |
---|---|---|---|
method |
string | Yes | HTTP method (GET, POST, PUT, DELETE) |
url |
string | Yes | Target URL |
headers |
object | No | HTTP headers |
body |
string | No | Request body |
webhook_url |
string | No | Webhook URL for response |
When using HTTP Request Forwarding, if the response contains base64 image data, it will automatically be:
curl -X POST https://media-manager-yf55zpjhia-uc.a.run.app \
-H "Content-Type: application/json" \
-d '{
"method": "POST",
"url": "https://api.openai.com/v1/images/generations",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
"body": "{\"model\":\"gpt-image-1\",\"prompt\":\"A red circle\",\"n\":1,\"size\":\"1024x1024\"}",
"webhook_url": "https://your-webhook.com/callback"
}'
{
"success": true,
"status_code": 200,
"response_time": 1500,
"response_headers": {...},
"response_body": {...},
"processed_images": [
{
"original_field": "data[0].b64_json",
"png_url": "https://storage.googleapis.com/bucket/generated_image.png",
"filename": "generated_image.png"
}
]
}
All API endpoints return consistent error responses:
{
"success": false,
"error": "Error description"
}
Error | Description | Solution |
---|---|---|
400 | Invalid request parameters | Check parameter types and required fields |
404 | File not found | Verify file URL is accessible |
500 | Internal server error | Contact support with request details |
{PROJECT_ID}-uploads