---
canonical_url: "https://docs.composio.dev/toolkits/truthscan"
markdown_url: "https://docs.composio.dev/toolkits/truthscan.md"
product: "platform"
version: null
last_updated: null
---

# TruthScan

TruthScan detects AI-generated and manipulated content in images, text, PDFs, video, and audio.

- **Category:** artificial intelligence
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 8
- **Triggers:** 0
- **Slug:** `TRUTHSCAN`
- **Version:** 00000000_00

## Tools

### Analyze Audio

**Slug:** `TRUTHSCAN_ANALYZE_AUDIO`

Analyze exactly one public audio URL or uploaded audio/media file for AI generation. By default, wait with bounded polling and return the latest result; this non-idempotent submission consumes account credits.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `audio_url` | string | No | Publicly reachable audio or supported media URL to analyze. |
| `audio_file` | object | No | Audio or media attachment to upload directly. Supported extensions are mp3, wav, m4a, flac, ogg, and mp4; the provider accepts files from 1 KB through 100 MB. |
| `timeout_seconds` | number | No | Maximum total polling time in seconds (1-600). On timeout, the latest nonterminal status and job ID are returned for later resumption. |
| `wait_for_completion` | boolean | No | Poll until the analysis is done or failed. Set false to return the accepted job immediately. |
| `analyze_up_to_seconds` | integer | No | Maximum leading duration to analyze, in seconds. |
| `poll_interval_seconds` | number | No | Seconds between result checks while waiting (1-60). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Analyze Image

**Slug:** `TRUTHSCAN_ANALYZE_IMAGE`

Submit an image URL for AI-generation detection and, by default, wait for the asynchronous result. Returns the job ID when not waiting or when polling times out; detection consumes account credits.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string | No | TruthScan model name; use generic unless a specific instance/model is known. |
| `image_url` | string | Yes | Publicly reachable image URL (1 KB-10 MB) to analyze. |
| `timeout_seconds` | number | No | Maximum total wait time in seconds (up to 600); on timeout return the current pending status and job ID for later resumption. |
| `generate_heatmap` | boolean | No | Generate a secured detection heatmap. |
| `generate_preview` | boolean | No | Generate a secured preview asset for later download. |
| `wait_for_completion` | boolean | No | Poll until done or failed; set false to return immediately with the job ID. |
| `poll_interval_seconds` | number | No | Seconds between result checks when waiting (minimum 1). |
| `generate_analysis_details` | boolean | No | Include detailed analysis indicators in the completed result. |
| `generate_heatmap_overlayed` | boolean | No | Override generation of the overlay heatmap variant; omit to use the provider default, and do not set true when generate_heatmap is false. |
| `include_content_moderation` | boolean | No | Include content-moderation signals in the analysis. |
| `generate_heatmap_normalized` | boolean | No | Override generation of the normalized heatmap variant; omit to use the provider default, and do not set true when generate_heatmap is false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Analyze PDF

**Slug:** `TRUTHSCAN_ANALYZE_PDF`

Submit a publicly reachable PDF URL for asynchronous tampering detection and, by default, wait for the result. PDFs are limited to 2 MB and each page costs 1,000 credits.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string ("pdf_detector" | "pdf_detector/v1" | "pdf_detector/v3" | "pdf_detector/v4") | No | PDF detector version. Use pdf_detector/v4 for current tampering detection; v1 focuses on AI-generation fingerprints and v3 on structural tampering. |
| `pdf_url` | string | Yes | Publicly reachable HTTPS URL ending in .pdf. The PDF must be no larger than 2 MB; analysis costs 1,000 credits per page. |
| `timeout_seconds` | number | No | Maximum total wait time in seconds. On timeout, returns the latest pending status and document ID so the job can be resumed later. |
| `wait_for_completion` | boolean | No | Poll until done or failed; set false to return immediately with the document ID. |
| `poll_interval_seconds` | number | No | Seconds between result checks when waiting (minimum 1). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Analyze Text

**Slug:** `TRUTHSCAN_ANALYZE_TEXT`

Submit a text value or public web URL for AI-written-text detection. Provide one input source and never both. By default, wait for the asynchronous result; detection consumes account credits.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | Publicly reachable web URL whose text should be analyzed. Required when text is omitted; do not provide both fields. |
| `text` | string | No | Text to analyze, under 30,000 words; at least 200 words is recommended. Required when url is omitted; do not provide both fields. |
| `model` | string | No | TruthScan text detector model. |
| `timeout_seconds` | number | No | Maximum total wait in seconds (1-300). On timeout, return the latest pending status and document ID for later resumption. |
| `wait_for_completion` | boolean | No | Poll until the detection is done or failed. Set false to return immediately with the document ID. |
| `poll_interval_seconds` | number | No | Seconds between result checks when waiting (1-60). |
| `generate_analysis_details` | boolean | No | Include deeper source and analysis signals when supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Analyze Video

**Slug:** `TRUTHSCAN_ANALYZE_VIDEO`

Analyze exactly one public video URL or uploaded video for AI generation or face swapping. By default, wait with bounded polling and return the latest result; this non-idempotent submission consumes account credits.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string ("generic" | "faceswap") | No | Detection model: generic detects AI-generated video, while faceswap detects face swapping. |
| `video_url` | string | No | Publicly reachable video URL to analyze. |
| `video_file` | object | No | Video attachment to upload directly. Supported extensions are mp4, mov, avi, mkv, and webm; the provider accepts files from 1 KB through 100 MB. |
| `timeout_seconds` | number | No | Maximum total polling time in seconds (1-600). On timeout, the latest nonterminal status and job ID are returned for later resumption. |
| `generate_preview` | boolean | No | Generate a preview when the selected detector supports one. |
| `wait_for_completion` | boolean | No | Poll until the analysis is done or failed. Set false to return the accepted job immediately. |
| `poll_interval_seconds` | number | No | Seconds between result checks while waiting (4-60). Video has a low request limit, so shorter intervals are rejected. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Credits

**Slug:** `TRUTHSCAN_CHECK_CREDITS`

Return the connected TruthScan account's remaining detection credits from the canonical image detector balance endpoint.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download Image Asset

**Slug:** `TRUTHSCAN_DOWNLOAD_IMAGE_ASSET`

Download a generated preview or heatmap for an owned TruthScan image detection job. Returns a managed file when ready, or an explicit pending or unavailable state.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | string | Yes | Sensitive image document/job ID returned by Analyze Image. |
| `asset_type` | string ("preview" | "heatmap") | Yes | Generated image asset to download: preview or heatmap. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Detection Result

**Slug:** `TRUTHSCAN_GET_DETECTION_RESULT`

Get the current result of an existing image, text, PDF, video, or audio detection job, optionally waiting until it finishes. Use this to resume a pending detection without submitting or charging for another analysis.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_id` | string | Yes | Sensitive document or job ID returned by a TruthScan analysis tool. |
| `modality` | string ("image" | "text" | "pdf" | "video" | "audio") | Yes | Detector that created the job. Text and PDF share a host but retain distinct result semantics. |
| `timeout_seconds` | number | No | Maximum total wait in seconds (1-300). |
| `wait_for_completion` | boolean | No | Poll until done or failed instead of returning the current status once. |
| `poll_interval_seconds` | number | No | Seconds between checks when waiting (1-60). Video requires at least 4 seconds because its query limit is lower. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
