To use the AI Photo Detect API, you need an API key. Your API key is used to authenticate all API requests and should be kept secure.
Your API key will have the format: apd_live_...
Include your API key in the Authorization header for all API requests:
Authorization: Bearer apd_live_your_api_key_here
| Plan | Price | Checks/Month | Extra Check Price | Features |
|---|---|---|---|---|
| Free (14-day trial) | $0/month | 100 images | - | history |
| Starter | $25/month | 1,000 images | $0.015 | + spending alerts |
| Basic | $99/month | 10,000 images | $0.010 | + better support |
| Pro | $299/month | 100,000 images | $0.005 | + spending alerts and caps, monitoring, premium support |
| Enterprise | Custom | Unlimited | N/A | + SSO, audit log |
Single endpoint for image detection. Supports both URL-based and file upload methods. Can process multiple detection services in one request.
Endpoint
https://api.aiphotodetect.com/v1/detect
Request
curl -X POST "https://api.aiphotodetect.com/v1/detect" \-H "Authorization: Bearer apd_live_your_api_key_here" \-H "Content-Type: application/json" \-d '{"services": "ai-photo-detect,self-harm,nudity","url": "https://example.com/image.jpg"}'
Response (200 OK)
{"success": true,"services": {"ai-photo-detect": {"isAiGenerated": true,"confidenceScore": 85.5,"provider": "hf-api-da6-frid"},"self-harm": {"detected": false},"nudity": {"detected": true}},"photo": {"id": "cm56abc123xyz","status": "COMPLETED"},"processingTimeMs": 1250}
Endpoint
https://api.aiphotodetect.com/v1/detect
Request
curl -X POST "https://api.aiphotodetect.com/v1/detect" \-H "Authorization: Bearer apd_live_your_api_key_here" \-F "services=ai-photo-detect,self-harm,nudity" \-F "file=@/path/to/image.jpg"
Response (200 OK)
{"success": true,"services": {"ai-photo-detect": {"isAiGenerated": false,"confidenceScore": 12.3,"provider": "hf-api-da6-frid"},"self-harm": {"detected": true},"nudity": {"detected": false}},"photo": {"id": "cm57def456ghi","status": "COMPLETED"},"processingTimeMs": 2150}
ai-photo-detect - AI-generated image detection (default)self-harm - Self-harm content detection (coming soon)nudity - Nudity content detection (coming soon)Note: You can request one or more services by separating them with commas.
400 Bad Request
{"statusCode": 400,"error": "Bad Request","message": "Invalid services: unknown-service. Available: ai-photo-detect,self-harm,nudity"}
401 Unauthorized
{"statusCode": 401,"error": "Unauthorized","message": "Invalid or missing API key"}
Retrieve paginated list of your detection history.
https://api.aiphotodetect.com/v1/history?page=1&perPage=50
Authorization: Bearer apd_live_your_api_key_here
{"data": [{"requestId": "cm57xyz789abc","result": 92,"processed": "2025-12-31 23:59:59"}],"meta": {"pagination": {"currentPage": 1,"perPage": 50,"totalRecords": 150,"totalPages": 3,"hasNextPage": true,"hasPreviousPage": false}}}
Retrieve detailed information about a specific detection result.
https://api.aiphotodetect.com/v1/history/cm57xyz789abc
Authorization: Bearer apd_live_your_api_key_here
{"data": {"requestId": "cm57xyz789abc","result": 92,"processed": "2025-12-31 23:59:59","details": {"isAiGenerated": false,"confidenceScore": 0.92,"detectionModel": "hf-api-da6-frid","processingTimeMs": 1250,"analyzedAt": "2024-01-15T10:31:30.000Z","photo": {"id": "cm56abc123xyz","originalFilename": "vacation-photo.jpg","fileSize": "2048576","mimeType": "image/jpeg","dimensions": {"width": 1920,"height": 1080},"status": "COMPLETED"}}}}
Examples showing how to call the first endpoint to get a presigned S3 URL.
curl -X POST https://api.aiphotodetect.com/v1/detection \-H "Authorization: Bearer apd_live_your_api_key_here" \-H "Content-Type: application/json" \-d '{"fileName": "vacation-photo.jpg","fileType": "image/jpeg","fileSize": 2048576}'
• Visit your Dashboard to monitor your usage
• Contact support for Enterprise plan inquiries