Skip to content
Performance

Best Practices for Working with Images

Follow these best practices to maximize performance, reduce bandwidth usage and improve throughput when working with the Copyleaks AI Image Detection API.

Always use multipart/form-data instead of JSON with base64 encoding:

  • Smaller payload size: Avoids 33% base64 encoding overhead
  • Faster uploads: Direct binary transfer is more efficient
  • Better memory usage: Reduces processing overhead

Add this header to your requests to reduce response size:

Accept-Encoding: gzip

Image detection results can include large RLE masks. Most HTTP clients automatically decompress gzip responses.

The API has rate limits to ensure optimal performance:

  • 900 requests per 15 minutes per host
  • 10 requests per second per user (default)

Send images at a steady rate rather than in bursts, and implement retry logic with exponential backoff when rate limits are reached.

For higher throughput, distribute uploads across multiple servers. Each server can independently send up to 900 requests per 15 minutes, allowing parallel processing of large image batches.

JWT tokens are valid for 48 hours:

  • Cache and reuse tokens for multiple requests
  • Refresh before the 48-hour window ends
  • Avoid calling the login API for every image submission

Submit images in their original form for accurate AI detection results.

Avoid:

  • ❌ Resizing or cropping
  • ❌ Recompressing or converting formats
  • ❌ Applying filters or adjustments

Best practice: Submit the exact image file as received or captured, preserving EXIF metadata and original format. AI-generated images have subtle patterns in pixel data that can be lost through manipulation.

✅ Use multipart/form-data format
✅ Enable response compression with Accept-Encoding: gzip
✅ Submit at a steady rate (under 900/15min per host, 10/sec per user)
Distribute load across multiple servers for higher throughput
Reuse authentication tokens for up to 48 hours
Submit original images without modifications