Step CI - Open-Source API Test Automation Framework
Step CI is an open-source API testing framework with YAML, JSON and JavaScript workflows. Test REST, GraphQL, gRPC, SOAP and tRPC APIs in CI/CD.
TL;DR
TL;DR: Step CI is an open-source, language-agnostic API testing framework that runs YAML/JSON/JS workflows against REST, GraphQL, gRPC, SOAP and tRPC endpoints — self-hosted, CI/CD-ready.
Source and Accuracy Notes
⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.
- Project page: stepci.com
- Source repository: github.com/stepci/stepci
- License: MPL-2.0 (verified via GitHub API
license.spdx_id) - HN launch thread: news.ycombinator.com/item?id=34830901 (Show HN: Step CI – API Testing and Monitoring Made Simple)
- Source last checked: 2026-06-19 (commit
mainbranch, release2.8.2)
What Is Step CI?
Step CI is an open-source API Quality Assurance framework built for developers who want to define API tests as code. Instead of relying on GUI-based tools like Postman or Insomnia, you write test workflows in YAML, JSON, or JavaScript and run them via CLI or directly in your CI/CD pipeline.
From the project README:
Step CI is an open-source API Quality Assurance framework
- Language-agnostic. Configure easily using YAML, JSON or JavaScript
- REST, GraphQL, gRPC, tRPC, SOAP. Test different API types in one workflow
- Self-hosted. Test services on your network, locally and CI/CD
- Integrated. Play nicely with others
The framework has 1,860 GitHub stars and is actively maintained.
Setup Workflow
Step 1: Install the CLI
Using Node.js (npm):
npm install -g stepci
Note: Make sure you are using the LTS version of Node.js
Using Homebrew:
brew install stepci
Step 2: Create a Workflow
Create a workflow.yml file:
version: "1.1"
name: Status Check
env:
host: example.com
tests:
example:
steps:
- name: GET request
http:
url: https://${{env.host}}
method: GET
check:
status: /^20/
You can also use JSON format:
{
"version": "1.1",
"name": "Status Check",
"env": { "host": "example.com" },
"tests": {
"example": {
"steps": [{
"name": "GET request",
"http": {
"url": "https://${{env.host}}",
"method": "GET",
"check": { "status": "/^20/" }
}
}]
}
}
}
Step 3: Run the Workflow
stepci run workflow.yml
Output on success:
PASS example
Tests: 0 failed, 1 passed, 1 total
Steps: 0 failed, 1 passed, 1 total
Time: 0.559s, estimated 1s
Workflow passed after 0.559s
Deeper Analysis
Supported API Protocols
Step CI supports testing multiple API types within a single workflow:
- REST — standard HTTP requests with full response validation
- GraphQL — query and mutation testing
- gRPC — protocol buffer-based API testing
- tRPC — type-safe API testing
- SOAP — XML-based web service testing
Workflow Features
Chaining requests with captures and variables:
tests:
auth_flow:
steps:
- name: Login
http:
url: https://api.example.com/login
method: POST
body:
email: [email protected]
password: testpass
capture:
json: "$.token"
variable: access_token
- name: Get Profile
http:
url: https://api.example.com/profile
method: GET
headers:
Authorization: "Bearer ${{variables.access_token}}"
Data-driven testing with fake data generation:
tests:
validation:
steps:
- name: Submit form
http:
url: https://api.example.com/users
method: POST
body:
name: "{{ fake('firstName') }} {{ fake('lastName') }}"
email: "{{ fake('email') }}"
Import from Postman and Insomnia
Step CI supports importing existing collections:
- Import from OpenAPI
- Postman import tracking: GitHub Issue #29
- Insomnia import tracking: GitHub Issue #30
Practical Evaluation Checklist
- Works with Node.js (library mode) or standalone CLI
- Docker runner available:
docker run stepci/stepci - GitHub Actions integration via official action
- GitLab CI and Jenkins integrations documented
- Jest plugin available for unit test integration
- Parallel test execution supported
- Self-hosted runner — no cloud dependency for test execution
- Pricing: Open-source (free forever) + optional Support Plan with SLA
Security Notes
Step CI runs entirely self-hosted. Your API credentials and test data never leave your infrastructure. Tests can be run against local network services, localhost, or CI/CD environments without routing traffic through third-party servers.
The open-source runner and CLI are free under the Mozilla Public License 2.0 (MPL-2.0).
FAQ
Q: How is this different from Postman or Insomnia? A: Postman and Insomnia are GUI-based API clients. Step CI is a code-first, CLI-driven framework where tests are defined as YAML/JSON/JS files and can be version-controlled alongside your codebase.
Q: Can I use this in GitHub Actions? A: Yes. Step CI has an official GitHub Action and can also be run via Docker in any CI/CD pipeline.
Q: Does it support performance and load testing? A: Yes. The framework includes performance testing capabilities alongside functional API testing.
Conclusion
Step CI fills the gap between GUI-based API clients (Postman, Insomnia) and code-only testing libraries. Its YAML-first approach makes test workflows readable and version-controllable, while support for multiple API protocols covers most modern API architectures. The self-hosted, open-source model is particularly attractive for teams with strict data residency or security requirements.
For more, see the official documentation or try the online playground.
Related Posts
dev-tools
Automotive Skills Suite for AI Engineering
Evaluate Automotive Skills Suite for APQP, ASPICE, HARA, safety-plan, and DIA workflows with setup notes, governance risks, and SME review guidance.
5/28/2026
dev-tools
awesome-agentic-ai-zh Roadmap Guide
Explore awesome-agentic-ai-zh as a Chinese agentic AI learning roadmap, with setup notes, track selection, study workflow, and evaluation guidance.
5/28/2026
dev-tools
Baguette iOS Simulator Automation Guide
Set up Baguette for iOS Simulator automation, web dashboards, device farms, gesture input, streaming, and camera testing with Xcode caveats.
5/28/2026