API Documentation
Plug the Sightova v1 API into your app in under five minutes. Four detection endpoints, three input modes, consistent JSON responses.
Step 01
Quick start
Get your first detection in under a minute.
- Create an account at /auth/signup. First 10 scans/month are free.
- Go to dashboard → API Keys and create a key.
- Make a request to
POST /api/v1/detect/ai:
curl -X POST 'https://sightova.com/api/v1/detect/ai' \
-H 'X-API-Key: sk_<your-key>' \
-H 'Content-Type: application/json' \
-d '{"image_url": "https://example.com/photo.jpg"}'Don't want to manage API keys?
Subscribe via the RapidAPI marketplace — RapidAPI handles the key, quotas and Stripe billing for you.
Not a developer?
Use Sightova inside any Zapier workflow — no code required. Free tier includes 10 scans/month.
Step 02
Authentication
Pick whichever fits your stack — both modes hit the same endpoints.
Get an API key in your dashboard (keys start with sk_) and pass it as either header:
X-API-Key: sk_5fd9...3d2c
# or equivalently
Authorization: Bearer sk_5fd9...3d2cEach request consumes one scan from your monthly quota. Limits and overage rules follow your Sightova plan.
Step 03
Endpoints
Four detection endpoints, all under /api/v1.
/api/v1/detect/ai10 operations / requestDetect AI-generated images (Midjourney, DALL·E, Stable Diffusion, Sora and friends) vs. real photographs. Returns probability scores and a confidence-graded verdict.
curl -X POST 'https://sightova.com/api/v1/detect/ai' \
-H 'X-API-Key: sk_<your-key>' \
-H 'Content-Type: application/json' \
-d '{"image_url": "https://example.com/photo.jpg"}'Example response
{
"request_id": "req_5oQjGqU4mB2nQp9Hg7vTz",
"endpoint": "/api/v1/detect/ai",
"detection_type": "image moderation",
"media": {
"id": "med_x7uJq2eDjKpVnNl0aHsRt",
"source": "url",
"filename": "photo.jpg",
"mime": "image/jpeg",
"size_bytes": 124530,
"width": 1024,
"height": 768
},
"result": {
"ai_probability": 0.94,
"real_probability": 0.06,
"confidence": 0.88,
"verdict": "ai-generated"
},
"metadata": {
"exif": {},
"warnings": []
},
"processing_time_ms": 412,
"rapidapi": null
}Step 04
Request body
Three input modes. Pick the one that fits your stack.
image_urlJSONPass a publicly-accessible URL. We fetch and analyze the image.
Content-Type: application/json
{"image_url": "https://example.com/photo.jpg"}image (file)multipartUpload the image directly as multipart/form-data. Field name must be image.
Content-Type: multipart/form-data image=@/path/to/photo.jpg
image_base64JSONEmbed the image inline as base64. Supports data:image/...;base64,... prefix.
Content-Type: application/json
{"image_base64": "iVBORw0KGgoAAAA..."}Limits: images must be JPEG, PNG, GIF or WebP. Maximum 50 MB.
SSRF protection: image_url values targeting localhost or private IP ranges are blocked.
Step 05
Response shape
Every endpoint returns the same envelope — only the result field differs.
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique ID for this request. Format: req_xxx. |
| endpoint | string | Echo of the endpoint path. |
| detection_type | string | e.g. "image moderation", "nsfw moderation", "violence moderation", "document tampering". |
| media | object | Information about the analyzed image: id, source, filename, mime, size_bytes, width, height. |
| result | object | Endpoint-specific result fields. See the example responses above. |
| metadata | object | null | EXIF and other extracted metadata, or null on failure. |
| processing_time_ms | number | Server-side processing time in milliseconds. |
| rapidapi | object | null | Present only for RapidAPI gateway calls: { user, plan }. |
Step 06
Content Credentials (C2PA)
When an image carries a cryptographically signed C2PA manifest, we use it to harden the verdict.
Several AI generators (OpenAI DALL·E, Adobe Firefly, Microsoft Designer, Google Imagen, Black Forest Labs Flux) and hardware cameras (Sony, Leica, Canon, Nikon) embed C2PA Content Credentials — a cryptographically signed manifest recording who made the image, with what tool, and what edits were applied.
When the manifest validates against a trusted certificate chain AND identifies a known generator or device, Sightova overrides the pixel classifier with this ground truth. You'll see a new result.provenance_signal object in the response.
Manifest with digitalSourceType = trainedAlgorithmicMedia → verdict = ai-generated, ai_probability ≥ 0.99.
Validated hardware capture from Sony / Leica / Canon → verdict = real, real_probability ≥ 0.95.
Photoshop / Lightroom / Premiere in the action chain → verdict = tampered.
Validated capture with no edits recorded → verdict = clean.
Manifests that fail signature validation (missing intermediate cert, expired, etc.) attach an advisory provenance_signal but do not override the classifier — we never weaken the verdict on untrusted data.
"result": {
"ai_probability": 0.99,
"real_probability": 0.01,
"confidence": 0.99,
"verdict": "ai-generated",
"provenance_signal": {
"source": "c2pa",
"verdict": "ai-generated",
"generator": "OpenAI DALL-E 3",
"signed_at": "2026-04-15T12:34:00Z",
"validation_state": "Valid",
"signature_trusted": true,
"digital_source_type": "trainedAlgorithmicMedia",
"confidence": 0.99,
"classifier_disagreed": false,
"overrode_classifier": true,
"explanation": "C2PA manifest signed by OpenAI DALL-E 3 with digitalSourceType=trainedAlgorithmicMedia"
}
}Step 07
Error codes
Errors always return { error: string, request_id: string }.
| Status | Name | Description |
|---|---|---|
| 400 | Bad Request | Invalid input — missing image, unsupported format, unreachable URL, or invalid base64. |
| 401 | Unauthorized | Missing authentication. Provide X-RapidAPI-Proxy-Secret (gateway), X-API-Key, or a valid session. |
| 403 | Forbidden | Invalid RapidAPI proxy secret. Check the secret in your RapidAPI dashboard matches the server env. |
| 429 | Too Many Requests | You've hit your monthly Sightova quota. Upgrade your plan or wait until next month. |
| 500 | Internal Server Error | Unexpected server-side failure. Try again or contact support. |
| 502 | Bad Gateway | The detection model itself failed to process the image. Retry with a different image. |
Step 08
Rate limits & plans
Limits depend on where you got your key.
Direct API keys
Limits follow your Sightova plan. Hitting the quota returns 429.
- Free50 / month
- Starter300 / month
- Premium1,000 / month
- EnterpriseCustom
RapidAPI plans
Managed by RapidAPI's gateway. Overage billing available on paid tiers.
- BASIC50 / month · free
- PRO1,000 / month · $29
- ULTRA10,000 / month · $149
- MEGA100,000 / month · $899
Ready to build?
Start free with 10 scans/month. No credit card required.