List repositories with dependencies
curl --request POST \
--url https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"deploymentId": "<string>",
"dependencyFilter": {
"name": "<string>",
"version": "<string>",
"repositoryId": [
123
],
"lockfilePath": "<string>",
"license": [
"<string>"
],
"packageFilters": [
{
"name": "<string>",
"versionLowerBound": "<string>",
"versionUpperBound": "<string>",
"exactVersion": "<string>",
"exactNameMatch": true
}
],
"includeArchived": true
},
"cursor": 123,
"pageSize": 100
}
'import requests
url = "https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories"
payload = {
"deploymentId": "<string>",
"dependencyFilter": {
"name": "<string>",
"version": "<string>",
"repositoryId": [123],
"lockfilePath": "<string>",
"license": ["<string>"],
"packageFilters": [
{
"name": "<string>",
"versionLowerBound": "<string>",
"versionUpperBound": "<string>",
"exactVersion": "<string>",
"exactNameMatch": True
}
],
"includeArchived": True
},
"cursor": 123,
"pageSize": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
deploymentId: '<string>',
dependencyFilter: {
name: '<string>',
version: '<string>',
repositoryId: [123],
lockfilePath: '<string>',
license: ['<string>'],
packageFilters: [
{
name: '<string>',
versionLowerBound: '<string>',
versionUpperBound: '<string>',
exactVersion: '<string>',
exactNameMatch: true
}
],
includeArchived: true
},
cursor: 123,
pageSize: 100
})
};
fetch('https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories', 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 => "https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories",
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([
'deploymentId' => '<string>',
'dependencyFilter' => [
'name' => '<string>',
'version' => '<string>',
'repositoryId' => [
123
],
'lockfilePath' => '<string>',
'license' => [
'<string>'
],
'packageFilters' => [
[
'name' => '<string>',
'versionLowerBound' => '<string>',
'versionUpperBound' => '<string>',
'exactVersion' => '<string>',
'exactNameMatch' => true
]
],
'includeArchived' => true
],
'cursor' => 123,
'pageSize' => 100
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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 := "https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories"
payload := strings.NewReader("{\n \"deploymentId\": \"<string>\",\n \"dependencyFilter\": {\n \"name\": \"<string>\",\n \"version\": \"<string>\",\n \"repositoryId\": [\n 123\n ],\n \"lockfilePath\": \"<string>\",\n \"license\": [\n \"<string>\"\n ],\n \"packageFilters\": [\n {\n \"name\": \"<string>\",\n \"versionLowerBound\": \"<string>\",\n \"versionUpperBound\": \"<string>\",\n \"exactVersion\": \"<string>\",\n \"exactNameMatch\": true\n }\n ],\n \"includeArchived\": true\n },\n \"cursor\": 123,\n \"pageSize\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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("https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"deploymentId\": \"<string>\",\n \"dependencyFilter\": {\n \"name\": \"<string>\",\n \"version\": \"<string>\",\n \"repositoryId\": [\n 123\n ],\n \"lockfilePath\": \"<string>\",\n \"license\": [\n \"<string>\"\n ],\n \"packageFilters\": [\n {\n \"name\": \"<string>\",\n \"versionLowerBound\": \"<string>\",\n \"versionUpperBound\": \"<string>\",\n \"exactVersion\": \"<string>\",\n \"exactNameMatch\": true\n }\n ],\n \"includeArchived\": true\n },\n \"cursor\": 123,\n \"pageSize\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"deploymentId\": \"<string>\",\n \"dependencyFilter\": {\n \"name\": \"<string>\",\n \"version\": \"<string>\",\n \"repositoryId\": [\n 123\n ],\n \"lockfilePath\": \"<string>\",\n \"license\": [\n \"<string>\"\n ],\n \"packageFilters\": [\n {\n \"name\": \"<string>\",\n \"versionLowerBound\": \"<string>\",\n \"versionUpperBound\": \"<string>\",\n \"exactVersion\": \"<string>\",\n \"exactNameMatch\": true\n }\n ],\n \"includeArchived\": true\n },\n \"cursor\": 123,\n \"pageSize\": 100\n}"
response = http.request(request)
puts response.read_body{
"repositorySummaries": [
{
"id": 123,
"name": "<string>",
"numDependencies": 123,
"hasDependencyPathScan": true
}
],
"hasMore": true,
"cursor": 123
}Supply Chain
List repositories with dependencies
Returns any repositories which contain dependencies that match the given filter for a deployment
POST
/
api
/
sca
/
deployments
/
{deploymentId}
/
repositories
List repositories with dependencies
curl --request POST \
--url https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"deploymentId": "<string>",
"dependencyFilter": {
"name": "<string>",
"version": "<string>",
"repositoryId": [
123
],
"lockfilePath": "<string>",
"license": [
"<string>"
],
"packageFilters": [
{
"name": "<string>",
"versionLowerBound": "<string>",
"versionUpperBound": "<string>",
"exactVersion": "<string>",
"exactNameMatch": true
}
],
"includeArchived": true
},
"cursor": 123,
"pageSize": 100
}
'import requests
url = "https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories"
payload = {
"deploymentId": "<string>",
"dependencyFilter": {
"name": "<string>",
"version": "<string>",
"repositoryId": [123],
"lockfilePath": "<string>",
"license": ["<string>"],
"packageFilters": [
{
"name": "<string>",
"versionLowerBound": "<string>",
"versionUpperBound": "<string>",
"exactVersion": "<string>",
"exactNameMatch": True
}
],
"includeArchived": True
},
"cursor": 123,
"pageSize": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
deploymentId: '<string>',
dependencyFilter: {
name: '<string>',
version: '<string>',
repositoryId: [123],
lockfilePath: '<string>',
license: ['<string>'],
packageFilters: [
{
name: '<string>',
versionLowerBound: '<string>',
versionUpperBound: '<string>',
exactVersion: '<string>',
exactNameMatch: true
}
],
includeArchived: true
},
cursor: 123,
pageSize: 100
})
};
fetch('https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories', 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 => "https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories",
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([
'deploymentId' => '<string>',
'dependencyFilter' => [
'name' => '<string>',
'version' => '<string>',
'repositoryId' => [
123
],
'lockfilePath' => '<string>',
'license' => [
'<string>'
],
'packageFilters' => [
[
'name' => '<string>',
'versionLowerBound' => '<string>',
'versionUpperBound' => '<string>',
'exactVersion' => '<string>',
'exactNameMatch' => true
]
],
'includeArchived' => true
],
'cursor' => 123,
'pageSize' => 100
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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 := "https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories"
payload := strings.NewReader("{\n \"deploymentId\": \"<string>\",\n \"dependencyFilter\": {\n \"name\": \"<string>\",\n \"version\": \"<string>\",\n \"repositoryId\": [\n 123\n ],\n \"lockfilePath\": \"<string>\",\n \"license\": [\n \"<string>\"\n ],\n \"packageFilters\": [\n {\n \"name\": \"<string>\",\n \"versionLowerBound\": \"<string>\",\n \"versionUpperBound\": \"<string>\",\n \"exactVersion\": \"<string>\",\n \"exactNameMatch\": true\n }\n ],\n \"includeArchived\": true\n },\n \"cursor\": 123,\n \"pageSize\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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("https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"deploymentId\": \"<string>\",\n \"dependencyFilter\": {\n \"name\": \"<string>\",\n \"version\": \"<string>\",\n \"repositoryId\": [\n 123\n ],\n \"lockfilePath\": \"<string>\",\n \"license\": [\n \"<string>\"\n ],\n \"packageFilters\": [\n {\n \"name\": \"<string>\",\n \"versionLowerBound\": \"<string>\",\n \"versionUpperBound\": \"<string>\",\n \"exactVersion\": \"<string>\",\n \"exactNameMatch\": true\n }\n ],\n \"includeArchived\": true\n },\n \"cursor\": 123,\n \"pageSize\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/sca/deployments/{deploymentId}/repositories")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"deploymentId\": \"<string>\",\n \"dependencyFilter\": {\n \"name\": \"<string>\",\n \"version\": \"<string>\",\n \"repositoryId\": [\n 123\n ],\n \"lockfilePath\": \"<string>\",\n \"license\": [\n \"<string>\"\n ],\n \"packageFilters\": [\n {\n \"name\": \"<string>\",\n \"versionLowerBound\": \"<string>\",\n \"versionUpperBound\": \"<string>\",\n \"exactVersion\": \"<string>\",\n \"exactNameMatch\": true\n }\n ],\n \"includeArchived\": true\n },\n \"cursor\": 123,\n \"pageSize\": 100\n}"
response = http.request(request)
puts response.read_body{
"repositorySummaries": [
{
"id": 123,
"name": "<string>",
"numDependencies": 123,
"hasDependencyPathScan": true
}
],
"hasMore": true,
"cursor": 123
}This endpoint is experimental. It may change or be removed without notice and is not covered by API stability guarantees.
Authorizations
SemgrepWebTokenSemgrepJWT
Get access to data with your API token. Example header:
Authorization: Bearer 2991e2fb4b540fe75b8f90677b0b892b6314e4961cb001fe6eb452eee248a628
The token can be provisioned from the Tokens section in your Settings, and requires explicitly enabling Web API access.
Path Parameters
Deployment ID (numeric). Example: 123. Can be found at /deployments, or in your Settings in the web UI.
Body
application/json
Deployment ID (numeric). Example: 123. Can be found at /deployments, or in your Settings in the web UI.
Object to provide dependency details to filter by.
Show child attributes
Show child attributes
Use cursor in response to get next page of results.
Number of repositories per page.
Required range:
1 <= x <= 100Example:
100
Was this page helpful?
⌘I