List teams
For the complete documentation index, see llms.txt. For the full documentation snapshot, see llms-full.txt.
Return a list of teams.
By default, this returns the first 20 teams. Page through this list with the limit parameter and by following the first, prev, next, and last links in the _links field that returns. If those links do not appear, the pages they refer to don’t exist. For example, the first and prev links will be missing from the response on the first page, because there is no previous page and you cannot return to the first page when you are already on the first page.
Filtering teams
LaunchDarkly supports the following fields for filters:
queryis a string that matches against the teams’ names and keys. It is not case-sensitive.- A request with
query:abcreturns teams with the stringabcin their name or key.
- A request with
nomembersis a boolean that filters the list of teams who have 0 members- A request with
nomembers:truereturns teams that have 0 members - A request with
nomembers:falsereturns teams that have 1 or more members
- A request with
Expanding the teams response
LaunchDarkly supports expanding several fields in the “List teams” response. By default, these fields are not included in the response.
To expand the response, append the expand query parameter and add a comma-separated list with any of the following fields:
membersincludes the total count of members that belong to the team.rolesincludes a paginated list of the custom roles that you have assigned to the team.roleAttributesincludes a list of the role attributes that you have assigned to the team.projectsincludes a paginated list of the projects that the team has any write access to.maintainersincludes a paginated list of the maintainers that you have assigned to the team.
For example, expand=members,maintainers includes the members and maintainers fields in the response.
curl --request GET \
--url https://app.launchdarkly.com/api/v2/teams \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/teams"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://app.launchdarkly.com/api/v2/teams', 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://app.launchdarkly.com/api/v2/teams",
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: <api-key>"
],
]);
$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://app.launchdarkly.com/api/v2/teams"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.launchdarkly.com/api/v2/teams")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/teams")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"description": "Description for this team.",
"key": "team-key-123abc",
"name": "Example team",
"_access": {
"denied": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
],
"allowed": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
]
},
"_creationDate": "1648671956143",
"_links": {
"parent": {
"href": "/api/v2/teams",
"type": "application/json"
},
"roles": {
"href": "/api/v2/teams/example-team/roles",
"type": "application/json"
},
"self": {
"href": "/api/v2/teams/example-team",
"type": "application/json"
}
},
"_lastModified": "1648672446072",
"_version": 3,
"_idpSynced": true,
"roleAttributes": "{\"developerProjectKey\": [\"default\"]}",
"roles": {
"totalCount": 1,
"items": [
{
"key": "role-key-123abc",
"name": "Example role",
"projects": {
"totalCount": 1,
"items": [
{
"_links": {
"environments": {
"href": "/api/v2/projects/example-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/example-project",
"type": "application/json"
}
},
"key": "project-key-123abc",
"name": "Example project"
}
]
},
"appliedOn": "1648672018410"
}
],
"_links": {
"self": {
"href": "/api/v2/teams/example-team/roles?limit=25",
"type": "application/json"
}
}
},
"members": {
"totalCount": 15
},
"projects": {
"totalCount": 1,
"items": [
{
"_links": {
"environments": {
"href": "/api/v2/projects/example-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/example-project",
"type": "application/json"
}
},
"key": "project-key-123abc",
"name": "Example project"
}
]
},
"maintainers": {
"totalCount": 1,
"items": [
{
"_id": "569f183514f4432160000007",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores",
"role": "reader"
}
],
"_links": {
"self": {
"href": "/api/v2/teams/example-team/maintainers?limit=20",
"type": "application/json"
}
}
}
}
],
"_links": {
"self": {
"href": "/api/v2/teams?expand=maintainers%2Cmembers%2Croles%2Cprojects&limit=20",
"type": "application/json"
}
},
"totalCount": 1
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "method_not_allowed",
"message": "Method not allowed"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}Authorizations
Query Parameters
The number of teams to return in the response. Defaults to 20.
Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and returns the next limit items.
A comma-separated list of filters. Each filter is constructed as field:value.
A comma-separated list of properties that can reveal additional information in the response.
Response
Teams collection response
An array of teams
Show child attributes
Show child attributes
The location and content type of related resources
Show child attributes
Show child attributes
{
"self": {
"href": "/api/v2/teams?expand=maintainers%2Cmembers%2Croles%2Cprojects&limit=20",
"type": "application/json"
}
}
The number of teams
1
curl --request GET \
--url https://app.launchdarkly.com/api/v2/teams \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/teams"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://app.launchdarkly.com/api/v2/teams', 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://app.launchdarkly.com/api/v2/teams",
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: <api-key>"
],
]);
$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://app.launchdarkly.com/api/v2/teams"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.launchdarkly.com/api/v2/teams")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/teams")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"description": "Description for this team.",
"key": "team-key-123abc",
"name": "Example team",
"_access": {
"denied": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
],
"allowed": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
]
},
"_creationDate": "1648671956143",
"_links": {
"parent": {
"href": "/api/v2/teams",
"type": "application/json"
},
"roles": {
"href": "/api/v2/teams/example-team/roles",
"type": "application/json"
},
"self": {
"href": "/api/v2/teams/example-team",
"type": "application/json"
}
},
"_lastModified": "1648672446072",
"_version": 3,
"_idpSynced": true,
"roleAttributes": "{\"developerProjectKey\": [\"default\"]}",
"roles": {
"totalCount": 1,
"items": [
{
"key": "role-key-123abc",
"name": "Example role",
"projects": {
"totalCount": 1,
"items": [
{
"_links": {
"environments": {
"href": "/api/v2/projects/example-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/example-project",
"type": "application/json"
}
},
"key": "project-key-123abc",
"name": "Example project"
}
]
},
"appliedOn": "1648672018410"
}
],
"_links": {
"self": {
"href": "/api/v2/teams/example-team/roles?limit=25",
"type": "application/json"
}
}
},
"members": {
"totalCount": 15
},
"projects": {
"totalCount": 1,
"items": [
{
"_links": {
"environments": {
"href": "/api/v2/projects/example-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/example-project",
"type": "application/json"
}
},
"key": "project-key-123abc",
"name": "Example project"
}
]
},
"maintainers": {
"totalCount": 1,
"items": [
{
"_id": "569f183514f4432160000007",
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores",
"role": "reader"
}
],
"_links": {
"self": {
"href": "/api/v2/teams/example-team/maintainers?limit=20",
"type": "application/json"
}
}
}
}
],
"_links": {
"self": {
"href": "/api/v2/teams?expand=maintainers%2Cmembers%2Croles%2Cprojects&limit=20",
"type": "application/json"
}
},
"totalCount": 1
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "method_not_allowed",
"message": "Method not allowed"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}