Image Dataset Processing API

Extract rich metadata from images at scale. Built for ML pipelines and data teams.

Why PixelPeeper?

Most metadata tools give you basic EXIF. We extract 200+ fields including the full editing history from Adobe Lightroom—exposure adjustments, tone curves, color grading, and more.

Every image also gets perceptual hashes (dHash, pHash) for deduplication, so you can identify near-duplicates even after resizing or recompression.

Use cases

Dataset deduplication

Scraping images from the web? Your dataset likely contains duplicates, near-duplicates, and resized variants of the same image. Use our perceptual hashes to cluster and deduplicate before training.

Training data enrichment

Add structured labels to your image dataset: camera model, lens, ISO, aperture, focal length, and software used. Filter your training set to specific equipment or quality levels.

Photo editing AI

Building models that edit or enhance photos? We extract the complete Lightroom editing workflow—every slider, curve, and color adjustment. Understand how professionals transform raw files into finished images.

Quality filtering

Separate professional photography from casual snapshots. Filter by camera brand, lens type, or presence of professional editing software in the metadata.

Web scraping for datasets

Building a dataset from public websites? Our image extraction tool crawls any URL, extracts all images, and processes them automatically. Get metadata and perceptual hashes for every image on a page in one request.

Example: Process a new image

To process a new image, you need to POST its URL to this endpoint:
curl -X POST https://api.pixelpeeper.com/v1/images \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer y1MV6EeJJ8jrPVVjzDSyTxJ1ArktszzvVDSB" \
    --data '{
      "url": "https://pixelpeeper.nyc3.digitaloceanspaces.com/images/2024/02/432y4z4brb91m8d3jy5eyv039d.jpg",
      "async": false
    }'
It is recommended to process images asynchronously. To do so, set the async parameter to true. Note the returned id and use it to get the processed data in a following request.

Get metadata for an existing image

To get an existing image, pass its unique ID to this endpoint:
curl https://api.pixelpeeper.com/v1/images/01hqb8gcpef1y8fbp560hyjc1x \
    -H "Authorization: Bearer y1MV6EeJJ8jrPVVjzDSyTxJ1ArktszzvVDSB"

Example response

{
  "id": "01hqb8gcpef1y8fbp560hyjc1x",
  "status": "processed",
  "checksum": "79353f56524bb9e6593dbcd922e8b8021aec679ed7e618a276fc922d66c3bbeb",
  "filename": "20160926-DSC00471.jpg",
  "bytesize": 835206,
  "content_type": "image/jpeg",
  "width": 1500,
  "height": 1000,
  "url": "https://pixelpeeper.s3.amazonaws.com/example-photos/20160926-DSC00471.jpg",
  "final_url": "https://pixelpeeper.s3.amazonaws.com/example-photos/20160926-DSC00471.jpg",
  "dhash": "78fcfc7dbead3933",
  "phash": "4600ff4e31ff308d",
  "error": null,
  "completed_at": "2024-02-23 15:15:30 UTC",
  "created_at": "2024-02-23 15:14:26 UTC",
  "updated_at": "2025-10-07 14:14:38 UTC",
  "metadata": {
    "XMP": {
      "Lens": "FE 55mm F1.8 ZA",
      "Look": {
        "Name": "Adobe Color",
        "UUID": "B952C231111CD8E0ECCF14B86BAA7077",
        "Group": "Profiles",
        "Amount": 1,
        "Parameters": {
          "Version": 13,
          "LookTable": "E1095149FDB39D7A057BAB208837E2E1",
          "CameraProfile": "Adobe Standard",
          "ProcessVersion": 11,
          "ToneCurvePV2012": "0, 0, 22, 16, 40, 35, 127, 127, 224, 230, 240, 246, 255, 255",
          "ConvertToGrayscale": false,
          "ToneCurvePV2012Red": "0, 0, 255, 255",
          "ToneCurvePV2012Blue": "0, 0, 255, 255",
          "ToneCurvePV2012Green": "0, 0, 255, 255"
        },
        "SupportsAmount": false,
        "SupportsMonochrome": false,
        "SupportsOutputReferred": false
      },
      "Tint": "+18",
      "Dehaze": 0,
      "Format": "image/jpeg",
      "RedHue": 0,
      "BlueHue": 0,
      "CropTop": 0,
      "HasCrop": true,
      "History": [
        {
          "Action": "derived",
          "Parameters": "converted from image/x-sony-arw to image/jpeg, saved to new location"
        },
        {
          "When": "2020:11:21 15:54:31+01:00",
          "Action": "saved",
          "Changed": "/",
          "InstanceID": "xmp.iid:19dbb33f-7621-45fc-924d-230520432b95",
          "SoftwareAgent": "Adobe Photoshop Lightroom Classic 10.0 (Macintosh)"
        }
      ],
      "Texture": 0,
      "Version": 13,
      "CropLeft": 0.030803,
      "GreenHue": 0,
      "LensInfo": "55mm f/1.8",
      "Vibrance": 0,
      "CropAngle": 0,
      "CropRight": 0.831314,
      "GrainSeed": 2206991292,
      "GrainSize": 50,
      "LensModel": "FE 55mm F1.8 ZA",
      "Sharpness": 40,
      "Blacks2012": "+9",
      "CreateDate": "2016:09:26 00:27:07",
      "CropBottom": 0.800511,
      "DocumentID": "xmp.did:19dbb33f-7621-45fc-924d-230520432b95",
      "InstanceID": "xmp.iid:19dbb33f-7621-45fc-924d-230520432b95",
      "ModifyDate": "2020:11:21 15:54:31+01:00",
      "Saturation": 0,
      "ShadowTint": 0,
      "Whites2012": -37,
      "XMPToolkit": "Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21        ",
      "Clarity2012": 0,
      "CreatorTool": "Adobe Photoshop Lightroom Classic 10.0 (Macintosh)",
      "DateCreated": "2016:09:26 00:27:07",
      "DerivedFrom": {
        "DocumentID": "E10A4105FE4D3F8650C4CB8143D24E41",
        "OriginalDocumentID": "E10A4105FE4D3F8650C4CB8143D24E41"
      },
      "GrainAmount": 40,
      "HasSettings": true,
      "RawFileName": "DSC00471.ARW",
      "Shadows2012": "+33",
      "Contrast2012": "+7",
      "Exposure2012": -0.45,
      "MetadataDate": "2020:11:21 15:54:31+01:00",
      "PerspectiveX": 0,
      "PerspectiveY": 0,
      "WhiteBalance": "Custom",
      "AutoLateralCA": 0,
      "CameraProfile": "Adobe Standard",
      "RedSaturation": 0,
      "SharpenDetail": 25,
      "SharpenRadius": "+1.0",
      "AlreadyApplied": true,
      "AutoToneDigest": "EC3C589D17FD4141C55B6BBA340BEB9A",
      "BlueSaturation": 0,
      "GrainFrequency": 50,
      "Highlights2012": -25,
      "ProcessVersion": 11,
      "VignetteAmount": 0,
      "GreenSaturation": 0,
      "LensDistortInfo": "1070546516/1073741824 14522624/1073741824 -15025746/1073741824 -3998483/1073741824",
      "LensProfileName": "Adobe (Sony FE 55mm F1.8 ZA)",
      "ParametricDarks": 0,
      "ToneCurvePV2012": "0, 15, 62, 64, 188, 184, 255, 230",
      "ColorTemperature": 6401,
      "HueAdjustmentRed": "+6",
      "LensProfileSetup": "LensDefaults",
      "ParametricLights": 0,
      "PerspectiveScale": 100,
      "HueAdjustmentAqua": 0,
      "HueAdjustmentBlue": -9,
      "LensProfileDigest": "F9F644A3069DCA84B40D62A76B854393",
      "LensProfileEnable": 1,
      "ParametricShadows": 0,
      "PerspectiveAspect": 0,
      "PerspectiveRotate": 0,
      "PreservedFileName": "DSC00471.ARW",
      "ToneCurveName2012": "Custom",
      "ColorGradeBlending": 50,
      "DefringeGreenHueHi": 60,
      "DefringeGreenHueLo": 40,
      "HueAdjustmentGreen": 0,
      "LuminanceSmoothing": 0,
      "OriginalDocumentID": "E10A4105FE4D3F8650C4CB8143D24E41",
      "PerspectiveUpright": "Off",
      "SharpenEdgeMasking": 0,
      "SplitToningBalance": 0,
      "ToneCurvePV2012Red": "0, 0, 52, 25, 91, 67, 128, 128, 186, 194, 255, 255",
      "AutoToneDigestNoSat": "57105CB77AD56E42C624A848EF433407",
      "CameraProfileDigest": "24DB427054E183A10DED3CF64B3851FA",
      "ColorGradeGlobalHue": 0,
      "ColorGradeGlobalLum": 0,
      "ColorGradeGlobalSat": 0,
      "ColorGradeShadowLum": 0,
      "ColorNoiseReduction": 25,
      "CropConstrainToWarp": 0,
      "DefringeGreenAmount": 0,
      "DefringePurpleHueHi": 70,
      "DefringePurpleHueLo": 30,
      "HueAdjustmentOrange": 0,
      "HueAdjustmentPurple": 0,
      "HueAdjustmentYellow": -31,
      "LensProfileFilename": "SONY (Sony FE 55mm F1.8 ZA) - RAW.lcp",
      "PerspectiveVertical": 0,
      "ToneCurvePV2012Blue": "0, 0, 55, 30, 86, 73, 120, 127, 179, 199, 255, 255",
      "ColorGradeMidtoneHue": 0,
      "ColorGradeMidtoneLum": 0,
      "ColorGradeMidtoneSat": 0,
      "DefringePurpleAmount": 0,
      "HueAdjustmentMagenta": 0,
      "OverrideLookVignette": false,
      "ParametricHighlights": 0,
      "SplitToningShadowHue": 51,
      "ToneCurvePV2012Green": "0, 0, 43, 26, 82, 67, 129, 130, 185, 202, 255, 255",
      "LensProfileIsEmbedded": false,
      "ParametricShadowSplit": 25,
      "PerspectiveHorizontal": 0,
      "ColorGradeHighlightLum": 0,
      "LuminanceAdjustmentRed": 0,
      "ParametricMidtoneSplit": 50,
      "PostCropVignetteAmount": 0,
      "LuminanceAdjustmentAqua": 0,
      "LuminanceAdjustmentBlue": "+28",
      "SaturationAdjustmentRed": 0,
      "SplitToningHighlightHue": 0,
      "LuminanceAdjustmentGreen": "+11",
      "ParametricHighlightSplit": 75,
      "SaturationAdjustmentAqua": -44,
      "SaturationAdjustmentBlue": -87,
      "ColorNoiseReductionDetail": 50,
      "LuminanceAdjustmentOrange": 0,
      "LuminanceAdjustmentPurple": 0,
      "LuminanceAdjustmentYellow": 0,
      "SaturationAdjustmentGreen": -65,
      "LensManualDistortionAmount": 0,
      "LensProfileDistortionScale": 100,
      "LensProfileVignettingScale": 100,
      "LuminanceAdjustmentMagenta": 0,
      "SaturationAdjustmentOrange": -16,
      "SaturationAdjustmentPurple": -37,
      "SaturationAdjustmentYellow": -60,
      "SaturationAdjustmentMagenta": 0,
      "SplitToningShadowSaturation": 17,
      "ColorNoiseReductionSmoothness": 50,
      "SplitToningHighlightSaturation": 0,
      "VignetteCorrectionAlreadyApplied": true,
      "DistortionCorrectionAlreadyApplied": true,
      "LateralChromaticAberrationCorrectionAlreadyApplied": true
    },
    "EXIF": {
      "ISO": 100,
      "Make": "SONY",
      "Flash": "Off, Did not fire",
      "Model": "ILCE-7M2",
      "FNumber": 4.5,
      "Contrast": "Low",
      "LensInfo": "55mm f/1.8",
      "Software": "Adobe Photoshop Lightroom Classic 10.0 (Macintosh)",
      "LensModel": "FE 55mm F1.8 ZA",
      "SceneType": "Directly photographed",
      "Sharpness": "Normal",
      "ColorSpace": "sRGB",
      "CreateDate": "2016:09:26 00:27:07",
      "FileSource": "Digital Camera",
      "ModifyDate": "2020:11:21 15:54:31",
      "OffsetTime": "+01:00",
      "Saturation": "Normal",
      "Compression": "JPEG (old-style)",
      "ExifVersion": "0231",
      "FocalLength": "55.0 mm",
      "LightSource": "Unknown",
      "XResolution": 240,
      "YResolution": 240,
      "ExposureMode": "Auto",
      "ExposureTime": "1/250",
      "MeteringMode": "Multi-segment",
      "WhiteBalance": "Auto",
      "ApertureValue": 4.5,
      "CustomRendered": "Normal",
      "ResolutionUnit": "inches",
      "ThumbnailImage": "(Binary data 8639 bytes, use -b option to extract)",
      "BrightnessValue": 7.84140625,
      "ExposureProgram": "Aperture-priority AE",
      "SensitivityType": "Recommended Exposure Index",
      "ThumbnailLength": 8639,
      "ThumbnailOffset": 942,
      "DateTimeOriginal": "2016:09:26 00:27:07",
      "DigitalZoomRatio": 1,
      "MaxApertureValue": 1.8,
      "SceneCaptureType": "Standard",
      "ShutterSpeedValue": "1/250",
      "ExposureCompensation": 0,
      "FocalPlaneXResolution": 1675.257385,
      "FocalPlaneYResolution": 1675.257385,
      "FocalLengthIn35mmFormat": "55 mm",
      "FocalPlaneResolutionUnit": "cm",
      "RecommendedExposureIndex": 100
    },
    "IPTC": {
      "DateCreated": "2016:09:26",
      "TimeCreated": "00:27:07",
      "CodedCharacterSet": "UTF8",
      "DigitalCreationDate": "2016:09:26",
      "DigitalCreationTime": "00:27:07",
      "ApplicationRecordVersion": 4
    },
    "APP14": {
      "APP14Flags0": "[14], Encoded with Blend=1 downsampling",
      "APP14Flags1": "(none)",
      "ColorTransform": "YCbCr",
      "DCTEncodeVersion": 100
    },
    "Composite": {
      "FOV": "36.2 deg",
      "LensID": "FE 55mm F1.8 ZA",
      "Aperture": 4.5,
      "ImageSize": "1500x1000",
      "LightValue": 12.3,
      "Megapixels": 1.5,
      "ShutterSpeed": "1/250",
      "DateTimeCreated": "2016:09:26 00:27:07",
      "FocalLength35efl": "55.0 mm (35 mm equivalent: 55.0 mm)",
      "ScaleFactor35efl": 1,
      "SubSecModifyDate": "2020:11:21 15:54:31+01:00",
      "CircleOfConfusion": "0.030 mm",
      "HyperfocalDistance": "22.37 m",
      "DigitalCreationDateTime": "2016:09:26 00:27:07"
    },
    "Photoshop": {
      "IPTCDigest": "037755993dc65d9b6f0129c241dab655",
      "XResolution": 240,
      "YResolution": 240,
      "DisplayedUnitsX": "inches",
      "DisplayedUnitsY": "inches",
      "PhotoshopThumbnail": "(Binary data 8639 bytes, use -b option to extract)"
    },
    "ICC_Profile": {
      "RedTRC": "(Binary data 2060 bytes, use -b option to extract)",
      "BlueTRC": "(Binary data 2060 bytes, use -b option to extract)",
      "CMMFlags": "Not Embedded, Independent",
      "GreenTRC": "(Binary data 2060 bytes, use -b option to extract)",
      "Luminance": "76.03647 80 87.12462",
      "ProfileID": 0,
      "Technology": "Cathode Ray Tube Display",
      "DeviceModel": "sRGB",
      "ProfileClass": "Display Device Profile",
      "DeviceMfgDesc": "IEC http://www.iec.ch",
      "ColorSpaceData": "RGB ",
      "ProfileCMMType": "Linotronic",
      "ProfileCreator": "Hewlett-Packard",
      "ProfileVersion": "2.1.0",
      "DeviceModelDesc": "IEC 61966-2.1 Default RGB colour space - sRGB",
      "MediaBlackPoint": "0 0 0",
      "MediaWhitePoint": "0.95045 1 1.08905",
      "PrimaryPlatform": "Microsoft Corporation",
      "ProfileDateTime": "1998:02:09 06:49:00",
      "RedMatrixColumn": "0.43607 0.22249 0.01392",
      "RenderingIntent": "Perceptual",
      "ViewingCondDesc": "Reference Viewing Condition in IEC61966-2.1",
      "BlueMatrixColumn": "0.14307 0.06061 0.7141",
      "DeviceAttributes": "Reflective, Glossy, Positive, Color",
      "MeasurementFlare": "0.999%",
      "ProfileCopyright": "Copyright (c) 1998 Hewlett-Packard Company",
      "GreenMatrixColumn": "0.38515 0.71687 0.09708",
      "DeviceManufacturer": "Hewlett-Packard",
      "MeasurementBacking": "0 0 0",
      "ProfileDescription": "sRGB IEC61966-2.1",
      "MeasurementGeometry": "Unknown",
      "MeasurementObserver": "CIE 1931",
      "ViewingCondSurround": "3.92889 4.07439 3.36179",
      "ProfileFileSignature": "acsp",
      "MeasurementIlluminant": "D65",
      "ViewingCondIlluminant": "19.6445 20.3718 16.8089",
      "ProfileConnectionSpace": "XYZ ",
      "ConnectionSpaceIlluminant": "0.9642 1 0.82491",
      "ViewingCondIlluminantType": "D50"
    }
  },
  "camera": {
    "name": "a7 II",
    "make": "Sony",
    "slug": "a7ii",
    "has_photo": true,
    "image_url": "https://pixelpeeper.nyc3.digitaloceanspaces.com/cameras/sony/a7ii.png",
    "make_slug": "sony"
  },
  "lens": {
    "exif_name": "FE 55mm F1.8 ZA",
    "slug": "fe-55mm-f1-8-za",
    "name": "Sony Sonnar T* FE 55mm f/1.8 ZA"
  }
}

Get access to the API

For more details and unlimited access, please contact us at help@pixelpeeper.com.