POST /v1/metadata

Image Metadata API

Inspect, extract, or remove EXIF, GPS, camera, color profile, and file metadata.

Key Operations

inspect

remove

remove_exif

remove_gps

check_size

check_dimensions

Use cases

  • Privacy cleanup

  • Compliance checks

  • Metadata extraction in ingestion pipelines

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/metadata"
payload = {
  "operation": "inspect",
  "options": {
    "include_exif": True,
    "include_gps": True,
    "remove_exif": False
  },
  "tool_slug": "view-image-metadata"
}
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,
    "result_json": {
      "exif": {
        "camera": "DemoCam"
      }
    },
    "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": "metadata",
    "poll_url": "/v1/jobs/job_123",
    "progress": 0,
    "status": "queued",
    "tool_slug": "png-to-jpg"
  }
}

Frequently Asked Questions

Can metadata jobs return JSON?

Yes. Inspect operations can return structured metadata results.

Can I remove GPS only?

Yes. Use the remove_gps operation for targeted cleanup.

Does metadata processing alter pixels?

No pixel edits are required for inspect-only metadata operations.


Related APIs

ocr APIdocument APIpipeline APIbatch API

ImageHQ

Smart image tools for conversion, compression, and automation.

Tools

Compress ImageResize ImagePNG to JPGFiltersEnhance

© 2026 ImageHQ. All rights reserved.