Get deployment
For the complete documentation index, see llms.txt. For the full documentation snapshot, see llms-full.txt.
Get a deployment by ID.
The deployment ID is returned as part of the List deployments response. It is the id field of each element in the items array.
Expanding the deployment response
LaunchDarkly supports expanding the deployment response to include additional fields.
To expand the response, append the expand query parameter and include the following:
pullRequestsincludes details on all of the pull requests associated with each deploymentflagReferencesincludes details on all of the references to flags in each deployment
For example, use ?expand=pullRequests to include the pullRequests field in the response. By default, this field is not included in the response.
curl --request GET \
--url https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID} \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}"
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/engineering-insights/deployments/{deploymentID}', 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/engineering-insights/deployments/{deploymentID}",
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/engineering-insights/deployments/{deploymentID}"
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/engineering-insights/deployments/{deploymentID}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}")
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{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"applicationKey": "billing-service",
"applicationVersion": "a90a8a2",
"startedAt": "1706701522000",
"status": "finished",
"kind": "redeployment",
"active": true,
"archived": false,
"environmentKey": "production",
"numberOfContributors": 1,
"numberOfPullRequests": 2,
"linesAdded": 100,
"linesDeleted": 50,
"leadTime": 20237000,
"endedAt": "1706712518000",
"durationMs": 10996000,
"metadata": {
"buildNumber": "1234"
},
"pullRequests": {
"totalCount": 25,
"items": [
{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"externalId": "1234",
"title": "Enable new payment structure",
"status": "merged",
"author": "jane.doe",
"createTime": "1706701522000",
"baseCommitKey": "a90a8a2",
"headCommitKey": "a90a8a2",
"filesChanged": 2,
"linesAdded": 100,
"linesDeleted": 50,
"url": "https://github.com/launchdarkly/LaunchDarkly-Docs/pull/406",
"mergeTime": "1706712518000",
"mergeCommitKey": "a90a8a2",
"deployments": {
"totalCount": 25,
"items": "<array>",
"_links": {
"next": {
"href": "/api/v2/engineering-insights/deployments?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/deployments",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTime": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"maxWaitDurationMs": 100000,
"avgWaitDurationMs": 100000,
"maxDeployDurationMs": 100000,
"avgDeployDurationMs": 100000,
"maxTotalLeadTimeMs": 1600000,
"avgTotalLeadTimeMs": 1600000
}
}
],
"_links": {
"next": {
"href": "/api/v2/engineering-insights/pull-requests?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/pull-requests",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTimeStages": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"waitDurationMs": 100000,
"deployDurationMs": 100000,
"totalLeadTimeMs": 1600000
}
}{
"code": "invalid_request",
"message": "validation failed",
"errors": [
{
"attribute": "projectKey",
"reason": "must be present"
}
]
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}Authorizations
Path Parameters
The deployment ID
Query Parameters
Expand properties in response. Options: pullRequests, flagReferences
Response
Deployment response
The deployment ID
"a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"
The application key
"billing-service"
The application version
"a90a8a2"
The time the deployment started
"1706701522000"
The status of the deployment
"finished"
The kind of deployment
"redeployment"
Whether the deployment is active
true
Whether the deployment is archived
false
The environment key
"production"
The number of contributors
1
The number of pull requests
2
The number of lines added
100
The number of lines deleted
50
The total lead time from first commit to deployment end in milliseconds
20237000
The time the deployment ended
"1706712518000"
The duration of the deployment in milliseconds
10996000
The metadata associated with the deployment
Show child attributes
Show child attributes
{ "buildNumber": "1234" }
The pull requests contained in the deployment
Show child attributes
Show child attributes
The flag references contained in the deployment
Show child attributes
Show child attributes
The lead time stages for the deployment
Show child attributes
Show child attributes
curl --request GET \
--url https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID} \
--header 'Authorization: <api-key>'import requests
url = "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}"
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/engineering-insights/deployments/{deploymentID}', 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/engineering-insights/deployments/{deploymentID}",
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/engineering-insights/deployments/{deploymentID}"
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/engineering-insights/deployments/{deploymentID}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}")
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{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"applicationKey": "billing-service",
"applicationVersion": "a90a8a2",
"startedAt": "1706701522000",
"status": "finished",
"kind": "redeployment",
"active": true,
"archived": false,
"environmentKey": "production",
"numberOfContributors": 1,
"numberOfPullRequests": 2,
"linesAdded": 100,
"linesDeleted": 50,
"leadTime": 20237000,
"endedAt": "1706712518000",
"durationMs": 10996000,
"metadata": {
"buildNumber": "1234"
},
"pullRequests": {
"totalCount": 25,
"items": [
{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"externalId": "1234",
"title": "Enable new payment structure",
"status": "merged",
"author": "jane.doe",
"createTime": "1706701522000",
"baseCommitKey": "a90a8a2",
"headCommitKey": "a90a8a2",
"filesChanged": 2,
"linesAdded": 100,
"linesDeleted": 50,
"url": "https://github.com/launchdarkly/LaunchDarkly-Docs/pull/406",
"mergeTime": "1706712518000",
"mergeCommitKey": "a90a8a2",
"deployments": {
"totalCount": 25,
"items": "<array>",
"_links": {
"next": {
"href": "/api/v2/engineering-insights/deployments?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/deployments",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTime": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"maxWaitDurationMs": 100000,
"avgWaitDurationMs": 100000,
"maxDeployDurationMs": 100000,
"avgDeployDurationMs": 100000,
"maxTotalLeadTimeMs": 1600000,
"avgTotalLeadTimeMs": 1600000
}
}
],
"_links": {
"next": {
"href": "/api/v2/engineering-insights/pull-requests?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/pull-requests",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTimeStages": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"waitDurationMs": 100000,
"deployDurationMs": 100000,
"totalLeadTimeMs": 1600000
}
}{
"code": "invalid_request",
"message": "validation failed",
"errors": [
{
"attribute": "projectKey",
"reason": "must be present"
}
]
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}