# Damage Photo AI Fraud Review

Scan images for risk and authenticity signals before claims, repair, insurance, or review workflows trust them.

Source URL: https://trymighty.ai/docs/integrate/images-ai-fraud

import {
  CodeBlockTabs,
  CodeBlockTabsList,
  CodeBlockTabsTrigger,
  CodeBlockTab,
} from "fumadocs-ui/components/codeblock";

## Goal

Scan images before automated decisions use them.

This guide fits damage photos, claim photos, repair proof, delivery photos, product condition photos, identity evidence, and other image-heavy workflows.

## Architecture

1. Upload the image to your server.
2. Send it to Mighty with `content_type=image`.
3. Use `focus=all` when hidden content, AI authenticity, and edit evidence all matter.
4. Route suspicious or indeterminate images to review.
5. Keep final fraud decisions in your review process.

## Image Scanning Focus Modes

This is the focus mode breakdown for image scanning capabilities. Use it when deciding whether an image workflow needs hidden-content safety, AI authenticity review, localized edit evidence, or all supported image evidence paths together. For the broader settings story, see [Choose Scan Settings](/docs/concepts/configs).

| Focus | Image scanning capability | Use when | Important limit |
| --- | --- | --- | --- |
| `focus=steg` | Hidden content, prompt injection, content steering, unsafe OCR text, and visual safety checks. | Uploaded images, screenshots, OCR inputs, or visual attachments can reach an AI system or automated extraction flow. | Skips AI-authenticity and edit-localization evidence so normal images avoid unrelated review signals. |
| `focus=ai` | Is this visual evidence likely generated, AI-edited, reposted, or missing useful provenance? | Authenticity is the main question for damage photos, receipts, marketplace images, ID images, screenshots, or PDF/image evidence. | This is review evidence, not proof of fraud. Use `focus=all` when the same image/PDF may also contain hidden instructions or unsafe text. |
| `focus=edits` | What changed, and where does the submitted image look manipulated? | You have an original/source image and need to find changed regions, edited labels, altered text, pasted objects, or changed damage. | Best with `reference_file`; without a reference image, Mighty can only return conservative hints. |
| `focus=all` | All supported image evidence paths. | Damage photos, receipt photos, ID photos, marketplace photos, screenshots, or claim evidence need hidden-content, authenticity, and edit review together. | Higher latency than a focused scan and bills 10 SCU per image unit, a bundle discount versus three separate focused image scans. |

Structured office documents are different: `content_type=document` supports `focus=steg` only. Use `content_type=image` or `content_type=pdf` when you need AI authenticity or localized edit evidence on visual material.

## Authenticity-Only Image Review

Use `focus=ai` when the main question is: "Is this visual evidence likely generated, AI-edited, reposted, or missing useful provenance?"

```bash
curl -X POST https://gateway.trymighty.ai/v1/scan \
  -H "Authorization: Bearer $MIGHTY_API_KEY" \
  -F "file=@./receipt-photo.jpg" \
  -F "content_type=image" \
  -F "scan_phase=input" \
  -F "mode=secure" \
  -F "focus=ai" \
  -F "profile=strict"
```

Use this for damage photos, receipt photos, marketplace listing images, ID or verification images, and screenshot/PDF evidence where authenticity is the main question. Do not use it for text, OCR text, model output, office documents, or anything where hidden instructions could reach an AI system unless paired via `focus=all`.

This is review evidence, not proof of fraud.

## Localized Image Edit Review

Use `focus=edits` when the main question is: "What changed, and where does the submitted image look manipulated?"

The strongest path uses `reference_file` when you have the original/source image.

```bash
curl -X POST https://gateway.trymighty.ai/v1/scan \
  -H "Authorization: Bearer $MIGHTY_API_KEY" \
  -F "file=@./submitted-damage-photo.jpg" \
  -F "reference_file=@./original-damage-photo.jpg" \
  -F "content_type=image" \
  -F "scan_phase=input" \
  -F "mode=secure" \
  -F "focus=edits" \
  -F "profile=strict"
```

Use this for original vs submitted damage photos, altered labels, receipts, package photos, food photos, screenshots, and document images where visible text may have been changed. Do not use it for office documents, text/OCR/model output, or general hidden-instruction safety scans.

Without a reference image, Mighty can only return conservative hints. Use `focus=all` when you also need hidden-content or AI-authenticity review.

## Request And Response

<CodeBlockTabs defaultValue="request">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="request">Request</CodeBlockTabsTrigger>
    <CodeBlockTabsTrigger value="response">Response</CodeBlockTabsTrigger>
  </CodeBlockTabsList>
  <CodeBlockTab value="request">

```bash
curl -X POST https://gateway.trymighty.ai/v1/scan \
  -H "Authorization: Bearer $MIGHTY_API_KEY" \
  -F "file=@./damage-photo.jpg" \
  -F "content_type=image" \
  -F "scan_phase=input" \
  -F "mode=secure" \
  -F "focus=all" \
  -F "profile=strict" \
  -F "data_sensitivity=tolerant" \
  -F "context=damage_photo_review"
```

  </CodeBlockTab>
  <CodeBlockTab value="response">

```json
{
  "action": "WARN",
  "risk_score": 74,
  "risk_level": "HIGH",
  "threats": [
    {
      "category": "ai_authenticity_signal",
      "confidence": 0.78,
      "reason": "AI involvement is likely based on visual consistency signals."
    },
    {
      "category": "metadata_inconsistency",
      "confidence": 0.62,
      "reason": "Compression and metadata signals do not match a typical camera capture."
    }
  ],
  "content_type_detected": "image",
  "authenticity": {
    "model_family": "authenticity_v9",
    "evidence_modality": "image",
    "ai_involvement": "yes",
    "verdict": "likely_ai_generated",
    "confidence": 0.78
  },
  "forensics": {
    "signals": ["compression_inconsistency", "metadata_missing"]
  },
  "scan_id": "81f47b0a-7a6d-49f2-a0c3-e2c7d735688c",
  "scan_group_id": "3fe06052-baa8-4ae8-8571-d10c9ce4072b",
  "scan_status": "complete"
}
```

  </CodeBlockTab>
</CodeBlockTabs>

`threats` is an array of objects with `category`, `confidence`, an optional `evidence` excerpt, and a human-readable `reason`. The `authenticity` block carries the structured forensics verdict - distinct from the routing `action`.

## Authenticity Tags In Image Workflows

Use these fields together instead of reducing the result to one `is_ai` boolean.

| Field | What it means | How it should affect the workflow |
| --- | --- | --- |
| `source_file_origin` | Whether the file appears to be a camera capture, OS screenshot, physical recapture, PDF render, generated file, or unknown. | Explain the source surface. A camera photo can still depict a forged paper document or a screen showing AI content. |
| `visible_content_origin` | Whether the visible pixels look likely real, likely synthetic, AI edited, human edited, camera AI enhanced, or indeterminate. | Route suspicious or indeterminate cases to review or request more evidence. |
| `provenance_validation_state` | Whether signed provenance is verified, missing, marker-only, untrusted, unchecked, or conflicting. | Verified AI provenance is strong evidence; missing provenance is neutral. |
| `artifact_evidence[]` | Localized visual cues such as malformed text, logo anomaly, reflection inconsistency, texture repetition, screen recapture, or localized edit. | Use as evidence. Localized artifacts should not automatically label the whole image AI-generated. |
| `ai_to_ai_laundered_suspected` | The image looks transformed through screenshot, resize, crop, recompression, recapture, or redraw. | Treat as reposted or laundered AI review evidence when local signals support it. |
| `camera_ai_enhanced` | Camera-origin computational photography may have applied HDR, denoise, sharpening, or night mode. | Do not treat this as fraud by itself. |

Common image categories and artifacts:

| Tag | Meaning | Product effect |
| --- | --- | --- |
| `ai_image_authenticity` | AI-origin, edit, provenance, or repost evidence affected the result. | Review evidence; do not call it fraud by itself. |
| `metadata_inconsistency` | Container, EXIF, C2PA, compression, or file-history signals conflict with claimed origin. | Supporting evidence only. Filename and weak metadata must not block alone. |
| `subpixel_grid` | Screenshot, display capture, or repost surface evidence exists. | Explains source origin. It should not warn alone. |
| `localized_edit` | One region is more suspicious than the full image. | Review that region instead of over-labeling the whole file. |
| `logo_anomaly`, `malformed_text`, `geometry_inconsistency` | Visual details are malformed in ways common to generated or edited content. | Stronger when several artifacts agree with local ML or provenance. |

When you have both the original/source image and the submitted image, send the submitted image as `file` and the source image as `reference_file` with `focus=edits` or `focus=all`. That pairwise path is the preferred way to localize small claim edits, document text edits, clone-tool changes, food contamination edits, package changes, and screenshot/UI edits. When only one image is available, no-reference edit evidence remains advisory and intentionally conservative.

## Compare Original vs Submitted Image

Use this when your app has an original photo, listing image, receipt scan, document scan, screenshot, or prior claim image and someone uploads a changed version.

```bash
curl -X POST https://gateway.trymighty.ai/v1/scan \
  -H "Authorization: Bearer $MIGHTY_API_KEY" \
  -F "file=@./submitted-food-photo.jpg" \
  -F "reference_file=@./original-food-photo.jpg" \
  -F "content_type=image" \
  -F "scan_phase=input" \
  -F "mode=secure" \
  -F "focus=edits" \
  -F "profile=strict"
```

Use `focus=edits` when the main question is "what changed between these two images?" Use `focus=all` when the same upload also needs hidden text, threat, and AI-authenticity review.

The full public taxonomy is in [POST /v1/scan](/docs/api-reference/v1-scan#actions-categories-and-tags).

## Routing Logic

```ts
export function routeDamagePhoto(scan: { action: string; authenticity?: { label?: string } }) {
  if (scan.action === "ALLOW") return "continue_claim_intake";
  if (scan.action === "WARN") return "request_review_or_more_evidence";
  if (scan.action === "BLOCK") return "stop_automated_decision";

  return "manual_review";
}
```

## Honest AI Fraud Wording

Use wording like:

- "Mighty flagged this image for review."
- "This image has suspicious evidence signals."
- "The evidence is indeterminate. Ask for more proof."

Avoid wording like:

- "This photo is fake."
- "This claimant committed fraud."
- "Mighty proved fraud."

Mighty helps route risky material. It does not replace your claims, compliance, legal, or fraud investigation process.

## Async Deep Review

Use `async=true` and `mode=comprehensive` when a photo is high value or latency can be handled by a review queue.

```json
{
  "content_type": "image",
  "scan_phase": "input",
  "mode": "comprehensive",
  "async": true,
  "webhook_url": "https://example.com/api/mighty/webhook"
}
```

## Production Checklist

- Use `focus=all` for damage photos.
- Budget 10 SCU per image unit for all-evidence review.
- Store `authenticity`, `forensics`, and `indeterminate` signals when returned.
- Add `reference_file` when you have the source image and need pairwise edit localization.
- Route suspicious evidence to human review.
- Ask for more evidence when signals are weak or conflicting.
- Do not block claims solely because an AI signal is suspicious.
- Use async for high-value or complex cases.

## AI-Agent Prompt

### Add damage photo scanning

```text
Add Mighty image scanning to the damage photo intake flow.

Requirements:
- Scan server-side before automated claim decisions.
- Use multipart upload to POST https://gateway.trymighty.ai/v1/scan.
- Use content_type=image, scan_phase=input, mode=secure, focus=all, profile=strict.
- Store scan_id, scan_group_id, action, risk_score, threats, authenticity, and forensics.
- Route ALLOW to normal processing.
- Route WARN to review or request more evidence.
- Route BLOCK to stop automated decisioning.
- Never say Mighty proves fraud. Use review wording.

Acceptance criteria:
- Tests cover suspicious, indeterminate, and allowed image paths.
- Review queue receives scan details and original upload reference.
- API key stays server-side.
```
