curl --request POST \
--url http://api.scanoss.com/v2/vulnerabilities/components \
--header 'Content-Type: application/json' \
--data '
{
"components": [
{
"purl": "pkg:github/scanoss/engine@1.0.0"
},
{
"purl": "pkg:github/scanoss/scanoss.py@v1.30.0"
}
]
}
'import requests
url = "http://api.scanoss.com/v2/vulnerabilities/components"
payload = { "components": [{ "purl": "pkg:github/scanoss/engine@1.0.0" }, { "purl": "pkg:github/scanoss/scanoss.py@v1.30.0" }] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
components: [
{purl: 'pkg:github/scanoss/engine@1.0.0'},
{purl: 'pkg:github/scanoss/scanoss.py@v1.30.0'}
]
})
};
fetch('http://api.scanoss.com/v2/vulnerabilities/components', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://api.scanoss.com/v2/vulnerabilities/components",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'components' => [
[
'purl' => 'pkg:github/scanoss/engine@1.0.0'
],
[
'purl' => 'pkg:github/scanoss/scanoss.py@v1.30.0'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://api.scanoss.com/v2/vulnerabilities/components"
payload := strings.NewReader("{\n \"components\": [\n {\n \"purl\": \"pkg:github/scanoss/engine@1.0.0\"\n },\n {\n \"purl\": \"pkg:github/scanoss/scanoss.py@v1.30.0\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://api.scanoss.com/v2/vulnerabilities/components")
.header("Content-Type", "application/json")
.body("{\n \"components\": [\n {\n \"purl\": \"pkg:github/scanoss/engine@1.0.0\"\n },\n {\n \"purl\": \"pkg:github/scanoss/scanoss.py@v1.30.0\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.scanoss.com/v2/vulnerabilities/components")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"components\": [\n {\n \"purl\": \"pkg:github/scanoss/engine@1.0.0\"\n },\n {\n \"purl\": \"pkg:github/scanoss/scanoss.py@v1.30.0\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"components": [
{
"purl": "pkg:github/scanoss/engine",
"requirement": "1.0.0",
"version": "1.0.0",
"vulnerabilities": [
{
"id": "CVE-1999-0214",
"cve": "CVE-1999-0214",
"url": "https://nvd.nist.gov/vuln/detail/CVE-1999-0214",
"summary": "Denial of service by sending forged ICMP unreachable packets",
"severity": "High",
"published": "1992-07-21",
"modified": "2025-04-02",
"source": "NVD",
"cvss": [
{
"cvss": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"cvss_score": 7.5,
"cvss_severity": "High"
}
],
"epss": {
"probability": 0.00483,
"percentile": 0.64405
}
}
]
},
{
"purl": "pkg:github/scanoss/scanoss.py",
"requirement": "v1.30.0",
"version": "v1.30.0",
"vulnerabilities": [
{
"id": "CVE-2024-54321",
"cve": "CVE-2024-54321",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-54321",
"summary": "Denial of service vulnerability",
"severity": "Medium",
"published": "2024-01-15",
"modified": "2024-02-01",
"source": "NDV",
"cvss": [
{
"cvss": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L",
"cvss_score": 4.3,
"cvss_severity": "Medium"
}
],
"epss": {
"probability": 0.0012,
"percentile": 0.3162
}
}
]
}
],
"status": {
"status": "SUCCESS",
"message": "Vulnerabilities Successfully retrieved"
}
}"<string>"{
"code": 123,
"message": "<string>",
"details": [
{
"@type": "<string>"
}
]
}Get vulnerability information for multiple software components in a single request.
Analyzes multiple components and returns known vulnerabilities for each including CVE details, severity scores, publication dates, and other security metadata. Vulnerability data is sourced from various security databases and feeds.
curl --request POST \
--url http://api.scanoss.com/v2/vulnerabilities/components \
--header 'Content-Type: application/json' \
--data '
{
"components": [
{
"purl": "pkg:github/scanoss/engine@1.0.0"
},
{
"purl": "pkg:github/scanoss/scanoss.py@v1.30.0"
}
]
}
'import requests
url = "http://api.scanoss.com/v2/vulnerabilities/components"
payload = { "components": [{ "purl": "pkg:github/scanoss/engine@1.0.0" }, { "purl": "pkg:github/scanoss/scanoss.py@v1.30.0" }] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
components: [
{purl: 'pkg:github/scanoss/engine@1.0.0'},
{purl: 'pkg:github/scanoss/scanoss.py@v1.30.0'}
]
})
};
fetch('http://api.scanoss.com/v2/vulnerabilities/components', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://api.scanoss.com/v2/vulnerabilities/components",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'components' => [
[
'purl' => 'pkg:github/scanoss/engine@1.0.0'
],
[
'purl' => 'pkg:github/scanoss/scanoss.py@v1.30.0'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://api.scanoss.com/v2/vulnerabilities/components"
payload := strings.NewReader("{\n \"components\": [\n {\n \"purl\": \"pkg:github/scanoss/engine@1.0.0\"\n },\n {\n \"purl\": \"pkg:github/scanoss/scanoss.py@v1.30.0\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://api.scanoss.com/v2/vulnerabilities/components")
.header("Content-Type", "application/json")
.body("{\n \"components\": [\n {\n \"purl\": \"pkg:github/scanoss/engine@1.0.0\"\n },\n {\n \"purl\": \"pkg:github/scanoss/scanoss.py@v1.30.0\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.scanoss.com/v2/vulnerabilities/components")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"components\": [\n {\n \"purl\": \"pkg:github/scanoss/engine@1.0.0\"\n },\n {\n \"purl\": \"pkg:github/scanoss/scanoss.py@v1.30.0\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"components": [
{
"purl": "pkg:github/scanoss/engine",
"requirement": "1.0.0",
"version": "1.0.0",
"vulnerabilities": [
{
"id": "CVE-1999-0214",
"cve": "CVE-1999-0214",
"url": "https://nvd.nist.gov/vuln/detail/CVE-1999-0214",
"summary": "Denial of service by sending forged ICMP unreachable packets",
"severity": "High",
"published": "1992-07-21",
"modified": "2025-04-02",
"source": "NVD",
"cvss": [
{
"cvss": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"cvss_score": 7.5,
"cvss_severity": "High"
}
],
"epss": {
"probability": 0.00483,
"percentile": 0.64405
}
}
]
},
{
"purl": "pkg:github/scanoss/scanoss.py",
"requirement": "v1.30.0",
"version": "v1.30.0",
"vulnerabilities": [
{
"id": "CVE-2024-54321",
"cve": "CVE-2024-54321",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-54321",
"summary": "Denial of service vulnerability",
"severity": "Medium",
"published": "2024-01-15",
"modified": "2024-02-01",
"source": "NDV",
"cvss": [
{
"cvss": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L",
"cvss_score": 4.3,
"cvss_severity": "Medium"
}
],
"epss": {
"probability": 0.0012,
"percentile": 0.3162
}
}
]
}
],
"status": {
"status": "SUCCESS",
"message": "Vulnerabilities Successfully retrieved"
}
}"<string>"{
"code": 123,
"message": "<string>",
"details": [
{
"@type": "<string>"
}
]
}Body
Represents a list of software component to be analyzed by SCANOSS API services. Allows analysis of multiple software components in a single API call, improving performance over individual requests.
Represents a list of software component to be analyzed by SCANOSS API services. Allows analysis of multiple software components in a single API call, improving performance over individual requests.
Show child attributes
Show child attributes
Response
A successful response.
Success example. For error cases, each component block reports the processing status via info_message and info_code. Example: {"components":[{"purl":"pkg:github/scanoss/engine","requirement":"1.0.0","version":"1.0.0","vulnerabilities":[{"id":"CVE-1999-0214","cve":"CVE-1999-0214"}]},{"purl":"pkg:github/unknown/component","requirement":"","version":"","vulnerabilities":[],"info_message":"Component not found in database","info_code":"COMPONENT_NOT_FOUND"}],"status":{"status":"SUCCESS","message":"Request processed"}}