curl --request POST \ --url https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey} \ --header 'Authorization: <api-key>' \ --header 'Content-Type: application/json' \ --data '{ "config": { "environmentId": "The ID of the environment in the external system", "ldApiKey": "An API key with create flag permissions in your LaunchDarkly account", "ldMaintainer": "The ID of the member who will be the maintainer of the imported flags", "ldTag": "A tag to apply to all flags imported to LaunchDarkly", "splitTag": "If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.", "workspaceApiKey": "An API key with read permissions in the external feature management system", "workspaceId": "The ID of the workspace in the external system" }, "name": "Sample configuration", "tags": [ "example-tag" ]}'
import requests
url = "https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}"
payload = {
"config": {
"environmentId": "The ID of the environment in the external system",
"ldApiKey": "An API key with create flag permissions in your LaunchDarkly account",
"ldMaintainer": "The ID of the member who will be the maintainer of the imported flags",
"ldTag": "A tag to apply to all flags imported to LaunchDarkly",
"splitTag": "If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.",
"workspaceApiKey": "An API key with read permissions in the external feature management system",
"workspaceId": "The ID of the workspace in the external system"
},
"name": "Sample configuration",
"tags": ["example-tag"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
environmentId: 'The ID of the environment in the external system',
ldApiKey: 'An API key with create flag permissions in your LaunchDarkly account',
ldMaintainer: 'The ID of the member who will be the maintainer of the imported flags',
ldTag: 'A tag to apply to all flags imported to LaunchDarkly',
splitTag: 'If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.',
workspaceApiKey: 'An API key with read permissions in the external feature management system',
workspaceId: 'The ID of the workspace in the external system'
},
name: 'Sample configuration',
tags: ['example-tag']
})
};
fetch('https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}', 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/integration-capabilities/flag-import/{projectKey}/{integrationKey}",
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([
'config' => [
'environmentId' => 'The ID of the environment in the external system',
'ldApiKey' => 'An API key with create flag permissions in your LaunchDarkly account',
'ldMaintainer' => 'The ID of the member who will be the maintainer of the imported flags',
'ldTag' => 'A tag to apply to all flags imported to LaunchDarkly',
'splitTag' => 'If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.',
'workspaceApiKey' => 'An API key with read permissions in the external feature management system',
'workspaceId' => 'The ID of the workspace in the external system'
],
'name' => 'Sample configuration',
'tags' => [
'example-tag'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}"
payload := strings.NewReader("{\n \"config\": {\n \"environmentId\": \"The ID of the environment in the external system\",\n \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\",\n \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\",\n \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\",\n \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\",\n \"workspaceApiKey\": \"An API key with read permissions in the external feature management system\",\n \"workspaceId\": \"The ID of the workspace in the external system\"\n },\n \"name\": \"Sample configuration\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {\n \"environmentId\": \"The ID of the environment in the external system\",\n \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\",\n \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\",\n \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\",\n \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\",\n \"workspaceApiKey\": \"An API key with read permissions in the external feature management system\",\n \"workspaceId\": \"The ID of the workspace in the external system\"\n },\n \"name\": \"Sample configuration\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"config\": {\n \"environmentId\": \"The ID of the environment in the external system\",\n \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\",\n \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\",\n \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\",\n \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\",\n \"workspaceApiKey\": \"An API key with read permissions in the external feature management system\",\n \"workspaceId\": \"The ID of the workspace in the external system\"\n },\n \"name\": \"Sample configuration\",\n \"tags\": [\n \"example-tag\"\n ]\n}"
response = http.request(request)
puts response.read_body
{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}
Create a flag import configuration
Create a new flag import configuration. The integrationKey path parameter identifies the feature management system from which the import occurs, for example, split. The config object in the request body schema is described by the global integration settings, as specified by the formVariables in the manifest.json for this integration. It varies slightly based on the integrationKey.
POST
/
api
/
v2
/
integration-capabilities
/
flag-import
/
{projectKey}
/
{integrationKey}
Create a flag import configuration
curl --request POST \ --url https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey} \ --header 'Authorization: <api-key>' \ --header 'Content-Type: application/json' \ --data '{ "config": { "environmentId": "The ID of the environment in the external system", "ldApiKey": "An API key with create flag permissions in your LaunchDarkly account", "ldMaintainer": "The ID of the member who will be the maintainer of the imported flags", "ldTag": "A tag to apply to all flags imported to LaunchDarkly", "splitTag": "If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.", "workspaceApiKey": "An API key with read permissions in the external feature management system", "workspaceId": "The ID of the workspace in the external system" }, "name": "Sample configuration", "tags": [ "example-tag" ]}'
import requests
url = "https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}"
payload = {
"config": {
"environmentId": "The ID of the environment in the external system",
"ldApiKey": "An API key with create flag permissions in your LaunchDarkly account",
"ldMaintainer": "The ID of the member who will be the maintainer of the imported flags",
"ldTag": "A tag to apply to all flags imported to LaunchDarkly",
"splitTag": "If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.",
"workspaceApiKey": "An API key with read permissions in the external feature management system",
"workspaceId": "The ID of the workspace in the external system"
},
"name": "Sample configuration",
"tags": ["example-tag"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
environmentId: 'The ID of the environment in the external system',
ldApiKey: 'An API key with create flag permissions in your LaunchDarkly account',
ldMaintainer: 'The ID of the member who will be the maintainer of the imported flags',
ldTag: 'A tag to apply to all flags imported to LaunchDarkly',
splitTag: 'If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.',
workspaceApiKey: 'An API key with read permissions in the external feature management system',
workspaceId: 'The ID of the workspace in the external system'
},
name: 'Sample configuration',
tags: ['example-tag']
})
};
fetch('https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}', 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/integration-capabilities/flag-import/{projectKey}/{integrationKey}",
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([
'config' => [
'environmentId' => 'The ID of the environment in the external system',
'ldApiKey' => 'An API key with create flag permissions in your LaunchDarkly account',
'ldMaintainer' => 'The ID of the member who will be the maintainer of the imported flags',
'ldTag' => 'A tag to apply to all flags imported to LaunchDarkly',
'splitTag' => 'If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.',
'workspaceApiKey' => 'An API key with read permissions in the external feature management system',
'workspaceId' => 'The ID of the workspace in the external system'
],
'name' => 'Sample configuration',
'tags' => [
'example-tag'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}"
payload := strings.NewReader("{\n \"config\": {\n \"environmentId\": \"The ID of the environment in the external system\",\n \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\",\n \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\",\n \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\",\n \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\",\n \"workspaceApiKey\": \"An API key with read permissions in the external feature management system\",\n \"workspaceId\": \"The ID of the workspace in the external system\"\n },\n \"name\": \"Sample configuration\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {\n \"environmentId\": \"The ID of the environment in the external system\",\n \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\",\n \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\",\n \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\",\n \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\",\n \"workspaceApiKey\": \"An API key with read permissions in the external feature management system\",\n \"workspaceId\": \"The ID of the workspace in the external system\"\n },\n \"name\": \"Sample configuration\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/integration-capabilities/flag-import/{projectKey}/{integrationKey}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"config\": {\n \"environmentId\": \"The ID of the environment in the external system\",\n \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\",\n \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\",\n \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\",\n \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\",\n \"workspaceApiKey\": \"An API key with read permissions in the external feature management system\",\n \"workspaceId\": \"The ID of the workspace in the external system\"\n },\n \"name\": \"Sample configuration\",\n \"tags\": [\n \"example-tag\"\n ]\n}"
response = http.request(request)
puts response.read_body
{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}
Authorizations
Authorization
string
header
required
Scopes
read
write
Path Parameters
projectKey
string<string>
required
The project key
integrationKey
string<string>
required
The integration key
Body
application/json
config
object
required
The global configuration settings, as specified by the formVariables in the manifest.json for this configuration.
Show child attributes
Example:
"{\"workspaceApiKey\": \"An API key with read permissions in the external feature management system\", \"workspaceId\": \"The ID of the workspace in the external system\", \"environmentId\": \"The ID of the environment in the external system\", \"splitTag\": \"If provided, imports only the flags from the external system with this tag. Leave blank to import all flags.\", \"ldApiKey\": \"An API key with create flag permissions in your LaunchDarkly account\", \"ldTag\": \"A tag to apply to all flags imported to LaunchDarkly\", \"ldMaintainer\": \"The ID of the member who will be the maintainer of the imported flags\"}"
tags
string[]
Tags to associate with the configuration
Example:
["example-tag"]
name
string
Name to identify the configuration
Example:
"Sample configuration"
Response
Flag Import Configuration response
_links
object
required
The location and content type of related resources
Show child attributes
_id
string
required
The integration ID
Example:
"12ab3c4d5ef1a2345bcde67f"
integrationKey
enum<string>
required
The integration key
Available options:
split,
unleash
Example:
"split"
projectKey
string
required
The project key
Example:
"default"
config
object
required
The configuration for the given import integration. Only included when requesting a single integration by ID. Refer to the formVariables field in the corresponding manifest.json for a full list of fields for each integration.
Show child attributes
tags
string[]
required
List of tags for this configuration
Example:
[]
name
string
required
Name of the configuration
Example:
"Development environment configuration"
version
integer
required
Version of the current configuration
Example:
1
_status
object
required
Details on the status of the import job
Show child attributes
_access
object
Details on the allowed and denied actions for this configuration