POST /v1/optimize

Image Optimization API

Compress images, reduce file size, convert to web formats, and target specific output sizes.

Key Operations

compress

optimize

reduce_to_target_size

convert_to_webp

convert_to_avif

Use cases

  • CDN optimization

  • E-commerce media compression

  • Bandwidth reduction

Async Job Lifecycle

All ImageHQ processing endpoints are asynchronous. Upon a successful POST, you receive a 202 Acceptedresponse with a job_id. Poll the status endpoint until the state reaches succeeded.

Request Example

import requests

url = "https://api.imagehq.io/v1/optimize"
payload = {
  "input_format": "png",
  "operation": "compress",
  "options": {
    "quality": 85,
    "strip_metadata": True
  },
  "output_format": "same_as_input",
  "tool_slug": "compress-png"
}
files = [("files[]", open("image.png", "rb"))]
data = {"request": json.dumps(payload)}

response = requests.post(url, files=files, data=data)
print(response.json())

Successful Response

{
  "completed": {
    "download_url": "/v1/jobs/job_123/download",
    "expires_at": "2026-05-03T00:00:00Z",
    "id": "job_123",
    "inputs": [
      {
        "filename": "input.png",
        "format": "png",
        "mime_type": "image/png",
        "size_bytes": 420122
      }
    ],
    "outputs": [
      {
        "filename": "output.jpg",
        "format": "jpg",
        "id": "0",
        "mime_type": "image/jpeg",
        "size_bytes": 161002
      }
    ],
    "progress": 100,
    "retention_policy": {
      "clamp": true,
      "ttl_hours": 24
    },
    "stages": [
      {
        "name": "queued",
        "progress": 100,
        "status": "succeeded"
      },
      {
        "name": "processing",
        "progress": 100,
        "status": "succeeded"
      }
    ],
    "status": "succeeded",
    "warnings": []
  },
  "queued": {
    "client_reference_id": "example-123",
    "created_at": "2026-05-02T00:00:00Z",
    "current_stage": "queued",
    "expires_at": "2026-05-03T00:00:00Z",
    "id": "job_123",
    "operation": "optimize",
    "poll_url": "/v1/jobs/job_123",
    "progress": 0,
    "status": "queued",
    "tool_slug": "png-to-jpg"
  }
}

Frequently Asked Questions

Can I target smaller file size?

Yes, optimize jobs can be configured to reduce to target size where practical.

Does optimization remove metadata?

You can control metadata stripping through output options.

Is optimize separate from convert?

Yes. Optimize focuses on quality/size controls while convert focuses on format changes.


Related APIs

convert APItransform APIpipeline APIbatch API

ImageHQ

Smart image tools for conversion, compression, and automation.

Tools

Compress ImageResize ImagePNG to JPGFiltersEnhance

© 2026 ImageHQ. All rights reserved.