> ## 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.

# List Shared Steps

> Retrieve a list of shared step collections for the authenticated project.

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

Retrieve a paginated list of shared step collections for your project. Shared
steps are reusable groups of test steps that can be referenced from any
verification test.

The response is intentionally lean (no step bodies) — fetch
[Get Shared Step](/api-reference/shared-steps/get-shared-step) for the full
contents of a specific collection.

## Query Parameters

<ParamField query="page" type="integer" default="0">
  Page number (0-indexed)
</ParamField>

<ParamField query="page_size" type="integer" default="25">
  Results per page (1-100)
</ParamField>

## Response

<ResponseField name="data" type="SharedStepSummary[]" required>
  Array of shared step summary objects
</ResponseField>

<ResponseField name="pagination" type="object" required>
  Pagination metadata (`page`, `page_size`, `total_count`, `total_pages`)
</ResponseField>

### SharedStepSummary Object

<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>
  Shared step collection name
</ResponseField>

<ResponseField name="steps_count" type="integer" required>
  Number of steps in the collection
</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>

<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?page=0&page_size=25" \
    -H "X-Api-Key: YOUR_API_TOKEN"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  {
    "data": [
      {
        "id": "ssc_login",
        "project_id": "test",
        "name": "Login Flow",
        "steps_count": 3,
        "created_at": "2026-03-01T10:00:00.000000+00:00",
        "created_by": "user@example.com"
      }
    ],
    "pagination": {
      "page": 0,
      "page_size": 25,
      "total_count": 1,
      "total_pages": 1
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /project/{projectId}/shared-steps
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:
    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: List Shared Steps
      description: >-
        Retrieve a list of shared step collections for the authenticated
        project.
      operationId: listSharedSteps
      parameters:
        - name: page
          in: query
          description: Page number (0-indexed)
          schema:
            type: integer
            default: 0
            minimum: 0
        - name: page_size
          in: query
          description: Results per page (1-100)
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSharedStepsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ListSharedStepsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/SharedStepSummary'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
        details:
          type: object
    SharedStepSummary:
      type: object
      properties:
        id:
          type: string
        project_id:
          type: string
        name:
          type: string
        steps_count:
          type: integer
        created_at:
          type: string
          format: date-time
          nullable: true
        created_by:
          type: string
          nullable: true
    Pagination:
      type: object
      properties:
        page:
          type: integer
        page_size:
          type: integer
        total_count:
          type: integer
        total_pages:
          type: integer
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key for authentication

````