# Virus Scanning and Upload Filtering

Scan uploads for malware, reject NSFW or copyrighted images, and route files by size, type, or metadata — through one API.

[Get Started](/c/signup/)

[Get Started](/c/signup/)

[Documentation](/docs/robots.md#file-filtering)

No credit card needed · Cancel anytime

Uploaded files

![DSC\_08452\_retouched.jpg](/artificialintelligence/img/img2.webp?dpl=dpl_DyqBTfRNxHcL6HpUV1RykdCNndg9)DSC\_08452\_retouched.jpg

Approved

![photo\_001\_copy.jpg](/artificialintelligence/img/img4.webp?dpl=dpl_DyqBTfRNxHcL6HpUV1RykdCNndg9)photo\_001\_copy.jpg

Blocked

![IMG\_20260209\_152347.jpg](/artificialintelligence/img/img5.webp?dpl=dpl_DyqBTfRNxHcL6HpUV1RykdCNndg9)IMG\_20260209\_152347.jpg

Approved

![screenshot\_2026\_143022.png](/artificialintelligence/img/img6.webp?dpl=dpl_DyqBTfRNxHcL6HpUV1RykdCNndg9)screenshot\_2026\_143022.png

Approved

![IMG\_8452\_edited\_final.webp](/artificialintelligence/img/img8.webp?dpl=dpl_DyqBTfRNxHcL6HpUV1RykdCNndg9)IMG\_8452\_edited\_final.webp

Blocked

### Stop bad uploads

* **Virus scanning**
* **Unsafe content detection**
* **Reject files**
* **Quarantine suspicious files**
* **Filter images, videos, docs, and archives**
* **Publish only clean results**

Virus scanning

Built-in ClamAV antivirus scans reject millions of trojans, viruses, and malware before they reach you.

Conditional routing

Route files to different encoding steps based on size, type, dimensions, or custom metadata.

Flexible conditions

Use simple array conditions or JavaScript expressions for complex filtering logic.

Build momentum

## Keep good content moving. Catch problems earlier.

Give uploads the right next step before they reach your users.

### Keep publishing on track

Route accepted files into processing without manual sorting.

### Spend processing budget wisely

Filter unsuitable files before running expensive conversions.

### Make review queues useful

Send flagged content to the review process your team controls.

### Deliver consistent media

Accept files that meet your size, type, and dimension requirements.

### Build richer upload flows

Give images, videos, and documents their own processing paths.

### Protect your content pipeline

Add virus scanning before files move further through your workflow.

File Filtering

## Every upload validated before it hits your pipeline

Scan for malware, enforce size limits, and route files to the right processing steps — all automatically.

## Flag copyrighted material

Detect copyrighted images and route or reject them before they enter your platform.

Copyrighted

getty\_stock\_48291.jpg

© Getty Images97% match

## Enforce size limits

Set maximum file size thresholds and automatically reject uploads that exceed your limits with custom error messages.

invoice.docx

photo.jpg

report.pdf

clip.mp4

spreadsheet.xlsx

presentation.pptx

database.sql

backup.zip

video-raw\.zip

20 MB limit

2 MB

4 MB

8 MB

15 MB

18 MB

28 MB

32 MB

45 MB

55 MB

## Scan for viruses and malware

ClamAV-powered scanning rejects trojans, viruses, and malware automatically.

Uploaded files

document.pdf

trojan.zip

photo.jpg

report.docx

malware.zip

## Detect and reject NSFW content

AI-powered content moderation flags nudity, violence, and other explicit material automatically.

landscape.jpg

NSFW

upload\_382.jpg

## Route files conditionally

Direct files to different processing steps based on their type, size, or metadata.

FileTypeRouted to

photo.jpgImage/image/resizeclip.mp4Video/video/encodedoc.pdfDocument/document/convertbanner.pngImage/image/resizereport.docxDocument/document/convertscan.jpgImage/image/resizepresentation.pptxDocument/document/convertdata.xlsxDocument/document/convertcover.pngImage/image/resizereceipt.pdfDocument/document/convertavatar.jpgImage/image/resizeinvoice.docxDocument/document/convertscreenshot.pngImage/image/resizecontract.pdfDocument/document/convertlogo.jpgImage/image/resizesummary.pdfDocument/document/convertthumbnail.pngImage/image/resizedemo.mp4Video/video/encodebudget.xlsxDocument/document/converthero.jpgImage/image/resizemanual.docxDocument/document/convertprofile.pngImage/image/resizearchive.pdfDocument/document/convertwallpaper.jpgImage/image/resizeslides.pptxDocument/document/convertphoto.jpgImage/image/resizeclip.mp4Video/video/encodedoc.pdfDocument/document/convertbanner.pngImage/image/resizereport.docxDocument/document/convertscan.jpgImage/image/resizepresentation.pptxDocument/document/convertdata.xlsxDocument/document/convertcover.pngImage/image/resizereceipt.pdfDocument/document/convertavatar.jpgImage/image/resizeinvoice.docxDocument/document/convertscreenshot.pngImage/image/resizecontract.pdfDocument/document/convertlogo.jpgImage/image/resizesummary.pdfDocument/document/convertthumbnail.pngImage/image/resizedemo.mp4Video/video/encodebudget.xlsxDocument/document/converthero.jpgImage/image/resizemanual.docxDocument/document/convertprofile.pngImage/image/resizearchive.pdfDocument/document/convertwallpaper.jpgImage/image/resizeslides.pptxDocument/document/convert

Robots

## Robots for File Filtering

At Transloadit, a Robot is an automated worker that performs a single task in your file pipeline — like filtering by metadata, scanning for viruses, or verifying file types.

* [accepts${file.mime} regex imageFileTypeRouted tohero.pngimage/png/image/resizepromo.mp4video/mp4Declinedavatar.jpgimage/jpeg/image/resizedeck.pdfapplication/pdfDeclinedFilter & Route FilesDirect files to different encoding Steps based on size, type, dimensions, or custom conditions./file/filter](/docs/robots/file-filter.md)
* [resume.pdfScanning…Cleanphotos.zipScanning…Cleaninvoice.docScanning…Infectedlogo.pngScanning…CleanScan for VirusesReject trojans, viruses, and malware with ClamAV-powered antivirus scanning./file/virusscan](/docs/robots/file-virusscan.md)
* [invoice.pdfDeclaredapplication/pdfDetectedapplication/zipRejectedVerify File TypesEnsure uploaded files match the expected MIME type regardless of file extension./file/verify](/docs/robots/file-verify.md)
* [BlockedExplicit Nudity0.97Suggestive0.84Detect NSFW ContentFlag and reject nudity, violence, and other explicit material using AI-powered content moderation./image/describe](/docs/robots/image-describe.md)

Your workflow. Your controls.

## File filtering without the pain

Stop scattering validation rules across services. Put file decisions in your workflow.

### Set clear acceptance rules

Filter by file size, MIME type, dimensions, duration, and available metadata.

### Route files by their properties

Send matching files to the processing steps they need.

### Go beyond simple conditions

Use JavaScript expressions when your filtering rules need more flexibility.

### Decide what rejection means

Skip declined files or fail the Assembly with a message you configure.

### Scan for malware and viruses

Use the ClamAV-powered virus scanning Robot before further processing.

### Connect moderation results

Use AI-generated metadata in filters that reflect your content policy.

### Know the moment files are ready

Use per-file callbacks and webhook requests when processing finishes.

### Reserve capacity for peak traffic

Buy extra priority slots in advance. Extra jobs queue when your slots are busy.

### Keep spending in check

Set a soft bill limit for alerts or a hard limit to stop processing.

Try Transloadit

## Validate files before they move downstream

Apply file rules, scan for malware, and route uploads through the right processing Steps.

Malware reaching your platform

Built-in virus scanning

Invalid file uploads

Metadata-based filtering

NSFW content slipping through

Route uploads using explicit-content labels

Images are too small for your app

Filter uploads by image dimensions

One-size-fits-all processing

Conditional routing

Poor upload error messages

Custom rejection messages

GDPR

GDPR

HIPAA

HIPAA

ISO 27001ISO27001

ISO 27001

AES-256

AES-256

SOC 2 Type II

SOC 2 Type II

[Try Transloadit for Free](/c/signup/)

[Try Transloadit for Free](/c/signup/)

No credit card needed · Cancel anytime

## Frequently asked questions

What can I filter uploaded files by?

You can use file properties such as size, MIME type, dimensions, and duration, plus metadata available from earlier steps. Define acceptance or rejection conditions in your Template. [Explore file filter conditions](/docs/robots/file-filter.md).

Can I send images and videos through different workflows?

Yes. Create filter steps that select different file types, then connect each filter to the appropriate processing steps. This lets one Assembly handle mixed uploads. [See file filtering examples](/docs/robots/file-filter.md).

What happens when a file does not pass a filter?

You choose. Declined files can be excluded from that branch, or you can configure the filter to return an error for the Assembly. Use a clear error message so your application can explain the rejection. [Read the rejection options](/docs/robots/file-filter.md).

Does checking MIME type prove a file is safe?

No. Type and metadata filters help enforce your upload requirements, but they are not a malware scan or a guarantee of safe content. Add virus scanning and any moderation steps your application needs. [Learn about virus scanning](/docs/robots/file-virusscan.md).

Can I combine virus scanning and content moderation?

Yes. Put virus scanning and supported AI recognition steps in your workflow, then use their results to apply your policy. Automated detection has limits; keep human review for decisions that need it. [Explore AI file processing](/services/artificial-intelligence.md).

Can I use custom logic for more complex rules?

Yes. File filters support JavaScript expressions as well as simple conditions. Expression evaluation has its own processing cost, so use ordinary conditions when they cover your needs. [Read about dynamic evaluation](/docs/topics/dynamic-evaluation.md).

How can I estimate and control costs?

Rates vary by operation and usage. Set a soft bill limit for alerts or a hard limit to stop processing. For larger workloads, ask about volume pricing and extra priority slots. [Estimate your workflow costs](/pricing.md).
