Step CI · Schema

Step CI Workflow

Schema for a Step CI YAML workflow file defining automated API test scenarios

API TestingFunctional TestingTestingCI/CDQuality AssuranceAutomationOpen-Source

Properties

Name Type Description
version string Workflow file version identifier
name string Descriptive name for the test workflow
env object Environment variables accessible in the workflow via ${{env.variableName}}
config object Global workflow configuration settings
components object Reusable workflow components
tests object Collection of named test cases
before object Setup steps executed before all tests
after object Teardown steps executed after all tests
View JSON Schema on GitHub

JSON Schema

step-ci-workflow-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://github.com/api-evangelist/step-ci/blob/main/json-schema/step-ci-workflow-schema.json",
  "title": "Step CI Workflow",
  "description": "Schema for a Step CI YAML workflow file defining automated API test scenarios",
  "type": "object",
  "required": ["version", "name"],
  "properties": {
    "version": {
      "type": "string",
      "description": "Workflow file version identifier",
      "example": "1.1"
    },
    "name": {
      "type": "string",
      "description": "Descriptive name for the test workflow"
    },
    "env": {
      "type": "object",
      "description": "Environment variables accessible in the workflow via ${{env.variableName}}",
      "additionalProperties": {
        "type": "string"
      }
    },
    "config": {
      "type": "object",
      "description": "Global workflow configuration settings",
      "properties": {
        "continueOnFail": {
          "type": "boolean",
          "description": "Whether to continue executing steps after a failure"
        },
        "concurrency": {
          "type": "integer",
          "description": "Number of concurrent test executions"
        },
        "http": {
          "type": "object",
          "description": "HTTP client configuration",
          "properties": {
            "baseURL": {
              "type": "string",
              "description": "Base URL prepended to all HTTP requests"
            },
            "rejectUnauthorized": {
              "type": "boolean",
              "description": "Whether to reject self-signed SSL certificates"
            }
          }
        }
      }
    },
    "components": {
      "type": "object",
      "description": "Reusable workflow components",
      "properties": {
        "schemas": {
          "type": "object",
          "description": "Named JSON/OpenAPI schemas for response validation"
        },
        "credentials": {
          "type": "object",
          "description": "Named authentication credentials"
        }
      }
    },
    "tests": {
      "type": "object",
      "description": "Collection of named test cases",
      "additionalProperties": {
        "$ref": "#/definitions/TestCase"
      }
    },
    "before": {
      "type": "object",
      "description": "Setup steps executed before all tests"
    },
    "after": {
      "type": "object",
      "description": "Teardown steps executed after all tests"
    }
  },
  "definitions": {
    "TestCase": {
      "type": "object",
      "required": ["steps"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Test case display name"
        },
        "steps": {
          "type": "array",
          "description": "Ordered list of test steps",
          "items": {
            "$ref": "#/definitions/Step"
          }
        }
      }
    },
    "Step": {
      "type": "object",
      "required": ["name"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Step name for reporting"
        },
        "http": {
          "$ref": "#/definitions/HttpStep"
        },
        "grpc": {
          "type": "object",
          "description": "gRPC step configuration"
        },
        "graphql": {
          "type": "object",
          "description": "GraphQL step configuration"
        },
        "delay": {
          "type": "integer",
          "description": "Delay in milliseconds before executing the step"
        }
      }
    },
    "HttpStep": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Request URL (relative or absolute)"
        },
        "method": {
          "type": "string",
          "enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"],
          "description": "HTTP method"
        },
        "headers": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Request headers"
        },
        "body": {
          "description": "Request body (string, object, or array)"
        },
        "params": {
          "type": "object",
          "description": "Query string parameters",
          "additionalProperties": {
            "type": "string"
          }
        },
        "auth": {
          "type": "object",
          "description": "Step-level authentication configuration"
        },
        "captures": {
          "type": "object",
          "description": "Data to extract from the response for use in subsequent steps"
        },
        "check": {
          "type": "object",
          "description": "Response validation assertions"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/step-ci-workflow"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.