apyhub

Image Filters API

Hosted on ApyHub

What it does

Image Filter lets you apply a fixed set of transformations to an image and return the result as a file or a signed URL. Send either a binary image upload or an image url, choose a filter, and optionally set output and preserve_format.

Use it for common image adjustments like rotate_45, rotate_90, rotate_135, rotate_180, rotate_225, rotate_270, rotate_315, maximum, minimum, brightness_decrease, brightness_increase, gaussian_blur, flip_vertical, flip_horizontal, or gamma_0.5. The service supports PNG, JPEG, JPG, BMP, TIFF, GIF, and WEBP when you fetch from a URL.

Choose the multipart endpoints when you already have the image file in hand. Use the URL-based endpoints when the image is hosted elsewhere and accessible to ApyHub services. Depending on the endpoint you call, the response is either binary image data or a data field containing a URI.

Image Filter is a good fit for product photo cleanup, simple creative effects, thumbnail preparation, and automated image pipelines where you need deterministic transforms without building them yourself.

▣ ENDPOINT 01 / 04
POST
Apply filter (multipart, signed URL)
http://localhost:8080/apyhub/apply-filter/multi-part/link
QUICKSTARTGUIDE

Quickstart

Upload an image and apply the selected filter to get back a generated file URL.

curl -X POST "http://localhost:8080/apyhub/apply-filter/multi-part/link?filter=gaussian_blur" \
  -H "apy-token: $APY_TOKEN" \
  -F "image=@/path/to/image.jpg"

What you'll get back

Returns a JSON object with a data string field containing a URI to the processed file.

{
  "data": "https://example.com/processed-image.jpg"
}
TRY ITLIVE · 30 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*

About this endpoint

What it does

Applies a filter to an uploaded image and returns a JSON object containing a URI in data. The image is sent as multipart form data, while the filter is selected via a query parameter.

Query Parameter(s)

AttributeTypeMandatoryDescription
filterENUMYesFilter to apply. Allowed values: rotate_45, rotate_90, rotate_135, rotate_180, rotate_225, rotate_270, rotate_315, maximum, minimum, brightness_decrease, brightness_increase, gaussian_blur, flip_vertical, flip_horizontal, gamma_0.5.
outputStringNoOutput identifier.
preserve_formatBooleanNoPreserve the original image format when processing.

Request Body

ParameterTypeMandatoryDescription
imageStringYesImage file to process, sent as binary data.

Response

Returns a JSON object with a data string field formatted as a URI. The response body is an object wrapper with a single data property containing the result location.

ParameterTypeMandatoryDescription
dataStringNoURI of the processed output.

Query parameters

Name
Type
Description
filterREQUIRED
string
rotate_45 · rotate_90 · rotate_135 · rotate_180 · rotate_225 · …
outputOPTIONAL
string
preserve_formatOPTIONAL
boolean

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ ENDPOINT 02 / 04
POST
Apply filter (fetch URL, download)
http://localhost:8080/apyhub/apply-filter/url/download
QUICKSTARTGUIDE

Quickstart

Download an image from a URL and apply the selected filter.

curl -X POST "http://localhost:8080/apyhub/apply-filter/url/download?filter=gaussian_blur" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.jpg"}'

What you'll get back

Returns the filtered file as binary data (string with format: binary).

binary file data
TRY ITLIVE · 30 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
A url of the image that is accessible by ApyHub services. Supported formats are png, jpeg, jpg, bmp, tiff, gif, or webp. If the provided URL does not include a protocol (e.g., http:// or https://), our system will automatically include https:// to ensure proper processing of the request.

About this endpoint

What it does

Fetches an image from a URL and applies the selected filter, then returns the processed file as binary data.

Query Parameter(s)

AttributeTypeMandatoryDescription
filterENUMYesImage filter to apply. Allowed values: rotate_45, rotate_90, rotate_135, rotate_180, rotate_225, rotate_270, rotate_315, maximum, minimum, brightness_decrease, brightness_increase, gaussian_blur, flip_vertical, flip_horizontal, gamma_0.5.
outputStringNoOutput name.
preserve_formatBooleanNoWhether to preserve the original image format.

Request Body

ParameterTypeMandatoryDescription
urlStringNoURL of the image to fetch. Must be a URI. Supported formats are png, jpeg, jpg, bmp, tiff, gif, or webp. If the URL does not include a protocol, https:// is automatically added.

Response

Returns binary file content as a raw string with format: binary.

Query parameters

Name
Type
Description
filterREQUIRED
string
rotate_45 · rotate_90 · rotate_135 · rotate_180 · rotate_225 · …
outputOPTIONAL
string
preserve_formatOPTIONAL
boolean

Body

Name
Type
Description
bodyREQUIRED
object
A url of the image that is accessible by ApyHub services. Supported formats are png, jpeg, jpg, bmp, tiff, gif, or webp. If the provided URL does not include a protocol (e.g., http:// or https://), our system will automatically include https:// to ensure proper processing of the request.
▣ ENDPOINT 03 / 04
POST
Apply filter (fetch URL, signed URL)
http://localhost:8080/apyhub/apply-filter/url/link
QUICKSTARTGUIDE

Quickstart

Convert an image at a URL using the selected filter.

curl -X POST "http://localhost:8080/apyhub/apply-filter/url/link?filter=gaussian_blur" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://assets.apyhub.com/samples/sample.jpg"}'

What you'll get back

Returns a JSON object with a data string field containing a URI to the processed output.

{
  "data": "https://..."
}
TRY ITLIVE · 30 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
A url of the image that is accessible by ApyHub services. Supported formats are png, jpeg, jpg, bmp, tiff, gif, or webp. If the provided URL does not include a protocol (e.g., http:// or https://), our system will automatically include https:// to ensure proper processing of the request.

About this endpoint

What it does

Applies an image filter to the file at the provided URL and returns a JSON object containing a data URI string for the resulting file.

Query Parameter(s)

AttributeTypeMandatoryDescription
filterENUMYesImage filter to apply. Allowed values: rotate_45, rotate_90, rotate_135, rotate_180, rotate_225, rotate_270, rotate_315, maximum, minimum, brightness_decrease, brightness_increase, gaussian_blur, flip_vertical, flip_horizontal, gamma_0.5.
outputStringNoOutput name. Example value: my-invite.
preserve_formatBooleanNoWhen true, preserves the original file format.

Request Body

ParameterTypeMandatoryDescription
urlStringNoA URL of the image accessible by ApyHub services. Supported formats are png, jpeg, jpg, bmp, tiff, gif, or webp. If the URL does not include a protocol, https:// is added automatically. Format: URI. Example: https://assets.apyhub.com/samples/sample.jpg.

Response

Returns a JSON object with a data string field containing a URI for the processed output.

ParameterTypeMandatoryDescription
dataStringYesURI of the resulting file. Format: URI.

Query parameters

Name
Type
Description
filterREQUIRED
string
rotate_45 · rotate_90 · rotate_135 · rotate_180 · rotate_225 · …
outputOPTIONAL
string
preserve_formatOPTIONAL
boolean

Body

Name
Type
Description
bodyREQUIRED
object
A url of the image that is accessible by ApyHub services. Supported formats are png, jpeg, jpg, bmp, tiff, gif, or webp. If the provided URL does not include a protocol (e.g., http:// or https://), our system will automatically include https:// to ensure proper processing of the request.
▣ ENDPOINT 04 / 04
POST
Apply filter (multipart, download)
http://localhost:8080/apyhub/apply-filter/multi-part/download
QUICKSTARTGUIDE

Quickstart

Upload an image and choose a filter to download the processed file.

curl -X POST "http://localhost:8080/apyhub/apply-filter/multi-part/download?filter=gaussian_blur" \
  -H "apy-token: $APY_TOKEN" \
  -F "image=@/path/to/image.jpg"

What you'll get back

Returns a binary file (string with format: binary) as the response body.

<binary file contents>
TRY ITLIVE · 30 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*

About this endpoint

What it does

Applies a filter to an uploaded image and returns the transformed file as a binary download. The filter is selected with the filter query parameter, and the input image is sent in the request body.

Query Parameter(s)

AttributeTypeMandatoryDescription
filterENUMYesAllowed values: rotate_45, rotate_90, rotate_135, rotate_180, rotate_225, rotate_270, rotate_315, maximum, minimum, brightness_decrease, brightness_increase, gaussian_blur, flip_vertical, flip_horizontal, gamma_0.5
outputStringNoExample: my-invite
preserve_formatBooleanNoBoolean flag.

Request Body

ParameterTypeMandatoryDescription
imageStringYesBinary image file to process.

Response

Returns a binary file download, represented by a top-level string with binary format.

ParameterTypeMandatoryDescription
valueStringYesBinary file content.

Query parameters

Name
Type
Description
filterREQUIRED
string
rotate_45 · rotate_90 · rotate_135 · rotate_180 · rotate_225 · …
outputOPTIONAL
string
preserve_formatOPTIONAL
boolean

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.