Document Analysis

Analyze documents for AI generation, manipulation, and authenticity. Supports PDF, DOCX, image files, and raw text. Uses entropy analysis, watermark detection, and LLM-based forensic examination.

Endpoint

Code
POST https://signal-stack-ten.vercel.app/v1/verify/document

Request parameters

ParameterTypeRequiredDescription
sourcestringYesurl, upload, or raw
contentstringYesURL, base64-encoded file, or raw text
mime_typestringNoMIME type hint (e.g. application/pdf)
check_deepfakesbooleanNoRun deepfake/entropy analysis (default: true)
check_watermarksbooleanNoDetect C2PA and other digital watermarks

Response schema

FieldTypeDescription
idstringUnique request identifier
trust_scorenumberAuthenticity confidence (0.0–1.0)
ai_generated_probabilitynumberProbability content is AI-generated (0.0–1.0)
manipulation_flagsstring[]Detected manipulation types
watermarkobjectDigital watermark info (if found)
metadataobjectExtracted document metadata
evidencearraySource evidence chain
dimensionsobjectPer-dimension trust sub-scores
latency_msnumberProcessing time in milliseconds

Manipulation flags

FlagDescription
ai_generated_textText exhibits LLM generation patterns
image_manipulatedImage has been edited or spliced
metadata_strippedOriginal metadata has been removed
deepfakeDeepfake manipulation detected in media
inconsistent_timestampsDocument timestamps are inconsistent
signature_forgeryDigital signature anomaly detected

Request example

Code
{
  "source": "url",
  "content": "https://example.com/report.pdf",
  "mime_type": "application/pdf",
  "check_deepfakes": true,
  "check_watermarks": true
}

Response example

Code
{
  "id": "vrf_doc_e5f6a7b8",
  "trust_score": 0.31,
  "ai_generated_probability": 0.87,
  "manipulation_flags": [
    "ai_generated_text",
    "metadata_stripped"
  ],
  "watermark": null,
  "metadata": {
    "author": null,
    "created_at": null,
    "producer": "Unknown",
    "page_count": 12
  },
  "evidence": [
    {
      "source": "entropy_analysis",
      "finding": "Text entropy profile matches GPT-4 generation patterns (p=0.87)",
      "authority_score": 0.91
    }
  ],
  "dimensions": {
    "source_authority": 0.91,
    "cross_reference": 0.45,
    "recency": 0.72,
    "llm_analysis": 0.88
  },
  "latency_ms": 1450,
  "credits_used": 3
}

Code examples

Python

Code
import signalstack
from signalstack.types import DocumentSource

client = signalstack.SignalStack(api_key="ssk_live_...")

result = client.verify.document(
    source=DocumentSource.URL,
    content="https://example.com/report.pdf",
    check_deepfakes=True,
)

print(f"AI probability: {result.ai_generated_probability}")
print(f"Flags: {result.manipulation_flags}")

cURL

Code
curl -X POST https://signal-stack-ten.vercel.app/v1/verify/document   -H "Authorization: Bearer $SIGNALSTACK_API_KEY"   -H "Content-Type: application/json"   -d '{
    "source": "url",
    "content": "https://example.com/report.pdf",
    "check_deepfakes": true
  }'

TypeScript

Code
import { SignalStack, DocumentSource } from "@signalstack/sdk"

const client = new SignalStack({ apiKey: process.env.SIGNALSTACK_API_KEY! })

const result = await client.verify.document({
  source: DocumentSource.URL,
  content: "https://example.com/report.pdf",
  checkDeepfakes: true,
})

console.log(`AI probability: ${result.aiGeneratedProbability}`)
console.log(`Manipulation flags: ${result.manipulationFlags}`)