API Docs Help

Scan File

POST method/v1/malware/scan/file

Scans a file for malware.

Request parameters

curl https://eu1.api.av.ionxsolutions.com/v1/malware/scan/file \ --header 'X-API-Key: YOUR_API_KEY' \ --form file=@/path/to/a/file.docx
const axios = require('axios'); const fs = require('fs'); const FormData = require('form-data'); const api = axios.create({ baseURL: 'https://eu1.api.av.ionxsolutions.com/v1/' }); const formData = new FormData(); formData.append('file', fs.createReadStream('/path/to/a/file.docx'), 'file.docx'); api.post('malware/scan/file', formData, { headers: { ...formData.getHeaders(), 'X-API-Key': 'YOUR_API_KEY' } }).then(res => { console.log('response', res.data); }).catch(err => { console.log('error', err); });
using var client = new HttpClient(); client.BaseAddress = new Uri("https://eu1.api.av.ionxsolutions.com/v1/"); client.DefaultRequestHeaders.Add("X-API-Key", "YOUR_API_KEY"); using var file = File.OpenRead("/path/to/a/file.docx"); using var formData = new MultipartFormDataContent(); formData.Add(new StreamContent(file), "file", file.Name); using var response = await client.PostAsync("malware/scan/file", formData); response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.OkHttpClient; import okhttp3.RequestBody; import okhttp3.Request; import okhttp3.Response; import java.io.File; import java.io.IOException; String apiKey = "YOUR_API_KEY"; String url = "https://eu1.api.av.ionxsolutions.com/v1/malware/scan/file"; String filePath = "/path/to/a/file.docx"; OkHttpClient client = new OkHttpClient(); File file = new File(filePath); MediaType mediaType = MediaType.parse("application/octet-stream"); RequestBody fileBody = RequestBody.create(file, mediaType); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("file", "file.docx", fileBody) .build(); Request request = new Request.Builder() .url(url) .addHeader("X-API-Key", apiKey) .post(requestBody) .build(); Response response = client.newCall(request).execute(); if (response.isSuccessful()) { System.out.println(response.body().string()); } else { System.err.println("Request failed. Status code: " + response.code()); System.err.println("Response message: " + response.message()); System.err.println(response.body().string()); }
import requests url = 'https://eu1.api.av.ionxsolutions.com/v1/malware/scan/file' headers = { 'X-API-Key': 'YOUR_API_KEY' } files = { 'file': ('file.docx', open('/path/to/a/file.docx', 'rb')) } response = requests.post(url, headers=headers, files=files) print(response.text)
package main import ( "bytes" "fmt" "io" "mime/multipart" "net/http" "os" ) func main() { apiKey := "YOUR_API_KEY" url := "https://eu1.api.av.ionxsolutions.com/v1/malware/scan/file" var buffer bytes.Buffer writer := multipart.NewWriter(&buffer) file, err := os.Open("/path/to/a/file.docx") if err != nil { fmt.Println(err) return } defer file.Close() fileWriter, _ := writer.CreateFormFile("file", "file.docx") io.Copy(fileWriter, file) writer.Close() req, _ := http.NewRequest("POST", url, &buffer) req.Header.Set("Content-Type", writer.FormDataContentType()) req.Header.Set("X-API-Key", apiKey) client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Println(err) return } defer resp.Body.Close() if resp.StatusCode == 201 { var respBuffer bytes.Buffer io.Copy(&respBuffer, resp.Body) fmt.Println(respBuffer.String()) } else { fmt.Printf("Request failed. Status code: %d\n", resp.StatusCode) } }
require 'net/http' require 'uri' url = URI.parse('https://eu1.api.av.ionxsolutions.com/v1/malware/scan/file') file_path = '/path/to/a/file.docx' request = Net::HTTP::Post.new(url) request['X-API-Key'] = 'YOUR_API_KEY' request.set_form([['file', File.open(file_path)]], 'multipart/form-data') response = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do |http| http.request(request) end puts response.body
<?php $url = 'https://eu1.api.av.ionxsolutions.com/v1/malware/scan/file'; $api_key = 'YOUR_API_KEY'; $file_path = '/path/to/a/file.docx'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $form = [ 'file' => new \CurlFile($file_path, 'application/octet-stream', 'file.docx') ]; curl_setopt($curl, CURLOPT_POSTFIELDS, $form); $headers = array(); $headers[] = 'Content-Type: multipart/form-data'; $headers[] = 'X-API-Key: '.$api_key; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($curl); if ($result === false) { curl_close($curl); die('Curl error: '.curl_error($curl).'('.curl_errno($curl).')'); } $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($http_code != 201) { die('HTTP error: Status code '.$http_code); } echo $result;
$Uri = "https://eu1.api.av.ionxsolutions.com/v1/malware/scan/file" $Headers = @{ "X-API-Key" = "YOUR_API_KEY" }; $Form = @{ file = Get-Item -Path "/path/to/a/file.docx" } $Result = Invoke-RestMethod -Uri $Uri -Method Post -Headers $Headers -Form $Form Write-Host ($Result | ConvertTo-Json)

Responses

{ "type": "https://tools.ietf.org/html/rfc9110#section-15.6.1", "title": "Internal Server Error", "status": 500, "detail": "Something went wrong", "traceId": "00-17d017df2498eac9e698f1a06747a161-c9d4f32199479052-01" }
{ "id": "5a53b6f5-871a-495a-8972-b8d0dcb80844", "scan_type": "malware", "status": "threat", "content_length": 68, "content_type": "text/plain", "signals": [ "Virus:EICAR_Test_File" ], "metadata": { "hash_sha1": "3395856ce81f2b7382dee72602f798b642f14140", "hash_sha256": "275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f" }, "created_at": "2024-10-18T12:43:01.881738+00:00", "completed_at": "2024-10-18T12:43:02.214356+00:00" }
{ "type": "https://datatracker.ietf.org/doc/html/rfc7807#section-15.5.21", "title": "One or more validation errors occurred.", "status": 422, "instance": "/v1/malware/scan/file", "errors": { "file_name": [ "Invalid filename - too long" ] }, "traceId": "00-f4ee9395de696115b3b8af12e193c3d0-3b2749428bed3231-01" }
Last modified: 08 November 2024