Attest tools · image_transform

Image transform

a task needs an image resized, cropped to a box, rotated, flipped, greyscaled, blurred, tinted, trimmed, padded, compressed or converted between JPEG, PNG, WebP and AVIF; or needs a favicon set built from a logo; or n…

1 credit per successful callPOST /api/v1/image/transform

Bearer key · JSON

POST /api/v1/image/transform

curl -s -X POST https://getattest.com.au/api/v1/image/transform \
  -H "authorization: Bearer $ATTEST_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'

Send the key as a bearer token in the authorization header. One key and one credit balance cover every service, including Attest Capture. A failed call is refunded automatically. No key yet? POST /api/v1/keys issues one with 25 free credits and no signup — see the key guide.

For agents

Use when

Use this when a task needs an image resized, cropped to a box, rotated, flipped, greyscaled, blurred, tinted, trimmed, padded, compressed or converted between JPEG, PNG, WebP and AVIF; or needs a favicon set built from a logo; or needs to read a photo's EXIF and ICC details (with GPS withheld unless asked for) before the metadata is stripped.

Not documented yet: a captured example response. This page only shows what the module publishes about itself, so the missing parts are absent rather than guessed at.

7 fields

Input

Scroll the table horizontally to see all fields.

Field / Type / Required / What it does
FieldTypeRequiredWhat it does
urlstringOptionalA public http(s) image URL. Exactly one of url or file_base64.
file_base64stringOptionalThe image as base64.
operationstringOptionalA single-shot operation: metadata or favicon_set. Cannot be combined with operations.
operationsarrayOptionalA pipeline, applied in order. Each entry names one of resize, rotate, flip, flop, convert, compress, grayscale, blur, tint, flatten, strip_metadata, trim, extend, with that operation's own options.
include_gpsbooleanOptionalFor operation metadata: return the GPS tag as well. Withheld by default.
auto_orientbooleanOptionalApply the EXIF orientation before the pipeline runs. On by default.
bundlestringOptionalFor operation favicon_set: how to return the files, as separate files or a zip.

HTTP 200

Response

Every successful response also carries call_id (your receipt for the charge), credits_charged and credits_remaining.

Scroll the table horizontally to see all fields.

Field / What it holds
FieldWhat it holds
operationThe operation that ran, for a single-shot call.
operations_appliedThe pipeline that ran, in order.
formatThe format of the produced image.
widthWidth of the produced image.
heightHeight of the produced image.
bytesSize of the produced image.
sha256SHA-256 of the produced bytes.
file_base64The produced image.
filesFor favicon_set: each generated icon with its size, bytes and hash.
exifFor operation metadata: the camera details found, with GPS withheld unless asked for.
iccFor operation metadata: the colour profile found.
limitsThe caps that applied.
noticeThat metadata is stripped from every returned image, so results are sRGB with no camera or GPS details.

Machine-readable failures

Errors

Errors return JSON such as {"error":"invalid_api_key"}. A failed call is refunded automatically.

Scroll the table horizontally to see all fields.

Code / Status / Meaning
CodeStatusMeaning
input_required400Neither url nor file_base64 was sent.
input_conflict400Both url and file_base64 were sent.
unknown_operation400operation is not a supported name; the response lists them.
operation_conflict400A single-shot operation was combined with operations.
operations_required400No operation and no operations were sent.
resize_requires_width_or_height400A resize step named neither a width nor a height.
unsupported_image_format400The input is not an image format this service reads.
image_too_many_pixels400The image is past the pixel cap.
file_too_large400The input is past the byte cap.
output_too_large400The produced image is past the response cap.
output_dimensions_too_large400The requested output size is past the cap.
fetch_failed502The image URL did not answer. Not charged.

On every service

Scroll the table horizontally to see all fields.

Code / Status / Meaning
CodeStatusMeaning
invalid_api_key401The authorization header is missing or the key is unknown.
insufficient_credits402The balance is below this call's cost. The response carries credits_required and credits_remaining.
rate_limit_exceeded429Free keys share 10 calls a minute across every service. The response carries limit and window_seconds.
services_unavailable503The credit store could not be reached. Retry once after 30 seconds.

Where the answer comes from

Source and scope

Decoded and re-encoded in memory by libvips 8.18 through sharp 0.35. Every result is a fresh encode, and EXIF, ICC and XMP metadata are removed from every image returned.

Attest reports what it read, with the source it read it from. It is general information, not advice, and not a legal record.

All Attest tools · Service list as JSON · OpenAPI

Same key as every Attest tool

One key. One balance. 1 credit a call.

Issue a free key, then use it here, on Attest Capture and on every other tool in the box.

Get a free key