---
title: "Get StepRun by StepConfig and Release"
method: GET
path: "/app/{appId}/stepConfig/{stepConfigId}/release/{releaseId}/stepRun"
tags: ["release"]
---

# Get StepRun by StepConfig and Release

`GET /app/{appId}/stepConfig/{stepConfigId}/release/{releaseId}/stepRun`

## Request

- Base URL: `https://api.runway.team`
- URL: `https://api.runway.team/app/{appId}/stepConfig/{stepConfigId}/release/{releaseId}/stepRun`
- Auth: API key in header `X-API-Key`

Returns the details of a step run for a given step config and release. The step run is looked up using the release's FlightPath run and the step config. Only available for apps with FlightPaths enabled.

## Path parameters

- `appId` string, required
- `stepConfigId` string, required
- `releaseId` string, required

## Response `200`

A step run response

- StepRunEntity: A step run in a release (FlightPaths)
  - `id` string, required: The identifier of the step run
  - `stepConfigId` string, required: The identifier of the step config this step run was created from
  - `stepArchetype` 'kickoff' | 'featureReadiness' | 'releaseCandidate' | 'regressionTesting' | 'betaTesting' | 'metadata' | 'screenshots' | 'approvals' | 'submission' | 'storeReview' | 'takeoff' | 'ciDistribution', required: The type of release step
  - `displayName` string, required: The display name of the step run
  - `status` 'ready' | 'pending' | 'pendingChecklist' | 'blocked' | 'inactive', required: The status of a release step
  - `statusReasonString` string, required: The user-friendly description of the reason for the status of the step run
  - `checklistItems` ChecklistItemEntity[], required: The list of checklist items for the step run
    - `id` string, required: The identifier of the checklist item
    - `title` string, required: The title of the checklist item
    - `description` string: The description of the checklist item. Accepts markdown.
    - `approverGroups` UserGroup[], required: The list of user groups that can approve this checklist item. Custom groups can be included as well.
    - `releaseType` 'all' | 'hotfixOnly' | 'rollbackOnly' | 'allExceptHotfix', required: The type of release this checklist item will appear on
    - `notifyEnabled` boolean, required: Whether the checklist item will notify on Slack when its status changes
    - `statuses` ChecklistItemStatusType[], required: The list of possible checklist item status types for this checklist item. A subset of all possible ChecklistItemStatusType values
    - `releaseStepType` string: The release step that the checklist item appears on. Will be `null` if the placement of the item is not `binary`. Can either be of type ReleaseStepType, or a step's Step ID can be sent instead
    - `stepId` unknown
    - `oneOffForVersion` string: If the checklist item only applies for a single release version, this field will contain the version string for that version
    - `status` ChecklistItemStatus: The status of a checklist item
      - `status` 'approved' | 'rejected' | 'inProgress' | 'blocked' | 'passed' | 'failed', required: All possible statuses for a checklist item
      - `createdBy` string, required: The userId (email) of the user that created the checklist item
      - `createdAt` string, date-time, required: The date and time the checklist item was created
    - `placement` 'stepChecklist' | 'approvals' | 'regressionTesting', required: The placement of a given checklist item
    - `comment` ChecklistItemComment: A comment on a checklist item
      - `createdAt` string, date-time
      - `createdBy` string: The user id (email) of the user that added the comment
      - `comment` string: The comment string. Can be markdown.
  - `data` union: Archetype-specific data returned in a step run's `data` field (FlightPaths-enabled apps).
    - object
      - `approvalItems` ChecklistItemEntity[], required: The list of approval items for the release step. This object is only returned for release steps of type `approval`
        - `id` string, required: The identifier of the checklist item
        - `title` string, required: The title of the checklist item
        - `description` string: The description of the checklist item. Accepts markdown.
        - `approverGroups` UserGroup[], required: The list of user groups that can approve this checklist item. Custom groups can be included as well.
        - `releaseType` 'all' | 'hotfixOnly' | 'rollbackOnly' | 'allExceptHotfix', required: The type of release this checklist item will appear on
        - `notifyEnabled` boolean, required: Whether the checklist item will notify on Slack when its status changes
        - `statuses` ChecklistItemStatusType[], required: The list of possible checklist item status types for this checklist item. A subset of all possible ChecklistItemStatusType values
        - `releaseStepType` string: The release step that the checklist item appears on. Will be `null` if the placement of the item is not `binary`. Can either be of type ReleaseStepType, or a step's Step ID can be sent instead
        - `stepId` unknown
        - `oneOffForVersion` string: If the checklist item only applies for a single release version, this field will contain the version string for that version
        - `status` ChecklistItemStatus: The status of a checklist item
          - `status` 'approved' | 'rejected' | 'inProgress' | 'blocked' | 'passed' | 'failed', required: All possible statuses for a checklist item
          - `createdBy` string, required: The userId (email) of the user that created the checklist item
          - `createdAt` string, date-time, required: The date and time the checklist item was created
        - `placement` 'stepChecklist' | 'approvals' | 'regressionTesting', required: The placement of a given checklist item
        - `comment` ChecklistItemComment: A comment on a checklist item
          - `createdAt` string, date-time
          - `createdBy` string: The user id (email) of the user that added the comment
          - `comment` string: The comment string. Can be markdown.
    - object
      - `regressionItems` ChecklistItemEntity[], required: The list of regression items for the release step. This object is only returned for release steps of type `regressionTesting`
        - `id` string, required: The identifier of the checklist item
        - `title` string, required: The title of the checklist item
        - `description` string: The description of the checklist item. Accepts markdown.
        - `approverGroups` UserGroup[], required: The list of user groups that can approve this checklist item. Custom groups can be included as well.
        - `releaseType` 'all' | 'hotfixOnly' | 'rollbackOnly' | 'allExceptHotfix', required: The type of release this checklist item will appear on
        - `notifyEnabled` boolean, required: Whether the checklist item will notify on Slack when its status changes
        - `statuses` ChecklistItemStatusType[], required: The list of possible checklist item status types for this checklist item. A subset of all possible ChecklistItemStatusType values
        - `releaseStepType` string: The release step that the checklist item appears on. Will be `null` if the placement of the item is not `binary`. Can either be of type ReleaseStepType, or a step's Step ID can be sent instead
        - `stepId` unknown
        - `oneOffForVersion` string: If the checklist item only applies for a single release version, this field will contain the version string for that version
        - `status` ChecklistItemStatus: The status of a checklist item
          - `status` 'approved' | 'rejected' | 'inProgress' | 'blocked' | 'passed' | 'failed', required: All possible statuses for a checklist item
          - `createdBy` string, required: The userId (email) of the user that created the checklist item
          - `createdAt` string, date-time, required: The date and time the checklist item was created
        - `placement` 'stepChecklist' | 'approvals' | 'regressionTesting', required: The placement of a given checklist item
        - `comment` ChecklistItemComment: A comment on a checklist item
          - `createdAt` string, date-time
          - `createdBy` string: The user id (email) of the user that added the comment
          - `comment` string: The comment string. Can be markdown.
      - `testRuns` RegressionTestingTestRunEntity[], required: The list of regression testing test runs from the connected integration associated with this release step. This object is only returned for release steps of type `regressionTesting`.
        - `id` string, required: The id of the test run.
        - `name` string, required: The name of the test run.
        - `description` string, required: The description of the test run.
        - `statuses` RegressionTestingTestRunStatusEntity[], required: Per-status breakdown of the test cases in the test run.
          - `displayableName` string, required: The human-readable name of the status (e.g. `Passed`, `Failed`, `Blocked`).
          - `testCasesCount` integer, required: The number of test cases in this status.
          - `progressFraction` number, float, required: The fraction (0.0 - 1.0) of test cases in the test run that are in this status.
        - `completedAt` string, date-time, nullable, required: The date and time when the test run was completed. Null if the test run is still in progress.
        - `completionFraction` number, float, required: The fraction (0.0 - 1.0) of test cases in the test run that have been completed.
        - `externalUrl` string, required: The URL to the test run in the external test management integration.
        - `createdAt` string, date-time, required: The date and time when the test run was created.
        - `updatedAt` string, date-time, nullable, required: The date and time when the test run was last updated.
    - object
      - `items` FeatureReadinessItemEntity[], required: The list of Feature Readiness work items for the release. This object is only returned for release steps of type `featureReadiness`.
        - `id` string: The unique identifier for the item. Pass this value as `frItemId` when calling the ignore/un-ignore endpoint.
        - `ticket` object, nullable: The ticket associated with this item, if any.
          - `identifier` string
          - `description` string
          - `url` string
          - `owner` string, nullable
          - `reporter` string, nullable
          - `status` string
          - `isTicketDone` boolean
          - `priority` string, nullable
          - `ticketType` string, nullable
        - `code` union: The code associated with this item: either a pull request (PR / code review) or a commit (or null if none). This is the canonical location of pull request / code review information on a release — query the `featureReadiness` step to retrieve PR data.
          - WorkItemCodePullRequest
            - `identifier` string, required: The identifier of the pull request
            - `codeStatus` 'openPR' | 'merged' | 'unmerged' | 'cherryPickPending' | 'cherryPickOpen' | 'cherryPickFailed' | 'cherryPickMerged': Status of WorkItemCode entity
            - `type` 'commit' | 'pullRequest', required: Type of WorkItemCode entity
            - `url` string, required: The url of the pull request
            - `title` string, required: The title of the pull request
            - `description` string, required: The description of the pull request
            - `baseBranch` string, required: The base branch of the pull request
            - `headBranch` string, required: The head branch of the pull request
            - `author` string, required: The author of the pull request
            - `createdAt` string, date-time, required: The date and time the pull request was created
            - `updatedAt` string, date-time, required: The date and time the pull request was last updated
            - `pullRequestStatus` 'open' | 'merged' | 'closed' | 'unknown', required: Status of WorkItemCode entity
          - WorkItemCodeCommit
            - `identifier` string, required: The identifier of the commit
            - `codeStatus` 'openPR' | 'merged' | 'unmerged' | 'cherryPickPending' | 'cherryPickOpen' | 'cherryPickFailed' | 'cherryPickMerged', required: Status of WorkItemCode entity
            - `type` 'commit' | 'pullRequest', required: Type of WorkItemCode entity
            - `url` string, required: The url of the commit
            - `author` string, required: The author of the commit
            - `message` string, required: The message of the commit
            - `branch` string, required: The branch of the commit
            - `committedAt` string, date-time, required: The date and time the commit was created
            - `authoredAt` string, date-time, required: The date and time the commit was authored
        - `explanationText` string, nullable: Optional explanation for the item.
        - `ignored` boolean: Whether the item has been ignored. Ignored items no longer block the release from being considered ready.
        - `autoIgnored` boolean: Whether the item would be ignored automatically based on app settings.
        - `isItemDone` boolean: True when both the code is merged and the ticket is done.
        - `debugVariant` string: Identifies which variation of feature item this is (used to indicate the source of the work item).
    - object
      - `releasedAt` string, date-time, nullable: The date and time when the release was released to users.
      - `rolloutStartedAt` string, date-time, nullable: The date and time when the phased/staged rollout started for the release.
      - `releaseAdoptionRates` object, nullable: The current adoption rates for the release (fraction of users on this version) keyed by stability monitoring integration installation ID, if available.
      - `phasedRelease` PhasedReleaseData: Phased/staged rollout details for a release. Applicable to both Apple (phased release) and Google (staged rollout).
        - `state` string: The phased release state (e.g. Apple: ACTIVE, PAUSED, COMPLETE; Google: inProgress, halted, completed).
        - `dayNumber` integer: The current phased release day (Apple only, 1-7). 0 if not applicable.
        - `startDate` string, date-time, nullable: The date the phased/staged rollout started.
        - `userFraction` number, float: The fraction of users receiving the update (0.0 to 1.0). For Apple this is derived from the day number; for Google this is the configured staged rollout percentage.
      - `appStoreReviewData` AppStoreReviewDataEntity: Aggregated App Store reviews data for a rollout step run.
        - `averageRating` number, float, required: The average rating of the app on the App Store at the time the data was captured.
        - `totalRatingsCount` integer, required: The total number of ratings for the app on the App Store at the time the data was captured.
        - `userReviewIssues` AppStoreReviewsIssueEntity[], required: Issues surfaced from user reviews for the release.
          - `description` string, required: Human-readable description of the issue.
          - `isNewIssue` boolean, required: Whether this issue is new in the current release (i.e. not seen in prior releases).
          - `reviewExamples` AppStoreReviewEntity[], required: Example user reviews that contributed to this issue.
            - `id` string, required: The app store's identifier for the review. Stable across requests — dedupe on it.
            - `title` string, required: The review's title, empty on stores that don't have one.
            - `content` string, required: The review's body text.
            - `author` string, required: The reviewer's display name as given by the store.
            - `rating` string, required: The star rating, 1 through 5.
            - `submittedAt` string, date-time, required: When the review was submitted to the store.
            - `version` string: The app version the review was left on, when the store reports it.
            - `country` string: The storefront country the review was left in, when the store reports it.
            - `titleTranslated` string: English translation of the title, present only when review translation is enabled for the org.
            - `contentTranslated` string: English translation of the body, present only when review translation is enabled for the org.
            - `fetchedAt` string, date-time: When Runway fetched this review from the store.
            - `destination` AppStoreReviewDestinationEntity
              - …
      - `monitoringStatistics` MonitoringStatisticEntity[]: Monitoring statistics for the rollout, including crash-free rates, adoption, and custom metrics. Each entry contains the current summary value (no time series data).
        - `type` string: The metric type (e.g. 'userStability' for crash-free users, 'sessionStability' for crash-free sessions, 'adoptionRate', 'eventsPerActiveUser', etc.).
        - `integrationType` string: The integration providing this metric (e.g. 'firebase_crashlytics', 'bugsnag', 'datadog').
        - `currentValue` number, float, nullable: The current value of the metric for this release version.
        - `delta` number, float, nullable: The change in the metric value compared to the previous version.
        - `previousVersion` string, nullable: The previous release version used for comparison.
        - `previousValue` number, float, nullable: The metric value for the previous release version.
        - `monitoringMetricStatus` 'healthy' | 'unhealthy' | 'null', nullable: The health status of this metric, if a threshold is configured.
    - object: The release's submission, review and release timestamps for the Release (`takeoff`) step, plus the precomputed review durations. `startedReviewAt` is Apple-only, so both durations are null on Google Play.
      - `submittedAt` string, date-time, nullable: The date and time when the release was submitted to the app store for review.
      - `startedReviewAt` string, date-time, nullable: The date and time when the app store started reviewing the release. Not set by Google Play.
      - `approvedAt` string, date-time, nullable: The date and time when the app store approved the release.
      - `markedRejectedAt` string, date-time, nullable: The date and time when the release was marked as rejected in Runway.
      - `releasedAt` string, date-time, nullable: The date and time when the release was released to users.
      - `waitingForReviewSeconds` number, double, nullable: How long the release sat queued before the app store started reviewing it, in seconds (`startedReviewAt - submittedAt`).
      - `timeInReviewSeconds` number, double, nullable: How long the release was under app store review, in seconds (`approvedAt - startedReviewAt`).

## Other responses

- `400`: Bad request response
- `404`: Resource not found response

---

[API](https://skmtc.dev/runway/apis/runway-rest-api.md) - [All operations](https://skmtc.dev/runway/apis/runway-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/runway/apis/runway-rest-api/revisions/081109863a9a?raw)
