# Get release progressions for release pipeline

GET https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}/releases

Get details on the progression of all releases, across all flags, for a release pipeline

Reference: https://launchdarkly.com/docs/api/release-pipelines-beta/get-all-release-progressions-for-release-pipeline

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: LaunchDarkly REST API
  version: 1.0.0
paths:
  /api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}/releases:
    get:
      operationId: get-all-release-progressions-for-release-pipeline
      summary: Get release progressions for release pipeline
      description: >-
        Get details on the progression of all releases, across all flags, for a
        release pipeline
      tags:
        - subpackage_releasePipelinesBeta
      parameters:
        - name: projectKey
          in: path
          description: The project key
          required: true
          schema:
            type: string
            format: string
        - name: pipelineKey
          in: path
          description: The pipeline key
          required: true
          schema:
            type: string
            format: string
        - name: filter
          in: query
          description: >-
            Accepts filter by `status` and `activePhaseId`. `status` can take a
            value of `completed` or `active`. `activePhaseId` takes a UUID and
            will filter results down to releases active on the specified phase.
            Providing `status equals completed` along with an `activePhaseId`
            filter will return an error as they are disjoint sets of data. The
            combination of `status equals active` and `activePhaseId` will
            return the same results as `activePhaseId` alone.
          required: false
          schema:
            type: string
            format: string
        - name: limit
          in: query
          description: The maximum number of items to return. Defaults to 20.
          required: false
          schema:
            type: integer
            format: int64
        - name: offset
          in: query
          description: >-
            Where to start in the list. Defaults to 0. Use this with pagination.
            For example, an offset of 10 skips the first ten items and then
            returns the next items in the list, up to the query `limit`.
          required: false
          schema:
            type: integer
            format: int64
        - name: Authorization
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Release progression collection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseProgressionCollection'
        '404':
          description: Invalid resource identifier
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorRep'
servers:
  - url: https://app.launchdarkly.com
  - url: https://app.launchdarkly.us
components:
  schemas:
    UnixMillis:
      type: integer
      format: int64
      title: UnixMillis
    Link:
      type: object
      properties:
        href:
          type: string
          description: The URL of the link
        type:
          type: string
          description: The type of the link
      title: Link
    ReleaseProgression:
      type: object
      properties:
        _createdAt:
          $ref: '#/components/schemas/UnixMillis'
          description: Timestamp of when the release was created
        _completedAt:
          $ref: '#/components/schemas/UnixMillis'
          description: Timestamp of when the release was completed
        flagKey:
          type: string
          description: The flag key
        activePhaseId:
          type: string
          description: The ID of the currently active release phase
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: The location and content type of related resources
      required:
        - _createdAt
        - flagKey
        - _links
      title: ReleaseProgression
    PhaseInfo:
      type: object
      properties:
        _id:
          type: string
          description: The phase ID
        name:
          type: string
          description: The release phase name
        releaseCount:
          type: integer
          description: The number of active releases in this phase
      required:
        - _id
        - name
        - releaseCount
      title: PhaseInfo
    ReleaseProgressionCollection:
      type: object
      properties:
        activeCount:
          type: integer
          description: The number of active releases
        completedCount:
          type: integer
          description: The number of completed releases
        items:
          type: array
          items:
            $ref: '#/components/schemas/ReleaseProgression'
          description: >-
            A list of details for each release, across all flags, for this
            release pipeline
        phases:
          type: array
          items:
            $ref: '#/components/schemas/PhaseInfo'
          description: >-
            A list of details for each phase, across all releases, for this
            release pipeline
        totalCount:
          type: integer
          description: The total number of releases for this release pipeline
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: The location and content type of related resources
      required:
        - activeCount
        - completedCount
        - items
        - phases
        - totalCount
        - _links
      title: ReleaseProgressionCollection
    NotFoundErrorRep:
      type: object
      properties:
        code:
          type: string
          description: Specific error code encountered
        message:
          type: string
          description: Description of the error
      required:
        - code
        - message
      title: NotFoundErrorRep
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: Authorization

```

## SDK Code Examples

```python
import requests

url = "https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases"

headers = {"Authorization": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases';
const options = {method: 'GET', headers: {Authorization: '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases")
  .header("Authorization", "<apiKey>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases', [
  'headers' => [
    'Authorization' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://app.launchdarkly.com/api/v2/projects/projectKey/release-pipelines/pipelineKey/releases")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```