# Releases

## GET /sfp/api/releases

> Get unified view of releases across environments

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.9.0"},"security":[{"access-token":[]}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}},"schemas":{"ReleasesResponseDto":{"type":"object","properties":{"repositoryIdentifier":{"type":"string","description":"Repository identifier"},"releases":{"description":"List of releases across environments","type":"array","items":{"$ref":"#/components/schemas/ReleaseOverviewDto"}},"totalCount":{"type":"number","description":"Total number of releases found"},"changelogStats":{"description":"Changelog caching statistics","allOf":[{"$ref":"#/components/schemas/ChangelogCacheStatsDto"}]},"retrievedAt":{"type":"string","description":"ISO timestamp when the data was retrieved"},"filters":{"type":"object","description":"Filter parameters applied"}},"required":["repositoryIdentifier","releases","totalCount","retrievedAt"]},"ReleaseOverviewDto":{"type":"object","properties":{"name":{"type":"string","description":"Release name"},"domain":{"type":"string","description":"Release domain/configuration"},"environments":{"description":"Environments where this release is deployed","type":"array","items":{"$ref":"#/components/schemas/EnvironmentDeploymentDto"}},"firstDeployedAt":{"type":"string","description":"First deployment timestamp"},"lastDeployedAt":{"type":"string","description":"Last deployment timestamp"},"deploymentCount":{"type":"number","description":"Total number of environments deployed to"},"deploymentStatus":{"description":"Release deployment status summary","allOf":[{"$ref":"#/components/schemas/ReleaseStatusSummaryDto"}]},"packageStatuses":{"description":"Detailed package status information","type":"array","items":{"$ref":"#/components/schemas/PackageStatusDto"}},"releaseDefinition":{"type":"object","description":"Release definition with expected package versions. If no explicit definition exists, this represents the leading environment packages."},"releaseChangelog":{"type":"object","description":"Pre-computed release-level changelog (commits and work items since previous release)"}},"required":["name","domain","environments","deploymentCount","deploymentStatus"]},"EnvironmentDeploymentDto":{"type":"object","properties":{"name":{"type":"string","description":"Environment name"},"environmentId":{"type":"string","description":"Environment ID"},"deployedAt":{"type":"string","description":"Deployment timestamp"},"packages":{"type":"object","description":"Package versions deployed to this environment"},"packageDetails":{"description":"Detailed package deployment information","type":"array","items":{"$ref":"#/components/schemas/PackageDeploymentDetailDto"}},"changesFromPrevious":{"description":"Package changes from the previous environment in order","type":"array","items":{"$ref":"#/components/schemas/PackageChangeDto"}},"releaseChangelog":{"type":"object","description":"Release changelog showing what changed from org state to deployed state"},"orchestrationOrder":{"type":"number","description":"Position in orchestration order"},"metadata":{"type":"object","description":"Additional release metadata"},"deploymentCounts":{"type":"object","description":"Package deployment counts"},"approval":{"type":"object","description":"Approval record for this environment deployment (only populated when includeApprovals=true)"}},"required":["name","environmentId","deployedAt","packages","orchestrationOrder"]},"PackageDeploymentDetailDto":{"type":"object","properties":{"name":{"type":"string","description":"Package name"},"version":{"type":"string","description":"Package version"},"skipped":{"type":"boolean","description":"Whether the package was skipped"},"status":{"type":"string","description":"Deployment status","enum":["Success","Skipped","Failed"]},"versionInOrg":{"type":"string","description":"Version already in the org"},"isLeading":{"type":"boolean","description":"Whether this is the leading package"},"error":{"type":"object","description":"Error message if deployment failed"},"startTime":{"type":"string","description":"Deployment start time"},"endTime":{"type":"string","description":"Deployment end time"}},"required":["name","version","skipped"]},"PackageChangeDto":{"type":"object","properties":{"packageName":{"type":"string","description":"Package name"},"fromVersion":{"type":"string","description":"Previous version"},"toVersion":{"type":"string","description":"Current version"},"totalCommits":{"type":"number","description":"Total number of commits between versions"},"totalWorkItems":{"type":"number","description":"Total number of work items (issues) referenced"},"totalPullRequests":{"type":"number","description":"Total number of pull requests referenced"},"workItems":{"description":"Detailed work items summary","allOf":[{"$ref":"#/components/schemas/WorkItemsSummaryDto"}]},"commitRange":{"type":"object","description":"Commit SHA range"}},"required":["packageName","fromVersion","toVersion","totalCommits","totalWorkItems","totalPullRequests","workItems"]},"WorkItemsSummaryDto":{"type":"object","properties":{"issues":{"type":"object","description":"Issues grouped by ID with associated commits"},"pullRequests":{"type":"object","description":"Pull requests grouped by ID with associated commits"},"byType":{"type":"object","description":"Work items categorized by type","properties":{"jira":{"type":"object"},"github":{"type":"object"},"other":{"type":"object"}}}},"required":["issues","pullRequests","byType"]},"ReleaseStatusSummaryDto":{"type":"object","properties":{"status":{"type":"string","description":"Overall deployment status","enum":["completed","in_progress","partial","diverged","abandoned","stalled"]},"totalPackages":{"type":"number","description":"Total number of packages in release"},"packagesCompleted":{"description":"Packages that are fully deployed","type":"array","items":{"type":"string"}},"packagesInProgress":{"description":"Packages currently being deployed","type":"array","items":{"type":"string"}},"packagesWithIssues":{"type":"array","description":"Packages with deployment issues","items":{"type":"object","properties":{"packageName":{"type":"string"},"issue":{"type":"string"}}}},"missingFromEnvironments":{"description":"Environments missing this release","type":"array","items":{"type":"string"}},"recommendations":{"description":"Recommendations for this release","type":"array","items":{"type":"string"}}},"required":["status","totalPackages","packagesCompleted","packagesInProgress","packagesWithIssues","missingFromEnvironments"]},"PackageStatusDto":{"type":"object","properties":{"packageName":{"type":"string","description":"Package name"},"releaseVersion":{"type":"string","description":"Release version for this package"},"isFullyDeployed":{"type":"boolean","description":"Whether package is fully deployed to all environments"},"isAbandoned":{"type":"boolean","description":"Whether package has been superseded in all environments"},"trajectory":{"type":"string","description":"Deployment trajectory","enum":["completed","progressing","regressing","stalled","mixed"]}},"required":["packageName","releaseVersion","isFullyDeployed","isAbandoned","trajectory"]},"ChangelogCacheStatsDto":{"type":"object","properties":{"uniqueDiffsCalculated":{"type":"number","description":"Number of unique package diffs calculated"},"totalEnvironments":{"type":"number","description":"Total number of environments processed"},"cacheHits":{"type":"number","description":"Number of cache hits (reused diffs)"},"processingTimeMs":{"type":"number","description":"Processing time in milliseconds"}},"required":["uniqueDiffsCalculated","totalEnvironments","cacheHits","processingTimeMs"]}}},"paths":{"/sfp/api/releases":{"get":{"operationId":"ReleasesController_getReleases","summary":"Get unified view of releases across environments","parameters":[{"name":"repositoryIdentifier","required":true,"in":"query","description":"Repository identifier in format owner/repo","schema":{"type":"string"}},{"name":"domain","required":false,"in":"query","description":"Filter by domain (e.g., core, auth, origination)","schema":{"type":"string"}},{"name":"releaseName","required":false,"in":"query","description":"Filter by specific release name","schema":{"type":"string"}},{"name":"includeChangelog","required":false,"in":"query","description":"Include changelog information (default: false)","schema":{"type":"boolean"}},{"name":"activeOnly","required":false,"in":"query","description":"Only show active releases (default: true)","schema":{"type":"boolean"}},{"name":"limit","required":false,"in":"query","description":"Number of releases to fetch (1-200, default: 50)","schema":{"type":"number"}},{"name":"offset","required":false,"in":"query","description":"Offset for pagination (default: 0)","schema":{"type":"number"}},{"name":"force","required":false,"in":"query","description":"Force refresh cache (default: false)","schema":{"type":"boolean"}},{"name":"skipLockStatus","required":false,"in":"query","description":"Skip fetching lock status for performance (default: true)","schema":{"type":"boolean"}},{"name":"includeApprovals","required":false,"in":"query","description":"Include approval data for each environment deployment (default: false)","schema":{"type":"boolean"}}],"responses":{"200":{"description":"List of releases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleasesResponseDto"}}}},"400":{"description":"Bad request - Invalid repository identifier format"},"403":{"description":"Forbidden - Requires role: member, owner, application"},"404":{"description":"Repository not found"},"500":{"description":"Internal server error"}},"tags":["Releases"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flxbl.io/flxbl/sfp-server/api-reference/releases.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
