Skip to main content
GET
/
files
/
{fileId}
/
analysis
Get file analysis details
curl --request GET \
  --url https://api.uk.veridox.ai/files/{fileId}/analysis \
  --header 'x-api-key: <api-key>'
{
  "file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "case_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "label": "<string>",
  "mime_type": "<string>",
  "file_download_url": "<string>",
  "file_download_url_expires_at": "2023-11-07T05:31:56Z",
  "thumbnail_url": "<string>",
  "pdf_report_url": "<string>",
  "log_output_url": "<string>",
  "ela_overlay_url": "<string>",
  "reverse_search": {
    "matches": null,
    "total": 123
  },
  "file_info": {
    "md5": "<string>",
    "metadata": {}
  },
  "current_analysis_phase": "<string>",
  "current_risk_score": "<string>",
  "analysis_results": {
    "full_analysis": {
      "overall_risk_score": "<string>",
      "summary": "<string>",
      "findings": [
        {
          "category": "<string>",
          "heading": "<string>",
          "description": "<string>",
          "supporting_evidence": [
            "<string>"
          ]
        }
      ],
      "observations": [
        "<string>"
      ],
      "risk_assessments": [
        {
          "target": "<string>",
          "risk_level": "<string>",
          "summary": "<string>",
          "justification": "<string>"
        }
      ],
      "suggested_actions": [
        {
          "action": "<string>",
          "justification": "<string>"
        }
      ],
      "audit_trail": [
        "<string>"
      ],
      "search_evidence_summary": {
        "total_queries": 123,
        "total_results": 123,
        "per_module": {}
      }
    },
    "context_analysis": {
      "mime_type": "<string>",
      "format_classification": "<string>",
      "file_category": "<string>",
      "summary": "<string>",
      "classifications": [
        {
          "category": "<string>",
          "custom_guess": "<string>"
        }
      ],
      "contains_embedded_images": true,
      "key_details": {
        "persons": [
          "<string>"
        ],
        "organisations": [
          "<string>"
        ],
        "locations": [
          "<string>"
        ],
        "dates": [
          "<string>"
        ],
        "reference_numbers": [
          "<string>"
        ]
      },
      "c2pa_detected": true,
      "metadata_tags": {},
      "metadata_tags_count": 123
    },
    "image_metadata": {
      "risk_score": "<string>",
      "summary": "<string>",
      "findings": [
        {
          "alert_type": "<string>",
          "description": "<string>",
          "severity": "<string>",
          "evidence": [
            {
              "source": "<string>",
              "tag_or_assertion": "<string>",
              "value": "<string>",
              "explanation": "<string>"
            }
          ]
        }
      ],
      "c2pa_detected": true,
      "metadata_tags": {},
      "metadata_tags_count": 123
    },
    "document_metadata": {
      "risk_score": "<string>",
      "summary": "<string>",
      "findings": [
        "<unknown>"
      ],
      "metadata_tags": {},
      "metadata_tags_count": 123
    },
    "image_tampering": {
      "confidence_map_url": "<string>",
      "local_map_url": "<string>",
      "findings": [
        "<unknown>"
      ],
      "risk_score": "<string>"
    },
    "document_consistency": {
      "annotated_pdf_url": "<string>"
    },
    "ela": {
      "overlay_url": "<string>",
      "findings": [
        "<unknown>"
      ],
      "risk_score": "<string>"
    },
    "noise": {
      "overlay_url": "<string>",
      "findings": [
        "<unknown>"
      ],
      "risk_score": "<string>"
    },
    "reverse_search": {
      "results": [
        "<unknown>"
      ]
    },
    "modules": [
      {
        "module_id": "<string>",
        "module_name": "<string>",
        "findings": [
          {
            "alert_type": "<string>",
            "alert_type_name": "<string>",
            "found": true,
            "severity_justification": "<string>",
            "description": "<string>",
            "evidence": [
              {
                "source": "<string>",
                "detail": "<string>",
                "explanation": "<string>"
              }
            ],
            "evidence_refs": [
              "<string>"
            ],
            "custom_alert_type": "<string>"
          }
        ],
        "search_evidence": {
          "queries": [
            {
              "query_id": "<string>",
              "query_text": "<string>",
              "answer": "<string>"
            }
          ],
          "results": [
            {
              "result_id": "<string>",
              "query_id": "<string>",
              "url": "<string>",
              "title": "<string>",
              "snippet": "<string>",
              "published_date": "<string>",
              "last_updated": "<string>"
            }
          ],
          "failures": [
            {
              "query_id": "<string>",
              "error": "<string>",
              "status_code": 123,
              "rate_limited": true
            }
          ],
          "elapsed_ms": 123,
          "request_count": 123
        },
        "verification_evidence": {
          "checks": [
            {
              "check_id": "<string>",
              "provider": "<string>",
              "check_type": "<string>",
              "subject": "<string>",
              "country_code": "<string>",
              "is_valid": true,
              "canonical_name": "<string>",
              "canonical_address": "<string>",
              "checked_at": "<string>",
              "raw_response": {},
              "error": "<string>"
            }
          ]
        }
      }
    ]
  },
  "user_risk_confirmations": [
    {
      "reason": "<string>",
      "changed_at": "2023-11-07T05:31:56Z",
      "changed_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ],
  "created_at": "2023-11-07T05:31:56Z",
  "uploaded_at": "2023-11-07T05:31:56Z",
  "analysis_completed_at": "2023-11-07T05:31:56Z",
  "highlights": [
    "<string>"
  ],
  "team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "team_name": "<string>"
}
Retrieve comprehensive analysis results for a specific file, including signed download URLs for the original file, thumbnail, PDF analysis report, and detailed logs. The file must belong to a case owned by the authenticated user.

Analysis Engines

The Veridox platform runs multiple analysis engines to provide a complete forensic view:
  • Context Analysis: Extracts metadata and classifies the document type.
  • Image Metadata: Analyses EXIF/JFIF data for indicators of tampering or source verification.
  • Tampering Detection: Uses advanced computer vision to identify pixel-level anomalies and digital edits.
  • AI Summary: Provides a high-level, human-readable summary of the combined findings.

Highlights

The highlights field contains a plain list of key findings summarising the most significant indicators from the analysis. It is omitted from the response when the analysis did not produce any highlights.

Module Evidence

Each module in full_analysis.modules reports its findings together with the evidence supporting them:
  • findings — structured findings, each with an alert_type, a severity (Informational, Low, Medium, or High), a description, a severity_justification, an evidence list, and evidence_refs.
  • search_evidence (object or null) — the search and grounding queries run for the module, with their results and any failures.
  • verification_evidence (object or null) — reserved for registry verification checks; currently always null.
A finding’s evidence_refs are IDs that resolve back into the module’s evidence: IDs like q1.0 match a result_id in search_evidence.results, and IDs like v1 match a check_id in verification_evidence.checks. The top-level full_analysis.search_evidence_summary is a cross-module roll-up of the same queries and results, keyed by module_id.
search_evidence_summary and a query’s answer field may be null, and are absent on analyses produced before these fields existed. Treat both as optional.

Best Practices

  1. URL Expiration: Download URLs for assets (original file, PDF report, logs) are time-limited for security. Ensure you download or display them promptly after retrieval.
  2. Wait for Completion: This endpoint provides the most value after a file’s analysis_status has reached settled.
  3. Security: Never expose the signed download URLs in client-side code or public environments.

Authorizations

x-api-key
string
header
required

Path Parameters

fileId
string
required

File ID

Response

File analysis retrieved successfully

file_id
string<uuid>
required
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$
case_id
string<uuid>
required
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$
label
string | null
required
mime_type
string | null
required
file_download_url
string<uri> | null
required
file_download_url_expires_at
string<date-time> | null
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
thumbnail_url
string<uri> | null
required
pdf_report_url
string<uri> | null
required
log_output_url
string<uri> | null
required
ela_overlay_url
string<uri> | null
required
reverse_search
object
required
file_info
object
required
analysis_status
enum<string>
required
Available options:
waiting_for_upload,
processing,
settled
analysis_outcome
enum<string> | null
required
Available options:
success,
failed
current_analysis_phase
string | null
required
current_risk_score
string | null
required
analysis_results
object
required
user_risk_confirmations
object[]
required
created_at
string<date-time>
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
uploaded_at
string<date-time> | null
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
analysis_completed_at
string<date-time> | null
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
highlights
string[]
team_id
string<uuid>
Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
team_name
string