> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.nunu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Shared Step

> Retrieve a shared step collection, optionally by version.

<Info>
  **Authentication**: Any authenticated API key
</Info>

Retrieve a single shared step collection, including the full body of every
step.

## Path Parameters

<ParamField path="sharedStepId" type="string" required>
  The shared step collection ID
</ParamField>

## Query Parameters

<ParamField query="version" type="integer">
  Fetch a specific version of the collection instead of the latest. Must be a
  positive integer.
</ParamField>

## Response

<ResponseField name="id" type="string" required>
  Shared step collection ID
</ResponseField>

<ResponseField name="project_id" type="string" required>
  Project the collection belongs to
</ResponseField>

<ResponseField name="name" type="string" required>
  Collection name
</ResponseField>

<ResponseField name="version" type="integer" required>
  Current version. Pass this back as `expected_version` when calling
  [Update Shared Step](/api-reference/shared-steps/update-shared-step).
</ResponseField>

<ResponseField name="is_shared" type="boolean" required>
  Always `true` for collections returned by this endpoint
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp when the collection was created
</ResponseField>

<ResponseField name="created_by" type="string">
  Who created the collection
</ResponseField>

<ResponseField name="steps_by_key" type="object" required>
  Map of step key (`"1"`, `"2"`, …) → step body. Each step has the same shape
  used inside test cases (`goal`, `expected_results`, `finish_condition`,
  `screenshots`, `pause_game`, `performance_monitoring`, `hint_manual`). See
  [Get Test → Verification step shape](/api-reference/tests/get-test#verification-step-shape)
  for the field details — `expected_results` is the structured list of checks
  and `finish_condition` is its legacy single-string rendering.
</ResponseField>

<ResponseField name="step_order" type="string[]" required>
  Ordered list of step keys
</ResponseField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  curl -X GET "https://nunu.ai/api/v1/project/your-project-id/shared-steps/ssc_login" \
    -H "X-Api-Key: YOUR_API_TOKEN"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  {
    "id": "ssc_login",
    "project_id": "test",
    "name": "Login Flow",
    "version": 2,
    "is_shared": true,
    "created_at": "2026-03-01T10:00:00.000000+00:00",
    "created_by": "user@example.com",
    "steps_by_key": {
      "1": {
        "test_step_id": "step_1",
        "goal": "Open login screen",
        "expected_results": [
          { "expected": "login fields are visible" }
        ],
        "finish_condition": "login fields are visible",
        "screenshots": 1,
        "pause_game": false,
        "performance_monitoring": false,
        "hint_manual": []
      }
    },
    "step_order": ["1"]
  }
  ```

  ```json 404 Not Found theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  {
    "error": "shared step not found"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /project/{projectId}/shared-steps/{sharedStepId}
openapi: 3.1.0
info:
  title: nunu.ai API
  description: >-
    The nunu.ai Public API allows you to programmatically interact with your
    projects, manage test runs, and upload builds.
  version: 1.0.0
servers:
  - url: https://nunu.ai/api/v1
security:
  - apiKeyAuth: []
paths:
  /project/{projectId}/shared-steps/{sharedStepId}:
    parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
        description: >-
          The project ID. You can copy it from the project settings page or the
          project URL in the dashboard.
    get:
      tags:
        - Shared Steps
      summary: Get Shared Step
      description: Retrieve a shared step collection, optionally by version.
      operationId: getSharedStep
      parameters:
        - name: sharedStepId
          in: path
          required: true
          description: Shared step collection ID
          schema:
            type: string
        - name: version
          in: query
          description: Specific version (positive integer)
          schema:
            type: integer
            minimum: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedStep'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Shared step not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    SharedStep:
      type: object
      properties:
        id:
          type: string
        project_id:
          type: string
        name:
          type: string
        version:
          type: integer
        is_shared:
          type: boolean
        created_at:
          type: string
          format: date-time
          nullable: true
        created_by:
          type: string
          nullable: true
        steps_by_key:
          type: object
          additionalProperties: true
        step_order:
          type: array
          items:
            type: string
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
        details:
          type: object
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key for authentication

````