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

# List Steps

> Retrieves the steps in a lesson, ordered by position.



## OpenAPI

````yaml get /steps
openapi: 3.0.1
info:
  title: SchoolMaker API V1
  description: API for managing your SchoolMaker school
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://schoolmaker.co/api/v1
    description: Production API
security:
  - bearerAuth: []
paths:
  /steps:
    get:
      tags:
        - Steps
      summary: List Steps
      description: Retrieves the steps in a lesson, ordered by position.
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 10000
          description: One-based page, default 1.
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 30
          description: Results per page, default 30, maximum 30.
        - name: query
          in: query
          required: false
          schema:
            type: string
            maxLength: 10000
          description: Case-insensitive step-title search.
        - name: lesson_id
          in: query
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 255
          description: Parent lesson ID.
      responses:
        '200':
          description: Successful request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    maxItems: 30
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        lesson_id:
                          type: string
                        title:
                          type: string
                        position:
                          type: integer
                        action_type:
                          type: string
                          enum:
                            - basic
                            - input_text
                            - textarea
                            - link
                            - quiz
                            - post
                            - topic
                            - milestone
                            - file_upload
                            - form
                        is_published:
                          type: boolean
                        is_optional:
                          type: boolean
                        min_duration:
                          type: integer
                          nullable: true
                        max_duration:
                          type: integer
                          nullable: true
                      required:
                        - id
                        - lesson_id
                        - title
                        - position
                        - action_type
                        - is_published
                        - is_optional
                        - min_duration
                        - max_duration
                  page:
                    type: integer
                  next_page:
                    type: integer
                    nullable: true
                required:
                  - data
                  - page
                  - next_page
              examples:
                page:
                  value:
                    data:
                      - id: 00000000-0000-4000-8000-000000000002
                        lesson_id: 00000000-0000-4000-8000-000000000003
                        title: Steps HTTP basic
                        position: 2
                        action_type: basic
                        is_optional: true
                        is_published: true
                        min_duration: null
                        max_duration: null
                    page: 1
                    next_page: null
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: Access denied
        '404':
          description: Step not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: Record not found
        '422':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: 'Invalid arguments: /attributes/position integer'
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.