Synchronous images

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
post/api/v1/images/metadata

Request

  • Base URL: https://api.imagestep.dev
  • URL: https://api.imagestep.dev/api/v1/images/metadata
  • Auth: API key in header Authorization

Request body

opstring

Transform only: the op, as ?op=

presetstring

Transform only: the preset, as ?preset=

assetIdstring

One of your assets, read by this service (its browser-readable rendition when it has one)

urlstring

An image on the internet, fetched by this service: http(s) only, never a private or loopback address, redirects not followed. Its format is the type it was served as, else the one its extension names

parametersobject

Transform with op only: the op's parameters. A key also in the query string takes the query's value.

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.

successboolean required

Indicates if the request was successful

messagestring

Human-readable message about the response

timestampstring date-time

Timestamp when the response was generated

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.