AIGC Compliance AIGC Compliance
  • Home
  • Features
  • Pricing
  • Documentation
  • Contact
Sign In Get Started

Bulk Watermarking API

Process thousands of AI-generated images automatically. Batch watermarking at scale with custom text, logos, and concurrent processing. Built for high-volume applications.

50ms Per Image
20/sec Concurrent Requests
1,200 Images/Minute
10MB Max File Size

⚡ Why Bulk Watermarking Matters

Manual watermarking: 5 minutes per image
Our API: 0.05 seconds per image

Process 1,000 images in under a minute. Save 83+ hours of manual work. Scale your AI content workflow without hiring more staff.

🚀 Bulk Processing Made Simple

Our REST API is designed for high-throughput watermarking. Make concurrent requests to process thousands of images simultaneously.

# Python: Batch watermark 1000 images with concurrent requests
import requests
from concurrent.futures import ThreadPoolExecutor
import os

API_URL = "https://aigc-compliance-api-production.up.railway.app/comply"
API_KEY = "YOUR_API_KEY"
headers = {"Authorization": f"Bearer {API_KEY}"}

def watermark_image(image_path):
    """Watermark a single image"""
    with open(image_path, "rb") as f:
        files = {"file": f}
        data = {
            "region": "EU",
            "watermark_text": "AI Generated",
            "watermark_position": "bottom-right"
        }
        response = requests.post(API_URL, headers=headers, files=files, data=data)
        return response.json()

# Get all images in directory
image_files = [f for f in os.listdir("ai_images/") if f.endswith((".jpg", ".png"))]

# Process 20 images concurrently (adjust based on your plan)
with ThreadPoolExecutor(max_workers=20) as executor:
    results = list(executor.map(watermark_image, image_files))

print(f"Processed {len(results)} images")
# Total time for 1000 images: ~50 seconds

💪 Built for Scale

⚡ Concurrent Processing

Process up to 20 images simultaneously. No queuing, instant results.

🔄 Automatic Retry

Built-in retry logic for failed requests. Never lose an image.

📊 Progress Tracking

Monitor processing status in real-time. Know exactly what's done.

💾 Batch Download

Get all processed images via download URLs. Automatic cleanup after 24h.

🎨 Consistent Branding

Apply same watermark to all images. Custom text and logos supported.

🔒 Enterprise Security

Rate limiting, file validation, secure storage. GDPR compliant.

📈 Performance at Scale

Processing Speed Comparison

❌ Manual Watermarking
  • 5 minutes per image
  • 12 images per hour
  • 1,000 images = 83 hours
  • Cost: $4,150 (at $50/hour)
✅ Our Bulk API
  • 0.05 seconds per image
  • 1,200 images per hour
  • 1,000 images = 50 seconds
  • Cost: $29-499/month

ROI: Save 99.99% of processing time

💻 Integration Examples

Node.js: Batch Processing

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs').promises;
const path = require('path');

async function bulkWatermark(imageDir) {
  const API_URL = 'https://aigc-compliance-api-production.up.railway.app/comply';
  const API_KEY = 'YOUR_API_KEY';
  
  // Get all images
  const files = await fs.readdir(imageDir);
  const imageFiles = files.filter(f => /\.(jpg|jpeg|png)$/i.test(f));
  
  // Process in batches of 20
  const batchSize = 20;
  const results = [];
  
  for (let i = 0; i < imageFiles.length; i += batchSize) {
    const batch = imageFiles.slice(i, i + batchSize);
    
    const promises = batch.map(async (filename) => {
      const form = new FormData();
      const filePath = path.join(imageDir, filename);
      form.append('file', await fs.readFile(filePath), filename);
      form.append('region', 'EU');
      form.append('watermark_text', 'AI Generated');
      
      const response = await axios.post(API_URL, form, {
        headers: {
          'Authorization': `Bearer ${API_KEY}`,
          ...form.getHeaders()
        }
      });
      
      return { filename, url: response.data.download_url };
    });
    
    const batchResults = await Promise.all(promises);
    results.push(...batchResults);
    console.log(`Processed ${results.length}/${imageFiles.length} images`);
  }
  
  return results;
}

// Usage
bulkWatermark('./ai_images').then(results => {
  console.log(`✅ Watermarked ${results.length} images`);
  console.log(results);
});

PHP: Bulk Processing Script

<?php
function bulkWatermark($imageDir) {
    $apiUrl = 'https://aigc-compliance-api-production.up.railway.app/comply';
    $apiKey = 'YOUR_API_KEY';
    
    $files = glob($imageDir . '/*.{jpg,jpeg,png}', GLOB_BRACE);
    $results = [];
    
    // Process in batches
    $batchSize = 20;
    $batches = array_chunk($files, $batchSize);
    
    foreach ($batches as $batch) {
        $multiCurl = curl_multi_init();
        $curlHandles = [];
        
        foreach ($batch as $file) {
            $ch = curl_init();
            $cfile = new CURLFile($file);
            
            curl_setopt_array($ch, [
                CURLOPT_URL => $apiUrl,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_POST => true,
                CURLOPT_HTTPHEADER => ["Authorization: Bearer $apiKey"],
                CURLOPT_POSTFIELDS => [
                    'file' => $cfile,
                    'region' => 'EU',
                    'watermark_text' => 'AI Generated'
                ]
            ]);
            
            curl_multi_add_handle($multiCurl, $ch);
            $curlHandles[] = $ch;
        }
        
        // Execute all requests simultaneously
        $running = null;
        do {
            curl_multi_exec($multiCurl, $running);
        } while ($running);
        
        // Collect results
        foreach ($curlHandles as $ch) {
            $response = curl_multi_getcontent($ch);
            $results[] = json_decode($response);
            curl_multi_remove_handle($multiCurl, $ch);
        }
        
        curl_multi_close($multiCurl);
        echo "Processed " . count($results) . "/" . count($files) . " images\n";
    }
    
    return $results;
}

$results = bulkWatermark('./ai_images');
echo "✅ Watermarked " . count($results) . " images\n";
?>

🎯 Perfect For

🏢 Marketing Agencies

Process hundreds of AI-generated campaign images for multiple clients. Custom watermarks with client logos. Bulk processing saves 40+ hours per campaign.

🛍️ E-commerce Platforms

Watermark product images at scale. Process entire catalogs (1000+ images) in minutes. Integrate with your product upload workflow.

📰 Media Publishers

Batch watermark AI-generated news images. Process daily uploads automatically. Comply with EU and China transparency regulations.

🎨 Design Studios

Watermark client projects in bulk. Custom text and logos per client. Professional branding at scale.

📸 Stock Image Platforms

Process thousands of user uploads automatically. Mark all AI content with visible watermarks. Regulatory compliance at scale.

Start Bulk Watermarking Today

Free plan includes 100 API calls. Upgrade to process 10,000+ images per month.

Get Your Free API Key

❓ Bulk Processing FAQ

How many images can I process simultaneously?

Up to 20 concurrent requests recommended for optimal performance. Higher concurrency may trigger rate limits.

What happens if a request fails?

The API returns detailed error messages. Implement retry logic in your application for failed requests.

Is there a bulk discount?

Yes! Enterprise plan ($499/month) includes 500,000 calls. Contact us for custom pricing above 500k/month.

Can I process images from S3/cloud storage?

Yes, download images from your storage and send to our API. We don't currently support direct cloud storage URLs.

How long are processed images stored?

24 hours. Download processed images immediately. After 24h, images are automatically deleted (GDPR compliant).

Can I use different watermarks for different images?

Yes! Each API request can specify different watermark text, position, and logo. Full flexibility per image.

📊 Pricing for Bulk Processing

  • Free: 100 total calls (lifetime) - Perfect for testing - Sync only (slower)
  • Starter ($29/mo): 10,000 calls/month - ~333 images/day - Sync only
  • Professional ($99/mo): 50,000 calls/month - ~1,666 images/day - ⚡ Async processing (~250ms per call)
  • Enterprise ($499/mo): 500,000 calls/month - ~16,666 images/day - 🚀 Priority async queue

💡 Pro Tip: Use async endpoints (Professional+) for bulk processing - 90% faster than sync processing. Process thousands of images without blocking your application.

→ View Full Pricing Details

Process thousands of images in minutes, not hours

Start Bulk Watermarking