Skip to main content
Domain: https://image-proxy.enad.io

Overview

The Image Proxy API allows you to fetch images from external URLs, process them (resize, crop, format conversion), cache them in R2, and serve the optimized result.

Endpoints

Proxy Image Processing

GET /{app_id} Fetch an image from a source URL, process it, store it, and return the result.

Path Parameters

ParameterTypeRequiredDescription
app_idstringYesApplication/tenant UUID identifier used for namespacing the cached images

Query Parameters

ParameterTypeRequiredDefaultDescription
srcstringYes-The absolute URL of the source image to fetch
widthu32No-Target width in pixels (1-5000)
heightu32No-Target height in pixels (1-5000)
qualityu8No80Image quality (0-100)
formatstringNooriginalOutput format: webp, avif, png, jpeg, jpg
fitstringNocontainResize mode (see Fit Modes below)
blurf32No-Blur intensity (0.0-100.0)
crop_xi32No-Horizontal crop offset in pixels
crop_yi32No-Vertical crop offset in pixels
fillstringNo-Background fill color (hex format: #000000)
bg_removebooleanNo-Remove background using machine learning

Fit Modes

  • contain - Resize to fit within dimensions, maintaining aspect ratio
  • cover - Scale to fill dimensions, cropping excess (centers crop unless crop_x/crop_y specified)
  • scale-down - Only resize if image is larger than target dimensions
  • crop - Scale and crop to exact dimensions
  • pad - Resize to fit and pad remaining space with transparent background
  • squeeze - Stretch/squash to exact dimensions, ignoring aspect ratio

Dimension Behavior

  • If only width is provided: height is calculated to maintain aspect ratio
  • If only height is provided: width is calculated to maintain aspect ratio
  • If both are provided: behavior depends on fit mode
  • If neither is provided: original dimensions are used

Examples

# Proxy and resize external image to width 800
GET https://image-proxy.enad.io/{app_id}?src=https://example.com/image.jpg&width=800

# Proxy, convert to WebP, and set quality
GET https://image-proxy.enad.io/{app_id}?src=https://example.com/image.jpg&format=webp&quality=90

# Proxy and crop to exact dimensions
GET https://image-proxy.enad.io/{app_id}?src=https://example.com/image.jpg&width=1920&height=1080&fit=cover

# Proxy with blur effect
GET https://image-proxy.enad.io/{app_id}?src=https://example.com/image.jpg&width=800&blur=5.0

Response

  • Content-Type: Varies based on output format (e.g., image/jpeg, image/webp)
  • Status Codes:
    • 200 OK - Success
    • 400 Bad Request - Invalid parameters or failed to fetch source image
    • 500 Internal Server Error - Processing or storage error

Limits

  • Dimensions: Maximum 5000x5000 pixels
  • Minimum Dimensions: At least 1 pixel
  • Image Quality: 0-100
  • Blur Range: 0.0-100.0
  • URL: Must be a valid HTTP/HTTPS URL passed in src