This feature is in beta
To use this feature, pass in a header including the
LD-API-Version
key with value set tobeta
. Use this header with each call. To learn more, read Beta resources.Resources that are in beta are still undergoing testing and development. They may change without notice, including becoming backwards incompatible.
You can use the integrations API to create, delete, and manage integrations between LaunchDarkly and third-party applications.
Specifically, the integrations API provides endpoints for managing persistent store integrations and flag import configurations.
Persistent store integrations, also called "big segment" store integrations, are required when you use a server-side SDK and big segments. You can use some of the integrations API endpoints to manage these integrations.
Synced segments and larger list-based segments are an Enterprise feature
Segments synced from external tools and larger list-based segments with more than 15,000 entries are the two kinds of "big segment." LaunchDarkly uses different implementations for different types of segments so that all of your segments have good performance.
These segments are available to customers on an Enterprise plan. To learn more, read about our pricing. To upgrade your plan, contact Sales.
Segments synced from external tools and larger list-based segments are the two kinds of big segment. If you are using server-side SDKs, these segments require a persistent store within your infrastructure. LaunchDarkly keeps the persistent store up to date and consults it during flag evaluation.
You need either a persistent store integration or a Relay Proxy to support these segments. The integrations API lets you manage the persistent store integrations.
To learn more about segments, read Segments and Segment configuration.
Several of the endpoints in the integrations API require an integration ID. The integration ID is returned as part of the Create big segment store integration response, in the _id
field. It is also returned as part of the List all big segment store integrations response, in the _id
field of each element in the items
array.
You can find other APIs for working with big segments under Segments and Segments (beta).
Flag import configurations allow you to import feature flags from another feature management system.
Use the flag import configuration endpoints to create, delete, and manage flag import configurations. You can import flags from other feature management tools into LaunchDarkly. For example, you can import flags from Split.io.
Several of the endpoints in the integrations API require an integration ID. The integration ID is returned as part of the Create a flag import configuration response, in the _id
field. It is also returned as part of the List all flag import configurations response, in the _id
field of each element in the items
array.
To learn more about flag import configurations, read Import flags.
List all big segment store integrations.
Big segment store collection response
Invalid access token
Forbidden
Environment or project not found
Rate limited
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}
}, - "items": [
- {
- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}, - "environment": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "redis",
- "projectKey": "default",
- "environmentKey": "development",
- "config": {
- "property1": null,
- "property2": null
}, - "on": true,
- "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- null
], - "actions": [
- "*"
], - "notActions": [
- null
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- null
], - "actions": [
- "*"
], - "notActions": [
- null
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "available": true,
- "potentiallyStale": false,
- "lastSync": 0,
- "lastError": 0,
- "errors": [
- {
- "statusCode": 0,
- "message": "string",
- "timestamp": 0
}
]
}
}
]
}
Create a persistent store integration.
If you are using server-side SDKs, segments synced from external tools and larger list-based segments require a persistent store within your infrastructure. LaunchDarkly keeps the persistent store up to date and consults it during flag evaluation.
You can use either Redis or DynamoDB as your persistent store. When you create a persistent store integration, the fields in the config
object in the request vary depending on which persistent store you use.
If you are using Redis to create your persistent store integration, you will need to know:
If you are using DynamoDB to create your persistent store integration, you will need to know:
namespace
(string)key
(string)To learn more, read Segment configuration.
Big segment store response
Invalid request
Invalid access token
Forbidden
Environment or project not found
Status conflict
Rate limited
{- "config": {
- "optional": "example value for optional formVariables property for sample-integration",
- "required": "example value for required formVariables property for sample-integration"
}, - "name": "Example persistent store integration",
- "on": false,
- "tags": [
- "example-tag"
]
}
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}, - "environment": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "redis",
- "projectKey": "default",
- "environmentKey": "development",
- "config": {
- "property1": null,
- "property2": null
}, - "on": true,
- "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "available": true,
- "potentiallyStale": false,
- "lastSync": 0,
- "lastError": 0,
- "errors": [
- {
- "statusCode": 0,
- "message": "string",
- "timestamp": 0
}
]
}
}
Get a big segment store integration by ID.
Big segment store response
Invalid access token
Forbidden
Environment or project not found
Rate limited
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}, - "environment": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "redis",
- "projectKey": "default",
- "environmentKey": "development",
- "config": {
- "property1": null,
- "property2": null
}, - "on": true,
- "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "available": true,
- "potentiallyStale": false,
- "lastSync": 0,
- "lastError": 0,
- "errors": [
- {
- "statusCode": 0,
- "message": "string",
- "timestamp": 0
}
]
}
}
Update a big segment store integration. Updating a big segment store requires a JSON Patch representation of the desired changes. To learn more, read Updates.
Big segment store response
Invalid request
Invalid access token
Forbidden
Environment or project not found
Status conflict
Rate limited
[- {
- "op": "replace",
- "path": "/exampleField",
- "value": "new example value"
}
]
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}, - "environment": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "redis",
- "projectKey": "default",
- "environmentKey": "development",
- "config": {
- "property1": null,
- "property2": null
}, - "on": true,
- "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "available": true,
- "potentiallyStale": false,
- "lastSync": 0,
- "lastError": 0,
- "errors": [
- {
- "statusCode": 0,
- "message": "string",
- "timestamp": 0
}
]
}
}
Delete a persistent store integration. Each integration uses either Redis or DynamoDB.
Action completed successfully
Invalid access token
Forbidden
Environment or project not found
Status conflict
Rate limited
{- "code": "unauthorized",
- "message": "Invalid access token"
}
List all flag import configurations.
Flag Import Configuration response
Invalid request
Invalid access token
Forbidden
Project not found
Status conflict
Rate limited
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}
}, - "items": [
- {
- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "split",
- "projectKey": "default",
- "config": {
- "property1": null,
- "property2": null
}, - "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- null
], - "actions": [
- "*"
], - "notActions": [
- null
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- null
], - "actions": [
- "*"
], - "notActions": [
- null
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "status": "pending",
- "lastImport": 0,
- "lastError": 0,
- "errors": [
- {
- "integrationId": "string",
- "message": "string",
- "statusCode": 0,
- "timestamp": 0
}
]
}
}
]
}
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
.
Flag Import Configuration response
Invalid request
Invalid access token
Forbidden
Project not found
Status conflict
Rate limited
{- "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"
]
}
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "split",
- "projectKey": "default",
- "config": {
- "property1": null,
- "property2": null
}, - "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "status": "pending",
- "lastImport": 0,
- "lastError": 0,
- "errors": [
- {
- "integrationId": "string",
- "message": "string",
- "statusCode": 0,
- "timestamp": 0
}
]
}
}
Get a single flag import configuration by ID. The integrationKey
path parameter identifies the feature management system from which the import occurs, for example, split
.
Flag import response
Invalid request
Invalid access token
Forbidden
Project or import configuration not found
Status conflict
Rate limited
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "split",
- "projectKey": "default",
- "config": {
- "property1": null,
- "property2": null
}, - "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "status": "pending",
- "lastImport": 0,
- "lastError": 0,
- "errors": [
- {
- "integrationId": "string",
- "message": "string",
- "statusCode": 0,
- "timestamp": 0
}
]
}
}
Updating a flag import configuration uses a JSON patch representation of the desired changes. To learn more, read Updates.
To add an element to the import configuration fields that are arrays, set the path
to the name of the field and then append /<array index>
. Use /0
to add to the beginning of the array. Use /-
to add to the end of the array.
You can update the config
, tags
, and name
of the flag import configuration.
Flag import response
Invalid request
Invalid access token
Forbidden
Project or import configuration not found
Status conflict
Rate limited
[- {
- "op": "replace",
- "path": "/exampleField",
- "value": "new example value"
}
]
{- "_links": {
- "self": {
- "href": "string",
- "type": "string"
}, - "parent": {
- "href": "string",
- "type": "string"
}, - "project": {
- "href": "string",
- "type": "string"
}
}, - "_id": "12ab3c4d5ef1a2345bcde67f",
- "integrationKey": "split",
- "projectKey": "default",
- "config": {
- "property1": null,
- "property2": null
}, - "tags": [ ],
- "name": "Development environment configuration",
- "version": 1,
- "_access": {
- "denied": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
], - "allowed": [
- {
- "action": "string",
- "reason": {
- "resources": [
- "proj/*:env/*;qa_*:/flag/*"
], - "notResources": [
- "string"
], - "actions": [
- "*"
], - "notActions": [
- "string"
], - "effect": "allow",
- "role_name": "string"
}
}
]
}, - "_status": {
- "status": "pending",
- "lastImport": 0,
- "lastError": 0,
- "errors": [
- {
- "integrationId": "string",
- "message": "string",
- "statusCode": 0,
- "timestamp": 0
}
]
}
}
Delete a flag import configuration by ID. The integrationKey
path parameter identifies the feature management system from which the import occurs, for example, split
.
Action completed successfully
Invalid access token
Forbidden
Project or import configuration not found
Status conflict
Rate limited
{- "code": "unauthorized",
- "message": "Invalid access token"
}
Trigger a single flag import run for an existing flag import configuration. The integrationKey
path parameter identifies the feature management system from which the import occurs, for example, split
.
Invalid request
Invalid access token
Forbidden
Project or import configuration not found
Status conflict
Rate limited
{- "Name": "string",
- "Kind": "string",
- "PkgPath": "string",
- "PkgName": "string",
- "ValidPos": true,
- "Shadow": {
- "property1": true,
- "property2": true
}
}