List approval requests
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.
GET
/
api
/
v2
/
approval-requests
List approval requests
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."
}