Introducing the Bytescale Antivirus API: Simple, Fast Virus Scanning

Henri Cook

Hello, developers! Exciting news!

Today, we're thrilled to announce the Bytescale Antivirus API: a game-changer for developers looking to add secure virus scanning to their uploads with minimal fuss.

Let's dive into the key features and explore how this scalable API can benefit you today...

0:00
/0:20

Key features

  1. Simple REST API: Start scans with a simple GET request and receive the result as JSON.
  2. Fast processing times: Scan speeds are approximately 10MB per second, adding minimal delays to your file upload workflows.
  3. Linearly scalable: Scale your virus scans using a platform built to support applications serving millions of users.
  4. Regular virus updates: Let Bytescale take care of updating virus definition databases; we synchronise with central virus authorities every hour.
  5. Archive support: Scan compressed files, including ZIPs, TARs, videos, audio, and images. Bytescale also supports recursive archive scans.
  6. Cost effective: With pricing at roughly $0.0004 per 1MB (based on Bytescale's standard Enterprise Plan tariff), you get top-notch security with pricing that scales with you.

How it works

To scan a file for viruses, first upload the file or create an external storage mapping to make the file accessible to Bytescale.

Next, issue a GET request to the Bytescale Antivirus API. This creates an antivirus job that starts in the "Pending" state, and is returned to you as JSON:

Screenshot of a pending virus scan job

Your file will then be scanned at a rate of approximately ~10MB/sec, meaning a 10MB file will typically return in ~1 second. After the scan completes, the job's status is moved to "Succeeded" to signal the job has completed:

Screenshot of a successful virus scan job

In the event a virus is detected, Bytescale will return the file's status as "Infected". This allows you to take remediatory action, such as deleting the file and/or informing the user or your team:

Screenshot of an unhealthy virus scan job

If the file cannot be scanned due to being excessively large or complex, you will receive a "Skipped" status indicating the scan was skipped. You can choose to treat these files however you like, although we typically advise treating them as infected, and only accepting files that have a confirmed status of "Healthy".

Pro tip: To minimize the occurrence of "Skipped" scans, we suggest restricting file uploads to less than 2GB. You can set this limit client-side or create a Bytescale "Max File Size Rule" via the Bytescale Dashboard to enforce this restriction server-side.

Screenshot of a skipped virus scan job

As we wrap up, it's essential to acknowledge that no antivirus solution can guarantee 100% effectiveness, and there's always a possibility of false positives and negatives.

Bytescale has minimized these risks as much as possible by ensuring its internal virus definition databases are updated every hour. Furthermore, we provide transparency around this by reporting the last database update time in all "Succeeded" antivirus job results (see the "database" field in the JSON results above).

For media files: we generally recommend using Bytescale's Media Processing APIs to sanitize your images, videos, and audio files for safe delivery, as these APIs reconstruct media files from scratch, which inherently eliminates a wide range of attack vectors.

For a comprehensive approach, you can always use both the Bytescale Antivirus API and a Bytescale Media Processing API, although in most situations, just the latter will suffice.

By integrating the Bytescale Antivirus API, you can benefit from industry-standard virus scanning in your app today, without worrying about the hassle of virus scanning boilerplate and infrastructure management, giving you more time to ship new features.

Pricing

The pricing for the Bytescale Antivirus API is the same as all other Bytescale File Processing APIs: the time it takes to scan a file for viruses is deducted from your Bytescale account's monthly CPU quota.

On average, it takes approximately 100ms of CPU time per 1MB of file size.

To use the Bytescale Antivirus API, you'll need to create a Bytescale account.

Documentation

Bytescale customers can learn more about integrating with the new Bytescale Antivirus API below:

Read the Bytescale Antivirus API documentation >

Don't wait to secure your application — get started with the Bytescale Antivirus API today and bring a new level of security to your app.

Share:
Henri Cook
Written by

Henri Cook Follow

Hey there, I'm Bytescale's Tech Evangelist. After spending my career as a developer dealing with tough file upload problems, I'm here to tell you about the solutions.

Stay in the know

Get new posts from the Bytescale Blog delivered straight to your inbox.