---
updatedAt: 2026-05-28T15:59:25.000Z
agentTools:
  projectIndex: https://developers.qase.io/llms.txt
---

# Delete shared step

This method completely deletes a shared step from repository.


# OpenAPI definition

````json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Qase.io TestOps API v1",
    "description": "Qase TestOps API v1 Specification.\n\n## Rate limiting\n\nRequests are rate limited per workspace (shared across all API tokens of the\nworkspace). The exact limit depends on your subscription plan.\n\nEvery response advertises the current limit state through headers:\n\n- `RateLimit` and `RateLimit-Policy` — IETF rate-limit headers describing the\n  active policies and how much of each one is left.\n- `X-RateLimit-Limit` — maximum number of requests allowed in the window.\n- `X-RateLimit-Remaining` — requests left in the current window.\n- `X-RateLimit-Reset` — Unix timestamp at which the window resets.\n\nTwo policies apply at the same time. `rpm` caps the sustained rate over 60\nseconds. `burst` caps a short spike over 10 seconds. A request is served only\nwhen both policies allow it.\n\nExample headers on a served request, for a plan with a 600 rpm limit:\n\n```\nRateLimit-Policy: \"rpm\";q=600;w=60, \"burst\";q=100;w=10\nRateLimit: \"rpm\";r=412;t=37, \"burst\";r=88;t=2\nX-RateLimit-Limit: 100\nX-RateLimit-Remaining: 88\nX-RateLimit-Reset: 1756742400\n```\n\nIn `RateLimit-Policy`, `q` is the quota and `w` is the window in seconds. In\n`RateLimit`, `r` is the requests left and `t` is the seconds until that policy\nfrees a slot.\n\nThe `X-RateLimit-*` headers are a single-number mirror for older clients. They\nreport whichever of the two policies is closer to its limit, so they can show\nthe burst quota while a spike is in progress, as in the example above.\n\nWhen the limit is exceeded the API responds with `429 Too Many Requests`, a\n`Retry-After` header (seconds to wait before retrying), and the body:\n\n```\nRetry-After: 12\n```\n\n```json\n{\n  \"status\": false,\n  \"errorMessage\": \"API rate limit exceeded.\"\n}\n```\n",
    "termsOfService": "https://qase.io/terms",
    "version": "1.0.0",
    "contact": {
      "name": "Qase.io",
      "url": "https://qase.io",
      "email": "support@qase.io"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "https://github.com/qase-tms/specs/blob/master/LICENSE"
    }
  },
  "tags": [
    {
      "name": "shared-steps"
    }
  ],
  "servers": [
    {
      "url": "https://api.qase.io/v1",
      "description": "The production API server."
    }
  ],
  "paths": {
    "/shared_step/{code}/{hash}": {
      "delete": {
        "operationId": "delete-shared-step",
        "tags": [
          "shared-steps"
        ],
        "summary": "Delete shared step",
        "description": "This method completely deletes a shared step from repository.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/Code"
          },
          {
            "$ref": "#/components/parameters/Hash"
          }
        ],
        "responses": {
          "200": {
            "description": "A Result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HashResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request."
          },
          "401": {
            "description": "Unauthorized."
          },
          "403": {
            "description": "Forbidden."
          },
          "404": {
            "description": "Not Found."
          },
          "429": {
            "description": "Too Many Requests."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "HashResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Response"
          },
          {
            "type": "object",
            "properties": {
              "result": {
                "type": "object",
                "properties": {
                  "hash": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "Response": {
        "type": "object",
        "properties": {
          "status": {
            "type": "boolean"
          }
        }
      }
    },
    "securitySchemes": {
      "TokenAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Token"
      }
    },
    "parameters": {
      "Code": {
        "name": "code",
        "in": "path",
        "description": "Code of project, where to search entities.",
        "required": true,
        "schema": {
          "type": "string",
          "minLength": 2,
          "maxLength": 10
        }
      },
      "Hash": {
        "name": "hash",
        "in": "path",
        "description": "Hash.",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "security": [
    {
      "TokenAuth": []
    }
  ]
}
````