apyhub

Score Image Exposure API

What it does

Image Exposure Score checks a single image file for exposure quality and clipping. Send a binary image in the file field, and get back a numeric score plus exposure measurements you can use in automated review or tuning workflows.

The response includes mean_luma, shadow_pct, contrast_std, dynamic_range, and highlight_pct, along with a recommendations array of strings. That makes it easy to compare images consistently, flag underexposed or overexposed assets, and surface a short explanation for editors or QA tools.

Use Image Exposure Score when you need to screen uploaded photos before publishing, reject low-quality user submissions, or route borderline images for manual review. Because the API returns structured metrics rather than a simple pass/fail, you can set your own thresholds for different content types, cameras, or production standards.

POST
Score image exposure and clipping
https://api.eu.apyhub.com/dosvak/score-image-exposure

QUICKSTART

GUIDE

Quickstart

Upload an image to score its exposure.

curl -X POST "https://api.eu.apyhub.com/dosvak/score-image-exposure" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/image.jpg"

What you'll get back

Returns a JSON object with numeric exposure metrics and a recommendations array of strings.

{
  "score": 82.4,
  "mean_luma": 0.71,
  "shadow_pct": 12.3,
  "contrast_std": 18.6,
  "dynamic_range": 7.9,
  "highlight_pct": 4.1,
  "recommendations": ["Exposure looks balanced"]
}
TRY ITLIVE · 100 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*
Image file

About this endpoint

What it does

Scores an uploaded image for exposure and clipping by analyzing the submitted file and returning numeric exposure metrics plus optional text recommendations.

Request Body

ParameterTypeMandatoryDescription
fileStringYesImage file. Binary upload. Maximum size: 20 MB.

Response

Returns a JSON object with score, mean_luma, shadow_pct, contrast_std, dynamic_range, and highlight_pct numeric fields, plus a recommendations string array. The endpoint reports the exposure analysis results in these top-level fields.

ParameterTypeMandatoryDescription
scoreNumberNoExposure score.
mean_lumaNumberNoMean luma value.
shadow_pctNumberNoShadow percentage.
contrast_stdNumberNoContrast standard deviation.
dynamic_rangeNumberNoDynamic range value.
highlight_pctNumberNoHighlight percentage.
recommendationsString ArrayNoRecommended actions or observations returned by the analysis.

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.