Read an image's metadata synchronously
EXIF, GPS, dimensions, format and SHA-1 for the image in the request body. Nothing is stored, no credits are spent, and it does NOT count against the plan's processing allowance — it reads a header.
The image is sent the ways /images/transform takes it: raw bytes with their own Content-Type, a multipart file part, or JSON {assetId} / {url}.
Returns the same image / metadata shape GET /api/v1/assets/{id} carries, so measuring an image before storing it and reading one after storing it hand back the same fields.
LIMITS: the transform lane's — 25 MB, 50 megapixels, 10 s — and its 4 calls in flight per account (429 rate_limited, Retry-After: 1).
USE THIS WHEN:
- You want to know what you are holding before deciding whether to store it
DO NOT USE WHEN:
- The image is already an asset → GET /api/v1/assets/{id} already has this
Request
- Base URL: https://api.imagestep.dev
- URL: https://api.imagestep.dev/api/v1/images/metadata
- Auth: API key in header Authorization
Request body
Response
data is {image, metadata, durationMs}: image has the fields of an asset's image (mime type, dimensions, size, SHA-1 and what is derived from the pixels), metadata the map exiftool read under its own tag names, durationMs the worker's time.
Example response
{
"success": true,
"message": "Operation completed successfully",
"timestamp": "2024-01-15T10:30:45.123Z",
"error": {
"code": "invalid_param",
"message": "format must be one of: jpeg, png, webp",
"param": "format",
"requestId": "9f0c1c2e-6f2a-4f6b-9d3e-0a1b2c3d4e5f"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.