---
title: "Get the verification steps the given program may encounter in the verification flow."
method: GET
path: "/program/{programId}/possibleSteps"
tags: ["program"]
---

# Get the verification steps the given program may encounter in the verification flow.

`GET /program/{programId}/possibleSteps`

Get the verification steps the given program may encounter in the verification flow.

## Path parameters

- `programId` string, required

## Response `200`

The possible steps for a program

- PossibleStepsResponse — The possible steps for a program
  - `steps` VerificationStep[], required

## Other responses

- `404` — Program not found
- `429` — Too many requests. A `429` can mean one of two things — inspect the response body's `errorIds` before retrying: - A transient rate limit applied at the platform edge. If a `Retry-After` header is present, wait that many seconds (using exponential backoff) and retry. - A program/consumer limit such as `verificationLimitExceeded`, `reverificationDailyLimitExceeded`, or `docReviewLimitExceeded` — the consumer has exhausted an allowance defined by the program's limiting policy. This is a permanent rejection (`currentStep: error`, no `Retry-After`); do not retry.
- `500` — Internal server error.
- `503` — Service temporarily unavailable. The request can be safely retried after the interval given in the `Retry-After` header.

---

[API](https://skmtc.dev/sheerid/apis/sheerid-api.md) · [All operations](https://skmtc.dev/sheerid/apis/sheerid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sheerid/sheerid-api/revisions/dc7f4e84f543/schema)
