List Joinable Organizations
curl --request GET \
--url https://semgrep.dev/api/auth/users/current/deployments/joinable \
--header 'Authorization: Bearer <token>'import requests
url = "https://semgrep.dev/api/auth/users/current/deployments/joinable"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://semgrep.dev/api/auth/users/current/deployments/joinable', 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/auth/users/current/deployments/joinable",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://semgrep.dev/api/auth/users/current/deployments/joinable"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://semgrep.dev/api/auth/users/current/deployments/joinable")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/auth/users/current/deployments/joinable")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"userId": "<string>",
"orgs": [
{
"id": "<string>",
"name": "<string>",
"displayName": "<string>",
"slug": "<string>",
"sourceType": "<string>",
"features": {
"featureFlags": [
{
"name": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
],
"hasAutofix": true,
"hasDeepsemgrep": true,
"hasTriageViaComment": true,
"hasDependencyQuery": true,
"defaultUserRole": "ORG_ROLE_ADMIN",
"editorSemgrepVersion": "<string>",
"nosemgrepDisabled": true
},
"organizationId": "<string>"
}
]
}Users Auth Service
List Joinable Organizations
List all organizations/deployments that a user can join
GET
/
api
/
auth
/
users
/
current
/
deployments
/
joinable
List Joinable Organizations
curl --request GET \
--url https://semgrep.dev/api/auth/users/current/deployments/joinable \
--header 'Authorization: Bearer <token>'import requests
url = "https://semgrep.dev/api/auth/users/current/deployments/joinable"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://semgrep.dev/api/auth/users/current/deployments/joinable', 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/auth/users/current/deployments/joinable",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://semgrep.dev/api/auth/users/current/deployments/joinable"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://semgrep.dev/api/auth/users/current/deployments/joinable")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/auth/users/current/deployments/joinable")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"userId": "<string>",
"orgs": [
{
"id": "<string>",
"name": "<string>",
"displayName": "<string>",
"slug": "<string>",
"sourceType": "<string>",
"features": {
"featureFlags": [
{
"name": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
],
"hasAutofix": true,
"hasDeepsemgrep": true,
"hasTriageViaComment": true,
"hasDependencyQuery": true,
"defaultUserRole": "ORG_ROLE_ADMIN",
"editorSemgrepVersion": "<string>",
"nosemgrepDisabled": true
},
"organizationId": "<string>"
}
]
}This endpoint is experimental. It may change or be removed without notice, and is not covered by API stability guarantees.
Authorizations
Get access to data with your user's JSON Web Token.
Query Parameters
The user ID to list organizations for. NOTE: As of June 2025, it must be equal to the requester's ID.
Was this page helpful?
⌘I