---
title: "POST /v2/advanced-image-detection"
method: POST
path: "/v2/advanced-image-detection"
---

# POST /v2/advanced-image-detection

`POST /v2/advanced-image-detection`

Runs an advanced forensic analysis on a public image URL. The API authenticates the caller with a bearer token, checks the user's credit balance, analyzes the image, charges 500 credits after a successful analysis, and returns a structured forensic report.

## Request body

- AdvancedImageDetectionRequest
  - `image_url` string, required — Public HTTP or HTTPS URL of the image to analyze. The API rejects empty values, non-string values, URLs without a hostname, URLs with embedded credentials, `localhost`, `.localhost`, and direct private or reserved IP addresses.

## Response `200`

Advanced Image Detection response

- AdvancedImageDetectionResponse
  - `status` integer — Internal analysis status from the image analysis pipeline. The external HTTP status for a successful API request is 200 OK.
  - `cost` integer — Number of credits charged for this API request. Current value is 500.
  - `language` string — Language used for the generated analysis text.
  - `title` string — Short generated title describing the analyzed image.
  - `tags` string[] — Tags extracted or inferred from the image metadata and analysis pipeline.
  - `tool_used` string[] — List of internal forensic tool IDs used during the analysis. Possible values include `classify_image`, `extract_metadata`, `ela_image`, `residual_noise_maps`, `edge_anomaly_heat_map`, and `cfa_pattern_analysis`.
  - `label` 'AI-Generated' | 'Human' — Final classification label for the image.
  - `confidence` 'High' | 'Moderate' | 'Low' — Confidence level for the final classification.
  - `authenticity` 'Authentic' | 'Manipulated' — Final authenticity assessment.
  - `conclusion` string — Short final conclusion summarizing the forensic result.
  - `analysis` string — Complete human-readable forensic analysis, including a summary of the tools used and their findings.
  - `tools_used_analysis` object[] — Per-tool analysis results. Each item contains the tool ID, a generated explanation of that tool's result, and the underlying tool output.
    - `id` string — Internal ID of the forensic tool. Examples: `extract_metadata`, `classify_image`, `ela_image`.
    - `analysis` string — Natural-language explanation of what the tool result indicates.
    - `result` union — Structured tool output when the tool returns data, such as metadata or classification scores. For generated image artifacts (e.g. ELA heatmaps), this is a temporary presigned S3 URL valid for 5 minutes.
      - object
      - string
  - `balance` integer — User's remaining credit balance after the successful request is charged.

## Other responses

- `400` — Bad Request — image_url is missing, empty, malformed, not a string, or fails public URL validation.
- `401` — Unauthorized — the Authorization header is missing, malformed, or the token is unknown.
- `403` — Forbidden — the user does not have at least 500 credits.
- `500` — Internal Server Error — the analysis pipeline failed or did not produce a successful response.

---

[API](https://skmtc.dev/gowinston/apis/winston-ai-api.md) · [All operations](https://skmtc.dev/gowinston/apis/winston-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/gowinston/winston-ai-api/revisions/36538c5ec651/schema)
