Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Task Types

A task type is one detection model. Every job runs exactly one task type, chosen with taskTypeId when you create the job. This page explains how to read results, which is the same for every task type, and lists all task types. Each task type also has its own page with its inputs, limits, result fields and artifacts.

Reading results

Every scored detection result carries one score, fakeConfidencePercent, and a tag derived from it using the task type's boundaries. Use fakeConfidencePercent or tag for decisions; never threshold on confidencePercent.

Result fields

FieldTypeMeaning
fakeConfidencePercentnumber, 0–100The model's estimate that the media is AI-generated or manipulated. Higher always means more likely fake. The primary score
realConfidencePercentnumber, 0–100100 - fakeConfidencePercent
confidencePercentnumber, 0–100Confidence in the returned verdict: equals realConfidencePercent when isFake is false and fakeConfidencePercent when it is true. Kept for compatibility
tagstringreal, likely_real, likely_fake or fake
tagBoundariesobjectThe boundaries that produced tag, e.g. { "real": 30, "likelyReal": 50, "likelyFake": 75 }
isFakebooleantrue when tag is likely_fake or fake
modelVersionstringVersion of the model that produced this result

Task types that don't produce a single score, such as face-intelligence and the utilities, return their own fields instead. Each task type's page says whether its results are tagged.

Tags

TagfakeConfidencePercent (default boundaries)isFakeSuggested action
real0 to 30falseAuto-accept
likely_realabove 30, up to 50falseAccept or review, depending on your risk appetite
likely_fakeabove 50, up to 75trueManual review
fakeabove 75trueAuto-reject

Boundaries are inclusive at the upper edge: exactly 50.0 is likely_real. The defaults are 30 / 50 / 75, and a task type may use its own. Read the boundaries from tagBoundaries on each result rather than hard-coding them.

Example

"result": {
  "isFake": false,
  "confidencePercent": 89.6,
  "fakeConfidencePercent": 10.4,
  "realConfidencePercent": 89.6,
  "tag": "real",
  "tagBoundaries": { "real": 30, "likelyReal": 50, "likelyFake": 75 },
  "modelVersion": "v2.1.0"
}

Things to know

  • Scores are specific to a model and its version. A score of 60 from one task type is not comparable with 60 from another.
  • Re-validate custom cutoffs after a model update. When modelVersion changes, score distributions can shift. We give notice before model changes.
  • Past results never change. The tag and boundaries are stored with each job when it runs, so retuning boundaries later doesn't alter earlier results. Jobs that ran before these fields were introduced don't have tag, tagBoundaries or modelVersion, so treat all three as optional.
  • A score near 50 is not a coin flip. It means the model is uncertain. Treat the middle tags as review cases.
  • Expect new fields. Ignore fields you don't recognize; new ones can be added without notice.

Catalog

All 12 task types are available on the cloud API; your plan decides which you can use. Pass the ID as taskTypeId when creating a job, and filter job lists by slug with taskTypeSlug.

IDSlugNameStatusUse it to…Accepted formats
1ai-image-detectionAI Image DetectorActiveCheck whether an image was AI-generatedJPEG, PNG
2ai-audio-detectionAI Audio DetectorActiveCheck whether audio is AI-generated or clonedMP3, WAV, M4A
3ai-video-detectionAI Video DetectorActiveCheck whether a video was AI-generatedMP4, MOV
4faceswap-detectionFace Swap DetectionDeprecated — use ekyc-deepfakeEarlier face-swap detectorMP4, MOV, WebM
5image-forgery-detectionImage Forgery DetectionActiveFind edited or tampered regions in a real imageJPEG, PNG
6document-intelligenceDocument Forgery DetectionActiveDetect AI generation or tampering in a document imageJPEG, PNG
7face-liveness-detectionFace Liveness DetectionActiveCheck a selfie is a live person, not a photo, screen or maskJPEG, PNG
8face-intelligenceFace IntelligenceActiveRun face-swap and liveness checks in one jobJPEG, PNG, MP4, WebM, QuickTime
9face-embeddingFace EmbeddingActiveGet a face vector for your own matching (not a detector)JPEG, PNG
10audio-splitterAudio SplitterActiveSeparate voice from background audio (not a detector)MP3, WAV, M4A
11ekyc-deepfakeeKYC Deepfake DetectionActive — latest face-swap detectorDetect face swaps in any face video, including KYC selfiesMP4, MOV, WebM
13pdf-tampering-detectionPDF Tampering DetectionActiveDetect edits to a PDF; send pageCountPDF

Every task type has a single input slot named original. On-prem deployments may expose a subset and use different IDs, so keep the slug as the identifier in your code and look up the ID per environment.

Choosing a task type

Each model is tuned for one kind of manipulation, and a real result only covers what that model checks. To screen for more than one kind, run one job per model, for example ai-image-detection and image-forgery-detection on the same photo.

You want to know…Use
Was this image made by an AI generator?ai-image-detection
Was part of this real photo edited?image-forgery-detection
Is this face video a deepfake?ekyc-deepfake
Was this whole video AI-generated?ai-video-detection
Is this selfie a live person?face-liveness-detection
Is this voice cloned or synthetic?ai-audio-detection
Is this ID or document image fake or edited?document-intelligence
Was this PDF edited?pdf-tampering-detection