
Product
Introducing Custom Tabs for Org Alerts
Create and share saved alert views with custom tabs on the org alerts page, making it easier for teams to return to consistent, named filter sets.
@attachmentav/virus-scan-sdk-ts
Advanced tools
An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.
An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.
First, install the module.
npm i @attachmentav/virus-scan-sdk-ts
Second, get an API key by subscribing to the attachmentAV API (SaaS).
Third, send a scan request. Make sure to replace the API_KEY_PLACEHOLDER placeholder.
import { AttachmentAVApi, Configuration } from '@attachmentav/virus-scan-sdk-ts';
import { readFileSync } from 'node:fs';
import { Blob } from 'node:buffer';
const config = new Configuration({
// When using the SaaS offering
apiKey: '<API_KEY_PLACEHOLDER>'
// When using the self-hosted offering, replace attachmentav.yourcompany.com with the domain name of your attachmentAV API installation: https://attachmentav.com/help/virus-malware-scan-api-aws/developer/definition.html#domain-name
//accessToken: '<API_KEY_PLACEHOLDER>',
//basePath: 'https://attachmentav.yourcompany.com/api/v1'
});
const api = new AttachmentAVApi(config);
const scanResult = await api.scanSyncBinaryPost({
body: new Blob([readFileSync('/path/to/file')])
});
console.log('Sync binary scan result:', scanResult);
The request returns a scan result similar to the following example.
Sync binary scan result: {
status: 'clean',
finding: undefined,
size: 8100,
realfiletype: 'ASCII text / 8-bit Unicode Transformation Format'
}
attachmentAV offers antivirus for SaaS and cloud platforms. Scan your files and attachments stored in the cloud for viruses, worms, and trojans. attachmentAV detects malware in real-time. Supports Amazon S3, Atlassian, Cloudflare R2, Salesforce, WordPress, and more.
The attachmentAV Virus and Malware Scan API provides a REST API that allows you to integrate malware scans into your application. The solution comes in two variants:
attachmentAV raises the bar for information security. Our solution is ISO 27001 certified and GDPR compliant. We are establishing, implementing, maintaining, and continually improving an information security management system (ISMS). Sensitive data is encrypted in transit as well as at rest and deleted immediately after processing. More than 1,000 customers trust our malware protection technology.
npm i @attachmentav/virus-scan-sdk-ts
An active subscription and API key are required. Replace <API_KEY_PLACEHOLDER> with the API key.
import { AttachmentAVApi, Configuration } from '@attachmentav/virus-scan-sdk-ts';
const config = new Configuration({
apiKey: '<API_KEY_PLACEHOLDER>',
});
const api = new AttachmentAVApi(config);
When following the setup guide, you specified the ApiKeys parameter for the CloudFormation stack. Replace <API_KEY_PLACEHOLDER> with one of those keys.
import { AttachmentAVApi, Configuration } from '@attachmentav/virus-scan-sdk-ts';
const config = new Configuration({
accessToken: '<API_KEY_PLACEHOLDER>',
basePath: 'https://example.com/api/v1'
});
const api = new AttachmentAVApi(config);
Send a file to the attachmentAV Virus Scan API and process the scan result.
See ScanResult for details.
The maximum file size is 10 MB. The request timeout is 60 seconds.
const scanResult = await api.scanSyncBinaryPost({
body: new Blob([readFileSync('/path/to/file')])
});
console.log('Sync binary scan result:', scanResult);
Find full example: ts, mjs, cjs
Send a URL to the attachmentAV Virus Scan API. attachmentAV will download the file and return the scan result immediately.
See SyncDownloadScanRequest and ScanResult for details.
The maximum file size is 10 MB. The request timeout is 60 seconds.
const scanResult = await api.scanSyncDownloadPost({
syncDownloadScanRequest: {
downloadUrl: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf'
}
});
console.log('Sync download scan result:', scanResult);
Find full example: ts, mjs, cjs
Send an S3 bucket name and object key to the attachmentAV Virus Scan API. attachmentAV will download the file and return the scan result immediately.
See SyncS3ScanRequest and ScanResult for details.
The maximum file size is 10 MB. The request timeout is 60 seconds.
A bucket policy is required to grant attachmentAV access to private S3 objects.
const scanResult = await api.scanSyncS3Post({
syncS3ScanRequest: {
bucket: '<BUCKET_NAME_PLACEHOLDER>',
key: '<OBJECT_KEY_PLACEHOLDER>'
}
});
console.log('Sync S3 scan result:', scanResult);
Find full example: ts, mjs, cjs
Send a URL to the attachmentAV Virus Scan API. attachmentAV will download the file and send the scan result to the callback.
See AsyncDownloadScanRequest for details.
The maximum file size is 5 GB. The request timeout is 29 seconds; the asynchronous scan job is not affected by this limit.
Not supported by attachmentAV Virus Scan API (Self-hosted on AWS) yet. Contact hello@attachmentav.com to let us know, in case you need this feature.
await api.scanAsyncDownloadPost({
asyncDownloadScanRequest: {
downloadUrl: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
callbackUrl: 'https://api.yourcompany.com/attachmentav/callback'
}
});
console.log('Async download submitted');
Find full example: ts, mjs, cjs
Send a URL to the attachmentAV Virus Scan API. attachmentAV will download the file and store the scan result for 24 hours.
See AsyncDownloadScanRequest for details.
The maximum file size is 5 GB. The request timeout is 29 seconds; the asynchronous scan job is not affected by this limit.
Not supported by attachmentAV Virus Scan API (Self-hosted on AWS) yet. Contact hello@attachmentav.com to let us know, in case you need this feature.
const traceId = crypto.randomUUID();
await api.scanAsyncDownloadPost({
asyncDownloadScanRequest: {
downloadUrl: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
traceId
}
});
console.log('Async download submitted.');
// wait some time...
const scanResult = await api.scanAsyncResultGet({
traceId
});
console.log('Async download scan result:', scanResult);
Find full example: ts, mjs, cjs
Send an S3 bucket name and object key to the attachmentAV Virus Scan API. attachmentAV will download the file and send the scan result to the callback.
See AsyncS3ScanRequest for details.
The maximum file size is 5 GB. The request timeout is 29 seconds; the asynchronous scan job is not affected by this limit.
A bucket policy is required to grant attachmentAV access to private S3 objects.
Not supported by attachmentAV Virus Scan API (Self-hosted on AWS) yet. Contact hello@attachmentav.com to let us know, in case you need this feature.
await api.scanAsyncS3Post({
asyncS3ScanRequest: {
bucket: '<BUCKET_NAME_PLACEHOLDER>',
key: '<OBJECT_KEY_PLACEHOLDER>',
callbackUrl: 'https://api.yourcompany.com/attachmentav/callback'
}
});
console.log('Async S3 submitted');
Find full example: ts, mjs, cjs
Send an S3 bucket name and object key to the attachmentAV Virus Scan API. attachmentAV will download the file and store the scan result for 24 hours.
See AsyncS3ScanRequest for details.
The maximum file size is 5 GB. The request timeout is 29 seconds; the asynchronous scan job is not affected by this limit.
A bucket policy is required to grant attachmentAV access to private S3 objects.
Not supported by attachmentAV Virus Scan API (Self-hosted on AWS) yet. Contact hello@attachmentav.com to let us know, in case you need this feature.
const traceId = crypto.randomUUID();
await api.scanAsyncS3Post({
asyncS3ScanRequest: {
bucket: '<BUCKET_NAME_PLACEHOLDER>',
key: '<OBJECT_KEY_PLACEHOLDER>',
traceId
}
});
console.log('Async S3 submitted.');
// wait some time...
const scanResult = await api.scanAsyncResultGet({
traceId
});
console.log('Async download scan result:', scanResult);
Find full example: ts, mjs, cjs
Get information abour yourself.
See Whoami for details.
Not supported by attachmentAV Virus Scan API (Self-hosted on AWS).
const res = await api.whoamiGet();
console.log('Who am I?', res);
Find full example: ts, mjs, cjs
Get remaining credits and quota.
See Usage for details.
Not supported by attachmentAV Virus Scan API (Self-hosted on AWS).
const res = await api.usageGet();
console.log('Usage', res);
Find full example: ts, mjs, cjs
For more details about the data model, please refer to the following pages.
Do you need any help to get started with attachmentAV? hello@attachmentav.com.
FAQs
An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.
We found that @attachmentav/virus-scan-sdk-ts demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Create and share saved alert views with custom tabs on the org alerts page, making it easier for teams to return to consistent, named filter sets.

Product
Socket’s Rust and Cargo support is now generally available, providing dependency analysis and supply chain visibility for Rust projects.

Security News
Chrome 144 introduces the Temporal API, a modern approach to date and time handling designed to fix long-standing issues with JavaScript’s Date object.