curl --request GET \
--url https://app.launchdarkly.com/api/v2/approval-requests \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/approval-requests"
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/approval-requests', 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/approval-requests",
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/approval-requests"
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/approval-requests")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/approval-requests")
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": [
{
"_id": "12ab3c45de678910abc12345",
"_version": 1,
"creationDate": "1654104600000",
"serviceKind": "launchdarkly",
"reviewStatus": "pending",
"allReviews": [
{
"_id": "12ab3c45de678910abc12345",
"kind": "approve",
"creationDate": "1653606981113",
"comment": "Approved!",
"memberId": "12ab3c45de678910abc12345",
"serviceTokenId": "12ab3c45de678910abc12345"
}
],
"notifyMemberIds": [
"1234a56b7c89d012345e678f"
],
"status": "pending",
"instructions": "[{\"kind\": \"turnFlagOn\"}]",
"conflicts": [
{
"instruction": {},
"reason": "<string>"
}
],
"_links": {},
"requestorId": "12ab3c45de678910abc12345",
"description": "example: request approval from someone",
"notifyTeamKeys": [
"example-reviewer-team"
],
"appliedDate": "1654104600000",
"appliedByMemberId": "1234a56b7c89d012345e678f",
"appliedByServiceTokenId": "1234a56b7c89d012345e678f",
"executionDate": "1654104600000",
"operatingOnId": "12ab3c45de678910abc12345",
"integrationMetadata": {
"externalId": "<string>",
"externalStatus": {
"display": "<string>",
"value": "<string>"
},
"externalUrl": "<string>",
"lastChecked": 123
},
"source": {
"key": "source-flag-key-123abc",
"version": 1
},
"customWorkflowMetadata": {
"name": "Example workflow name",
"stage": {
"index": 0,
"name": "Stage 1"
}
},
"resourceId": "<string>",
"approvalSettings": {
"required": true,
"bypassApprovalsForPendingChanges": false,
"minNumApprovals": 1,
"canReviewOwnRequest": false,
"canApplyDeclinedChanges": true,
"serviceKind": "launchdarkly",
"serviceConfig": {},
"requiredApprovalTags": [
"require-approval"
],
"autoApplyApprovedChanges": true,
"serviceKindConfigurationId": "1ef45a85-218f-4428-a8b2-a97e5f56c258"
},
"project": {
"_links": {
"environments": {
"href": "/api/v2/projects/my-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
}
},
"_id": "57be1db38b75bf0772d11383",
"key": "project-key-123abc",
"includeInSnippetByDefault": true,
"name": "My Project",
"tags": [
"ops"
],
"defaultClientSideAvailability": {
"usingMobileKey": true,
"usingEnvironmentId": true
},
"_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>"
}
}
]
},
"defaultReleasePipelineKey": "<string>",
"environments": {
"items": [
{
"_links": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
},
"_id": "57be1db38b75bf0772d11384",
"key": "environment-key-123abc",
"name": "My Environment",
"apiKey": "sdk-xxx",
"mobileKey": "mob-xxx",
"color": "F5A623",
"defaultTtl": 5,
"secureMode": true,
"defaultTrackEvents": false,
"requireComments": true,
"confirmChanges": true,
"tags": [
"ops"
],
"critical": true,
"_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>"
}
}
]
},
"approvalSettings": {
"required": true,
"bypassApprovalsForPendingChanges": false,
"minNumApprovals": 1,
"canReviewOwnRequest": false,
"canApplyDeclinedChanges": true,
"serviceKind": "launchdarkly",
"serviceConfig": {},
"requiredApprovalTags": [
"require-approval"
],
"autoApplyApprovedChanges": true,
"serviceKindConfigurationId": "1ef45a85-218f-4428-a8b2-a97e5f56c258"
},
"resourceApprovalSettings": {}
}
],
"_links": {},
"totalCount": 2
}
},
"environments": [
{
"_links": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
},
"_id": "57be1db38b75bf0772d11384",
"key": "environment-key-123abc",
"name": "My Environment",
"apiKey": "sdk-xxx",
"mobileKey": "mob-xxx",
"color": "F5A623",
"defaultTtl": 5,
"secureMode": true,
"defaultTrackEvents": false,
"requireComments": true,
"confirmChanges": true,
"tags": [
"ops"
],
"critical": true,
"_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>"
}
}
]
},
"approvalSettings": {
"required": true,
"bypassApprovalsForPendingChanges": false,
"minNumApprovals": 1,
"canReviewOwnRequest": false,
"canApplyDeclinedChanges": true,
"serviceKind": "launchdarkly",
"serviceConfig": {},
"requiredApprovalTags": [
"require-approval"
],
"autoApplyApprovedChanges": true,
"serviceKindConfigurationId": "1ef45a85-218f-4428-a8b2-a97e5f56c258"
},
"resourceApprovalSettings": {}
}
],
"flag": {
"name": "My Flag",
"kind": "boolean",
"key": "flag-key-123abc",
"_version": 1,
"creationDate": "1494437420312",
"variations": [
{
"_id": "e432f62b-55f6-49dd-a02f-eb24acf39d05",
"value": true
},
{
"_id": "a00bf58d-d252-476c-b915-15a74becacb4",
"value": false
}
],
"temporary": true,
"tags": [
"example-tag"
],
"_links": {
"parent": {
"href": "/api/v2/flags/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
}
},
"customProperties": "{\"jira.issues\":{\"name\":\"Jira issues\",\"value\":[\"is-123\",\"is-456\"]}}",
"archived": false,
"description": "This flag controls the example widgets",
"includeInSnippet": true,
"clientSideAvailability": "{\"usingMobileKey\":true,\"usingEnvironmentId\":false}",
"maintainerId": "569f183514f4432160000007",
"_maintainer": {
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"role": "admin",
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores"
},
"archivedDate": "1494437420312",
"defaults": "{\"onVariation\":0,\"offVariation\":1}"
},
"resource": {
"kind": "flag",
"aiConfig": {
"key": "aiconfig-key-123abc",
"name": "AI Config 1"
},
"experiment": {
"key": "experiment-key-123abc",
"name": "My Experiment",
"_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>"
}
}
]
}
},
"flag": {
"name": "My Flag",
"kind": "boolean",
"key": "flag-key-123abc",
"_version": 1,
"creationDate": "1494437420312",
"variations": [
{
"_id": "e432f62b-55f6-49dd-a02f-eb24acf39d05",
"value": true
},
{
"_id": "a00bf58d-d252-476c-b915-15a74becacb4",
"value": false
}
],
"temporary": true,
"tags": [
"example-tag"
],
"_links": {
"parent": {
"href": "/api/v2/flags/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
}
},
"customProperties": "{\"jira.issues\":{\"name\":\"Jira issues\",\"value\":[\"is-123\",\"is-456\"]}}",
"archived": false,
"description": "This flag controls the example widgets",
"includeInSnippet": true,
"clientSideAvailability": "{\"usingMobileKey\":true,\"usingEnvironmentId\":false}",
"maintainerId": "569f183514f4432160000007",
"_maintainer": {
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"role": "admin",
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores"
},
"archivedDate": "1494437420312",
"defaults": "{\"onVariation\":0,\"offVariation\":1}"
},
"segment": {
"name": "Example segment",
"tags": [
"testing"
],
"creationDate": "1654104600000",
"lastModifiedDate": "1654104600000",
"key": "segment-key-123abc",
"_links": {},
"rules": [
{
"_id": "1234a56b7c89d012345e678f",
"clauses": [
{
"_id": "12ab3c45de678910fab12345",
"attribute": "email",
"negate": false,
"op": "endsWith",
"values": [
".edu"
]
}
]
}
],
"version": 1,
"deleted": false,
"generation": 123,
"description": "Bundle our sample customers together",
"included": [
"user-key-123abc"
],
"excluded": [
"user-key-123abc"
],
"includedContexts": [
{
"values": [
"<string>"
],
"contextKind": "<string>"
}
],
"excludedContexts": [
{
"values": [
"<string>"
],
"contextKind": "<string>"
}
],
"_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>"
}
}
]
},
"_flags": [
{
"name": "Example flag",
"key": "flag-key-123abc",
"_links": {},
"_site": {
"href": "<string>",
"type": "<string>"
}
}
],
"unbounded": false,
"unboundedContextKind": "<string>",
"_unboundedMetadata": {
"envId": "<string>",
"segmentId": "<string>",
"version": 123,
"includedCount": 123,
"excludedCount": 123,
"lastModified": 123,
"deleted": true
},
"_external": "amplitude",
"_externalLink": "https://analytics.amplitude.com/org/1234/cohort/123abc",
"_importInProgress": false
}
}
}
],
"totalCount": 1,
"_links": {}
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}List approval requests
Get all approval requests.
Filtering approvals
LaunchDarkly supports the filter query param for filtering, with the following fields:
notifyMemberIdsfilters for only approvals that are assigned to a member in the specified list. For example:filter=notifyMemberIds anyOf ["memberId1", "memberId2"].requestorIdfilters for only approvals that correspond to the ID of the member who requested the approval. For example:filter=requestorId equals 457034721476302714390214.resourceIdfilters for only approvals that correspond to the the specified resource identifier. For example:filter=resourceId equals proj/my-project:env/my-environment:flag/my-flag.resourceKindfilters for only approvals that correspond to the specified resource kind. For example:filter=resourceKind equals flag. Currently,flag,segment, andaiConfigresource kinds are supported.reviewStatusfilters for only approvals which correspond to the review status in the specified list. The possible values areapproved,declined, andpending. For example:filter=reviewStatus anyOf ["pending", "approved"].statusfilters for only approvals which correspond to the status in the specified list. The possible values arepending,scheduled,failed, andcompleted. For example:filter=status anyOf ["pending", "scheduled"].
You can also apply multiple filters at once. For example, setting filter=projectKey equals my-project, reviewStatus anyOf ["pending","approved"] matches approval requests which correspond to the my-project project key, and a review status of either pending or approved.
Expanding approval response
LaunchDarkly supports the expand query param to include additional fields in the response, with the following fields:
flagincludes the flag the approval request belongs toprojectincludes the project the approval request belongs toenvironmentsincludes the environments the approval request relates to
For example, expand=project,flag includes the project and flag fields in the response.
curl --request GET \
--url https://app.launchdarkly.com/api/v2/approval-requests \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/approval-requests"
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/approval-requests', 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/approval-requests",
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/approval-requests"
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/approval-requests")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/approval-requests")
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": [
{
"_id": "12ab3c45de678910abc12345",
"_version": 1,
"creationDate": "1654104600000",
"serviceKind": "launchdarkly",
"reviewStatus": "pending",
"allReviews": [
{
"_id": "12ab3c45de678910abc12345",
"kind": "approve",
"creationDate": "1653606981113",
"comment": "Approved!",
"memberId": "12ab3c45de678910abc12345",
"serviceTokenId": "12ab3c45de678910abc12345"
}
],
"notifyMemberIds": [
"1234a56b7c89d012345e678f"
],
"status": "pending",
"instructions": "[{\"kind\": \"turnFlagOn\"}]",
"conflicts": [
{
"instruction": {},
"reason": "<string>"
}
],
"_links": {},
"requestorId": "12ab3c45de678910abc12345",
"description": "example: request approval from someone",
"notifyTeamKeys": [
"example-reviewer-team"
],
"appliedDate": "1654104600000",
"appliedByMemberId": "1234a56b7c89d012345e678f",
"appliedByServiceTokenId": "1234a56b7c89d012345e678f",
"executionDate": "1654104600000",
"operatingOnId": "12ab3c45de678910abc12345",
"integrationMetadata": {
"externalId": "<string>",
"externalStatus": {
"display": "<string>",
"value": "<string>"
},
"externalUrl": "<string>",
"lastChecked": 123
},
"source": {
"key": "source-flag-key-123abc",
"version": 1
},
"customWorkflowMetadata": {
"name": "Example workflow name",
"stage": {
"index": 0,
"name": "Stage 1"
}
},
"resourceId": "<string>",
"approvalSettings": {
"required": true,
"bypassApprovalsForPendingChanges": false,
"minNumApprovals": 1,
"canReviewOwnRequest": false,
"canApplyDeclinedChanges": true,
"serviceKind": "launchdarkly",
"serviceConfig": {},
"requiredApprovalTags": [
"require-approval"
],
"autoApplyApprovedChanges": true,
"serviceKindConfigurationId": "1ef45a85-218f-4428-a8b2-a97e5f56c258"
},
"project": {
"_links": {
"environments": {
"href": "/api/v2/projects/my-project/environments",
"type": "application/json"
},
"self": {
"href": "/api/v2/projects/my-project",
"type": "application/json"
}
},
"_id": "57be1db38b75bf0772d11383",
"key": "project-key-123abc",
"includeInSnippetByDefault": true,
"name": "My Project",
"tags": [
"ops"
],
"defaultClientSideAvailability": {
"usingMobileKey": true,
"usingEnvironmentId": true
},
"_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>"
}
}
]
},
"defaultReleasePipelineKey": "<string>",
"environments": {
"items": [
{
"_links": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
},
"_id": "57be1db38b75bf0772d11384",
"key": "environment-key-123abc",
"name": "My Environment",
"apiKey": "sdk-xxx",
"mobileKey": "mob-xxx",
"color": "F5A623",
"defaultTtl": 5,
"secureMode": true,
"defaultTrackEvents": false,
"requireComments": true,
"confirmChanges": true,
"tags": [
"ops"
],
"critical": true,
"_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>"
}
}
]
},
"approvalSettings": {
"required": true,
"bypassApprovalsForPendingChanges": false,
"minNumApprovals": 1,
"canReviewOwnRequest": false,
"canApplyDeclinedChanges": true,
"serviceKind": "launchdarkly",
"serviceConfig": {},
"requiredApprovalTags": [
"require-approval"
],
"autoApplyApprovedChanges": true,
"serviceKindConfigurationId": "1ef45a85-218f-4428-a8b2-a97e5f56c258"
},
"resourceApprovalSettings": {}
}
],
"_links": {},
"totalCount": 2
}
},
"environments": [
{
"_links": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
},
"_id": "57be1db38b75bf0772d11384",
"key": "environment-key-123abc",
"name": "My Environment",
"apiKey": "sdk-xxx",
"mobileKey": "mob-xxx",
"color": "F5A623",
"defaultTtl": 5,
"secureMode": true,
"defaultTrackEvents": false,
"requireComments": true,
"confirmChanges": true,
"tags": [
"ops"
],
"critical": true,
"_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>"
}
}
]
},
"approvalSettings": {
"required": true,
"bypassApprovalsForPendingChanges": false,
"minNumApprovals": 1,
"canReviewOwnRequest": false,
"canApplyDeclinedChanges": true,
"serviceKind": "launchdarkly",
"serviceConfig": {},
"requiredApprovalTags": [
"require-approval"
],
"autoApplyApprovedChanges": true,
"serviceKindConfigurationId": "1ef45a85-218f-4428-a8b2-a97e5f56c258"
},
"resourceApprovalSettings": {}
}
],
"flag": {
"name": "My Flag",
"kind": "boolean",
"key": "flag-key-123abc",
"_version": 1,
"creationDate": "1494437420312",
"variations": [
{
"_id": "e432f62b-55f6-49dd-a02f-eb24acf39d05",
"value": true
},
{
"_id": "a00bf58d-d252-476c-b915-15a74becacb4",
"value": false
}
],
"temporary": true,
"tags": [
"example-tag"
],
"_links": {
"parent": {
"href": "/api/v2/flags/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
}
},
"customProperties": "{\"jira.issues\":{\"name\":\"Jira issues\",\"value\":[\"is-123\",\"is-456\"]}}",
"archived": false,
"description": "This flag controls the example widgets",
"includeInSnippet": true,
"clientSideAvailability": "{\"usingMobileKey\":true,\"usingEnvironmentId\":false}",
"maintainerId": "569f183514f4432160000007",
"_maintainer": {
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"role": "admin",
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores"
},
"archivedDate": "1494437420312",
"defaults": "{\"onVariation\":0,\"offVariation\":1}"
},
"resource": {
"kind": "flag",
"aiConfig": {
"key": "aiconfig-key-123abc",
"name": "AI Config 1"
},
"experiment": {
"key": "experiment-key-123abc",
"name": "My Experiment",
"_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>"
}
}
]
}
},
"flag": {
"name": "My Flag",
"kind": "boolean",
"key": "flag-key-123abc",
"_version": 1,
"creationDate": "1494437420312",
"variations": [
{
"_id": "e432f62b-55f6-49dd-a02f-eb24acf39d05",
"value": true
},
{
"_id": "a00bf58d-d252-476c-b915-15a74becacb4",
"value": false
}
],
"temporary": true,
"tags": [
"example-tag"
],
"_links": {
"parent": {
"href": "/api/v2/flags/my-project",
"type": "application/json"
},
"self": {
"href": "/api/v2/flags/my-project/my-flag",
"type": "application/json"
}
},
"customProperties": "{\"jira.issues\":{\"name\":\"Jira issues\",\"value\":[\"is-123\",\"is-456\"]}}",
"archived": false,
"description": "This flag controls the example widgets",
"includeInSnippet": true,
"clientSideAvailability": "{\"usingMobileKey\":true,\"usingEnvironmentId\":false}",
"maintainerId": "569f183514f4432160000007",
"_maintainer": {
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"role": "admin",
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores"
},
"archivedDate": "1494437420312",
"defaults": "{\"onVariation\":0,\"offVariation\":1}"
},
"segment": {
"name": "Example segment",
"tags": [
"testing"
],
"creationDate": "1654104600000",
"lastModifiedDate": "1654104600000",
"key": "segment-key-123abc",
"_links": {},
"rules": [
{
"_id": "1234a56b7c89d012345e678f",
"clauses": [
{
"_id": "12ab3c45de678910fab12345",
"attribute": "email",
"negate": false,
"op": "endsWith",
"values": [
".edu"
]
}
]
}
],
"version": 1,
"deleted": false,
"generation": 123,
"description": "Bundle our sample customers together",
"included": [
"user-key-123abc"
],
"excluded": [
"user-key-123abc"
],
"includedContexts": [
{
"values": [
"<string>"
],
"contextKind": "<string>"
}
],
"excludedContexts": [
{
"values": [
"<string>"
],
"contextKind": "<string>"
}
],
"_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>"
}
}
]
},
"_flags": [
{
"name": "Example flag",
"key": "flag-key-123abc",
"_links": {},
"_site": {
"href": "<string>",
"type": "<string>"
}
}
],
"unbounded": false,
"unboundedContextKind": "<string>",
"_unboundedMetadata": {
"envId": "<string>",
"segmentId": "<string>",
"version": 123,
"includedCount": 123,
"excludedCount": 123,
"lastModified": 123,
"deleted": true
},
"_external": "amplitude",
"_externalLink": "https://analytics.amplitude.com/org/1234/cohort/123abc",
"_importInProgress": false
}
}
}
],
"totalCount": 1,
"_links": {}
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}Authorizations
Query Parameters
A comma-separated list of filters. Each filter is of the form field operator value. Supported fields are explained above.
A comma-separated list of fields to expand in the response. Supported fields are explained above.
The number of approvals to return. Defaults to 20. Maximum limit is 200.
Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query limit.