curl --request POST \
--url http://api.scanoss.com/v2/licenses/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/licenses/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/licenses/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/licenses/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/licenses/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/licenses/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/licenses/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@1.0.0",
"requirement": "",
"version": "1.0.0",
"statement": "GPL-2.0",
"licenses": [
{
"id": "GPL-2.0",
"full_name": "GNU General Public License v2.0 only",
"is_spdx_approved": true,
"url": "https://spdx.org/licenses/GPL-2.0-only.html"
}
],
"url": "https://github.com/scanoss/engine"
},
{
"purl": "pkg:github/scanoss/scanoss.py@v1.30.0",
"requirement": "",
"version": "v1.30.0",
"statement": "MIT",
"licenses": [
{
"id": "MIT",
"full_name": "MIT License",
"is_spdx_approved": true,
"url": "https://spdx.org/licenses/MIT.html"
}
],
"url": "https://github.com/scanoss/scanoss.py"
}
],
"status": {
"status": "SUCCESS",
"message": "Licenses Successfully retrieved"
}
}{
"code": 123,
"message": "<string>",
"details": [
{
"@type": "<string>"
}
]
}Get license information for multiple software components in a single request.
Examines source code, license files, and package metadata to determine which licenses apply to each component. Returns license data in both individual SPDX license and SPDX expressions when determinable.
curl --request POST \
--url http://api.scanoss.com/v2/licenses/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/licenses/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/licenses/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/licenses/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/licenses/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/licenses/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/licenses/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@1.0.0",
"requirement": "",
"version": "1.0.0",
"statement": "GPL-2.0",
"licenses": [
{
"id": "GPL-2.0",
"full_name": "GNU General Public License v2.0 only",
"is_spdx_approved": true,
"url": "https://spdx.org/licenses/GPL-2.0-only.html"
}
],
"url": "https://github.com/scanoss/engine"
},
{
"purl": "pkg:github/scanoss/scanoss.py@v1.30.0",
"requirement": "",
"version": "v1.30.0",
"statement": "MIT",
"licenses": [
{
"id": "MIT",
"full_name": "MIT License",
"is_spdx_approved": true,
"url": "https://spdx.org/licenses/MIT.html"
}
],
"url": "https://github.com/scanoss/scanoss.py"
}
],
"status": {
"status": "SUCCESS",
"message": "Licenses Successfully retrieved"
}
}{
"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 failure via info_message and info_code. Example: {"components":[{"purl":"pkg:github/scanoss/unknown-component","requirement":"","version":"","statement":"","licenses":[],"url":"","info_message":"Component version not found","info_code":"VERSION_NOT_FOUND"}],"status":{"status":"SUCCESS","message":"Success"}}