# Releases

## GET /sfp/api/releases

> Get unified view of releases across environments

```json
{"openapi":"3.0.0","info":{"title":"sfp server","version":"51.3.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."}},"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"}},"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"}}],"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"]}}}}
```
