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
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\"}"
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.