MetaDropbrowser labRead the contract

Local-first image metadata workbench

Know what an image carries. Drop what it shouldn’t.

Inspect a whole image set, remove private container data without touching encoded pixels, and leave with cleaned files plus proof of what changed.

Automate with the API

No account · no upload · source files stay read-only

01Tab-local

Files never cross the network.

02Payload-safe

Encoded pixels remain unchanged.

03Batch-native

Files, folders, ZIP + manifest.

04Fail-closed

Unsafe formats stay inspect-only.

01 / Browser workbench

Bring the whole folder.

Deep inspection for common web containers, basic facts for everything else. MetaDrop only enables cleaning when it can preserve the image payload.

Drop images or a folder here

Up to 200 files per local batch. Nothing is uploaded.

DEEP READJPEGPNGWebPGIF+basic facts elsewhere
LOCAL QUEUE

Waiting for images

0 B source0 sensitive0 verified
Ready for local files — nothing is uploaded.

Your inspection table will appear here.

Each row shows the file, detected container, embedded fields, privacy flags, cleanability, and verification result.

02 / Format contract

Honest support beats an “all formats” badge.

Every container gets an explicit capability. If MetaDrop cannot validate a byte-safe rewrite, the workbench shows what it can and leaves the file untouched.

FormatInspectionBrowser cleanPreservation contract
JPEGEXIF · GPS · XMP · IPTC · C2PALosslessCompressed scan data and ICC color stay untouched; orientation is retained.
PNG / APNGText · EXIF · time · density · C2PALosslessIDAT and animation frames stay byte-identical; display color chunks remain.
WebPEXIF · XMP · ICC · animationLosslessVP8, VP8L, and ANIM payloads remain unchanged.
GIFComments · XMP · application blocksLosslessFrames, palettes, timing, and loop behavior are preserved.
TIFFCommon TIFF / EXIF fieldsInspect onlyNo browser rewrite when the container cannot be validated safely.
AVIF · HEIC · RAWFile facts where the browser can decodeInspect onlyUse the API capability endpoint before production processing.

Heads up Removing C2PA content credentials changes provenance state. MetaDrop reports the removal explicitly; it never markets provenance changes as detector evasion.

03 / Production API contract

The same contract,
one request.

Move from a browser check to repeatable media hygiene in CI, ingestion pipelines, DAMs, and upload services. Jobs return partial per-file results instead of hiding one failure behind the whole batch.

Implemented by the included Axum service. Run cargo run -p metadrop-api to use this exact contract on port 8080.

curl · async batch
curl -X POST https://metaclean.help/api/v1/batches \
  -H "Authorization: Bearer $METADROP_API_KEY" \
  -F "files=@campaign/hero.jpg" \
  -F "files=@campaign/card.png" \
  -F 'options={"policy":"privacy-v1","failure_policy":"best_effort","verify":true};type=application/json'

# 202 Accepted
{
  "id": "job_019f…",
  "operation": "clean",
  "status": "queued",
  "progress": { "total": 2, "completed": 0, "succeeded": 0, "failed": 0 },
  "links": {
    "self": "/api/v1/batches/job_019f…",
    "report": "/api/v1/batches/job_019f…/report",
    "download": null
  }
}
POST/api/v1/images/inspect

Inspect one multipart image

POST/api/v1/images/clean

Clean one image synchronously

POST/api/v1/batches

Queue a multi-file job · 202

GET/api/v1/batches/{job_id}

Poll partial per-file results

GET/api/v1/batches/{job_id}/download

Download result archive

DELETE/api/v1/batches/{job_id}

Delete job and retained files

04 / Processing pipeline

Evidence at every handoff.

The browser path is deliberately small: identify the real container, inventory its metadata, rewrite only approved blocks, then parse the output again.

  1. 01
    Sniff the bytes

    File signatures, not extensions, decide the parser. Mislabeled files fail closed.

  2. 02
    Inventory fields

    Group EXIF, GPS, XMP, IPTC, text, color, and provenance before changing anything.

  3. 03
    Rewrite the container

    Drop approved metadata blocks while copying compressed pixels and animation byte-for-byte.

  4. 04
    Verify + manifest

    Re-inspect outputs, hash every result, and package the evidence beside the files.

Your files. Your policy. Your proof.

Ready to make the invisible reviewable?