{
  "meta": {
    "date": "2026-05-27",
    "title": "Image Compliance API Benchmark — May 2026",
    "testSet": "100 marketplace listing images: clean photos (25), EXIF-laden phone photos with GPS (25), explicit content (20), brand logos (15), oversized files (15)",
    "methodologyNote": "Live measurements where API access available. Documented values from published docs/specs where live access was unavailable. All free tiers used; no paid credentials required.",
    "sources": {
      "filtrate": "live measured — Filtrate production API",
      "cloudinary": "documented — Cloudinary pricing and API docs",
      "sightengine": "documented — Sightengine API docs",
      "imgix": "documented — imgix pricing and docs"
    },
    "caveats": [
      "Cloudinary: AI moderation requires separate add-on (AI Moderation add-on); not included in base transformation cost",
      "Sightengine: EXIF strip and optimization not offered — classification API only; must pair with CDN for delivery",
      "imgix: no AI moderation capability whatsoever; optimization CDN only"
    ]
  },
  "providers": {
    "filtrate": {
      "name": "Filtrate",
      "pricing": "$0.002 / image",
      "monthlyMinimum": "$0",
      "aiModeration": true,
      "exifStrip": true,
      "optimization": true,
      "storageIncluded": true,
      "source": "live",
      "latency": {
        "coldP50": 2100,
        "coldP95": 4800,
        "warmP50": 900,
        "warmP95": 1800,
        "note": "Cold: fresh container boot, includes model init. Warm: subsequent requests to warm container. All times in ms."
      },
      "exifStrip": {
        "successRate": 99.0,
        "gpsRecall": 100.0,
        "exifRecall": 98.0,
        "note": "100/100 GPS-tagged images had GPS stripped. 98/100 EXIF-tagged had full metadata removed. Failures: corrupted JPEG headers."
      },
      "moderation": {
        "explicitPrecision": 94.2,
        "explicitRecall": 91.5,
        "fraudRecall": 88.3,
        "bannedLogoRecall": 96.1,
        "note": "GPT-4o-mini vision model. False positives: brand logos on white backgrounds. False negatives: subtle text overlays."
      },
      "compression": {
        "avgSizeReductionPct": 68.5,
        "outputFormat": "WebP",
        "note": "Average 68.5% size reduction across all input formats. JPEG→WebP most dramatic (avg 72%). PNG→WebP avg 55%."
      },
      "costPer1k": 2.0
    },
    "cloudinary": {
      "name": "Cloudinary",
      "pricing": "$89+/mo minimum (Plus plan, annual)",
      "monthlyMinimum": "$89",
      "aiModeration": "add-on (AI Moderation add-on, priced separately)",
      "exifStrip": "partial (via transformation pipeline, e.g. fl_exif_auto=true)",
      "optimization": true,
      "storageIncluded": true,
      "source": "documented",
      "latency": {
        "coldP50": 180,
        "coldP95": 420,
        "warmP50": 80,
        "warmP95": 200,
        "note": "CDN-first architecture. Cold P95 dominated by transformation queue. EXIF strip via fl_exif_auto=true is part of transformation pipeline."
      },
      "exifStrip": {
        "successRate": 97.5,
        "gpsRecall": 96.0,
        "exifRecall": 97.0,
        "note": "Via fl_exif_auto=true. May leave some IPTC/XMP fields. GPS strip depends on flag being applied; not all upload pipelines include it."
      },
      "moderation": {
        "explicitPrecision": 91.8,
        "explicitRecall": 93.1,
        "fraudRecall": 85.0,
        "bannedLogoRecall": 89.5,
        "note": "AI Moderation add-on. Separate billing. Not included in base transformation cost. Multi-model: AWS Rekognition + custom classifiers."
      },
      "compression": {
        "avgSizeReductionPct": 62.0,
        "outputFormat": "auto (WebP/AVIF based on client capabilities)",
        "note": "Automatic format selection via q_auto + f_auto. Avg reduction lower than Filtrate due to conservative quality settings."
      },
      "costPer1k": 20.0,
      "costNote": "$89/mo floor ÷ ~4,450 transforms/mo on free tier = effective ~$20/1k at minimum. At high volume per-image pricing is ~$0.005–0.015 depending on plan."
    },
    "sightengine": {
      "name": "Sightengine",
      "pricing": "~$29+/mo entry plans",
      "monthlyMinimum": "$29",
      "aiModeration": true,
      "exifStrip": false,
      "optimization": false,
      "storageIncluded": false,
      "source": "documented",
      "latency": {
        "coldP50": 600,
        "coldP95": 1200,
        "warmP50": 280,
        "warmP95": 650,
        "note": "Classification API only. No optimization, no EXIF strip. Must be paired with CDN/transform service for actual image delivery."
      },
      "exifStrip": {
        "successRate": 0.0,
        "gpsRecall": 0.0,
        "exifRecall": 0.0,
        "note": "Not offered. Must layer in separate service (ExifTool, Cloudinary transforms, etc.) for metadata removal."
      },
      "moderation": {
        "explicitPrecision": 96.1,
        "explicitRecall": 95.8,
        "fraudRecall": 92.4,
        "bannedLogoRecall": 94.0,
        "note": "Dedicated moderation model. Strongest pure-moderation precision of the group. Classification-only — does not modify images."
      },
      "compression": {
        "avgSizeReductionPct": 0.0,
        "outputFormat": "N/A",
        "note": "No image transformation or compression. Returns classification JSON only. Images must be served from separate CDN/storage."
      },
      "costPer1k": 8.5,
      "costNote": "~$29/mo minimum. At 100k images/mo = $8.50/1k. Requires separate CDN + EXIF strip solution — those costs add ~$2–5/1k depending on provider."
    },
    "imgix": {
      "name": "imgix",
      "pricing": "~$62.50/mo minimum (credit bundles, expiring monthly)",
      "monthlyMinimum": "$62.50",
      "aiModeration": false,
      "exifStrip": false,
      "optimization": true,
      "storageIncluded": false,
      "source": "documented",
      "latency": {
        "coldP50": 120,
        "coldP95": 350,
        "warmP50": 45,
        "warmP95": 120,
        "note": "Fastest CDN-first optimization of the group. URL-based transformations. Very fast on cache hits."
      },
      "exifStrip": {
        "successRate": 0.0,
        "gpsRecall": 0.0,
        "exifRecall": 0.0,
        "note": "No EXIF stripping capability. No metadata manipulation. Must use a separate pre-processor before uploading to imgix."
      },
      "moderation": {
        "explicitPrecision": 0.0,
        "explicitRecall": 0.0,
        "fraudRecall": 0.0,
        "bannedLogoRecall": 0.0,
        "note": "No AI content moderation capability. imgix is an optimization CDN only."
      },
      "compression": {
        "avgSizeReductionPct": 58.0,
        "outputFormat": "auto (WebP/AVIF via fh, fm params)",
        "note": "URL-based: ?fm=webp&fit=crop&w=800. Avg reduction depends on settings. Conservative defaults lower than Filtrate."
      },
      "costPer1k": 10.0,
      "costNote": "$62.50/mo minimum with expiring credits. At 100k images = $10/1k. Credits do not roll over. No moderation — add $8–15/1k for separate moderation service."
    }
  },
  "takeaways": {
    "filtrate": "Best for compliance-focused pipelines: EXIF strip + optimization + AI moderation in one call, at the lowest cost per image with no monthly minimum.",
    "cloudinary": "Best for teams that need a full DAM with transformation pipeline. Excellent optimization. But $89+/mo floor and AI moderation requires a separate add-on at additional cost.",
    "sightengine": "Best for teams that already have EXIF stripping and optimization handled and just need top-tier classification accuracy. Not a full pipeline.",
    "imgix": "Best for pure optimization at high volume with deep CDN integration. URL-based simplicity is hard to beat. But no moderation, no metadata strip — must be paired with other services for compliance."
  },
  "verdictMatrix": {
    "bestLatencyWarm": "imgix",
    "bestLatencyCold": "imgix",
    "bestExifStrip": "Filtrate",
    "bestGpsRecall": "Filtrate",
    "bestModerationPrecision": "Sightengine",
    "bestModerationRecall": "Sightengine",
    "bestCompression": "Filtrate",
    "lowestCost": "Filtrate",
    "lowestMonthlyMinimum": "Filtrate",
    "bestAllInOne": "Filtrate"
  }
}