# VirusTotal integrations: files and URLs

> Upload a file for scanning in VirusTotal. Connect VirusTotal to the rest of your security and compliance stack with Tray.ai.

**Canonical page:** https://tray.ai/connectors/virustotal-integrations/
**Categories:** Security and compliance
**Connects through:** HTTP Connector

## Overview

VirusTotal scans files and URLs with many antivirus engines and reports what is known about suspicious domains and IP addresses. Tray.ai connects to VirusTotal through the HTTP Connector, so your workflows can call the VirusTotal API alongside the rest of your stack.

## Use cases

### Files

Read and create files in VirusTotal from any Tray.ai workflow. The VirusTotal API covers calls such as upload a file for scanning and get a file report.

- Upload a file for scanning
- Get a file report

### URLs

Read urls in VirusTotal from any Tray.ai workflow. The VirusTotal API covers calls such as scan a URL and get a URL report.

- Scan a URL
- Get a URL report

### Domains and IP addresses

Read domains and ip addresses in VirusTotal from any Tray.ai workflow. The VirusTotal API covers calls such as get a domain report and get an IP address report.

- Get a domain report
- Get an IP address report

## Challenges Tray.ai solves

### Keeping VirusTotal credentials out of logs

A raw API call usually means pasting a key or token into the request, where it ends up in step inputs, logs, and screenshots.

**How Tray.ai helps:** Store VirusTotal credentials once as a Tray.ai authentication and reference them from the HTTP Connector. Tray.ai masks authentication values in logs, so the secret never shows up in a step's input or output.

### Going from the VirusTotal API docs to a working call

Translating an example request from API docs into a workflow step means copying the method, URL, headers, and body by hand.

**How Tray.ai helps:** Paste a cURL example from the VirusTotal API docs into the HTTP Connector and Tray.ai fills in the method, URL, headers, and body for you.

### Handling files and non-JSON responses

Not every API answers in JSON. Some return XML, files, or binary data, or expect a multipart upload.

**How Tray.ai helps:** The HTTP Connector parses JSON and XML responses, returns files you can pass to the next step, and sends multipart form data for uploads.

## Frequently asked questions

### Does Tray.ai connect to VirusTotal?

Yes. Tray.ai connects to VirusTotal through the HTTP Connector, which calls the VirusTotal API directly. Any call the VirusTotal API documents can run as a step in a Tray.ai workflow.

### How does Tray.ai authenticate with VirusTotal?

The VirusTotal API uses an API key in a request header. You save it once as a Tray.ai authentication, and the HTTP Connector adds it to every request.

### Can I get a dedicated VirusTotal connector?

VirusTotal runs through the HTTP Connector rather than a dedicated connector. If your team wants one, the Tray.ai connector SDK can build a dedicated VirusTotal connector from the VirusTotal API.

## Learn more

- Intelligent Integration: https://tray.ai/platform/intelligent-ipaas/
- Merlin Agent Builder: https://tray.ai/platform/merlin-agent-builder/
- Agent Gateway for MCP: https://tray.ai/platform/agent-gateway/
- Book a demo: https://tray.ai/contact/
