33 analyzers · zero LLM calls · same input, same score

You have API tests.
API Qortex tells you whether they're any good — and gives you everything to fix it.

Send a request like any client. Then get a verdict on the testing behind it: coverage gaps, missing auth paths, assertions that only check a status code. Self-hosted, on your own infrastructure.

API Playgroundsample output
GET{{baseUrl}}/api/v1/orders/{{orderId}}
ParamsHeadersBodyAuthScriptsTestsCookiesAI Analysis
// 3 assertions on this request
status equals 200
responseTime lessThan 2000
$.data.id exists

// not asserted:
// 401 path · schema · $.data.total type
// $.data.items[] length · headers
Quality verdict
Press Send to run the request
and grade the testing behind it
0
Unit tests
0
End-to-end
0
Analyzers
0
Assertion types
0
Policy rules
0
Prisma models
0
API routes
0
Help articles
Verified at commit 56a9d4d
13 Aug 2026
Part 01

Quality

The part no other API tool does. Grade what you have, enforce standards, keep them alive, fill the gaps, prove it.

Collection Analysis

Point it at anything.
Get a verdict.

Upload a file, pick an existing project, fetch from a URL, or compare two collections. 33 analyzers grade what they find and group every issue by impact: Blockers, Reliability, Correctness, Completeness and Quality.

33 deterministic analyzers — zero LLM calls, so the same input always produces the same score
Auth flows, variable chains, negative testing, rate limits, SSL, idempotency, state machines, versioning
Format-specific analyzers for HAR secrets, cURL hardcoded auth, Insomnia template tags, Bruno syntax, and six GraphQL checks
One AI analyzer adds a Collection Summary with detected API groups and numbered recommendations
Generate tests from the findings, then Create Project from This — analysis becomes a working project
4 input modes5 impact tiersApply All FixesAnalyzed in 5ms/tools/collection-analysis
Collection Analysis
Collection Analysis

Assertion Policies 12 categories · 37 rules

Rules that auto-apply to every test during execution. Pick a ready-made preset, or switch to Custom Selection for control over every assertion type, operator and value. Click any category below to see its rules.

/settings/assertion-policies
Assertion Policies Settings
rb-1Status Code = expecteddefault on
rb-2Status is 2xx success (or test-defined range)opt-in
rb-3Content-Type contains JSONdefault on
rb-4Body is not emptyopt-in

Presets 7 coverage presets

Applied at project level, so every test inherits them. Or switch to Custom Mode for full control over all 12 categories and 37 individual rules. Separately, the test editor offers 6 one-click assertion bundles — Quick Check, Standard, Thorough, Contract, Security and Performance — for adding assertions to a single test.

🎯
Test-only
0 rules
Run only the assertions saved on the test
Quick Check
2 rules
Status code + body not empty
📋
Standard
4 rules
Status, content type, response time, body
🔍
Thorough
13 rules
Standard plus security and data quality
🔒
Security First
11 rules
All security and auth checks
⏱️
Performance
5 rules
Response time, size, headers
🗂️
Maximum Coverage
37 rules
Every rule across all 12 categories

Assertion Types 31 types · 10 categories

Build by clicking, or drop into custom JavaScript. Multiple operators per type across the ten categories.

3
Status Code
equals · in range · not equals
11
JSON Path
exists · value · type · regex · contains · length · gt · lt · not null · in · precision
3
Array
length · contains · item count
3
Headers
exists · value · contains
4
Body
contains · equals · empty · not empty
2
Performance
response time · size
1
Schema & Contract
JSON Schema validation
1
Regex
body regex match
1
Custom Logic
JavaScript expression
2
Redirect
redirect URL · HTTPS enforcement
Self-Healing

Your API changed.
Your tests didn't break.

Fields get renamed, moved, split or retyped. The healing engine detects the change, proposes the corrected assertion, and applies it automatically only when it is confident enough.

Five configurable change types — field renamed, moved, split, type changed and non-breaking additions, each with a worked example
Auto-apply above a confidence threshold you set, defaulting to 90%. Below it, you review
Every suggestion, acceptance and rejection logged to AssertionHealingLog for audit
Healing banner on detection, notification on auto-heal. Nothing changes silently
5 change types90% thresholdHealing historyAudit logged
Settings → Self-Healing
Settings → Self-Healing
Test Data

Coverage gaps
become datasets.

Upload a CSV, or generate data across ten categories including injection, unicode, boundary and type violation. Every row runs as its own case.

Columns become variables. Every column is exposed as {{id}}, {{email}}, {{expectedStatus}} and resolves per row in the URL, body or headers
Types detected on import — string or number, with a value count per column
Run one row while building, or Run with Data across every row. Set iterations, add a delay, or stop on first failure
Tag intent as Positive, Negative (Auth), Negative (Validation) or Edge Case, so boundary rows are testing the right thing
Link a dataset for suite runs, or drop a new CSV or JSON to replace it
CSV / JSONPer-row runsType detection4 test intents10 AI generation categories
test editor → Data
test editor → Data

Reports 7 types

Each answers a different question, all generated from the same run data. Pick a type, scope it to one project or all projects, choose a format and generate.

🧪

Functional Test Report

Per-test pass/fail with failure grouping, error messages and stack traces.

📈

Performance Report

Response time percentiles, throughput and k6 load-test output with AI bottleneck analysis.

🛡️

Security Report

Passive OWASP findings, active payload results and ZAP deep-scan output by CWE category.

📜

Contract Report

Schema violations against OpenAPI specs, with $ref resolution and version diffing.

❤️

Health Report

Overall project health with AI-written narrative summary across runs.

Quality Report

Coverage scoring, assertion depth and the five-tier issue classification.

🔄

CI/CD Export

JUnit XML, JSON and TAP output for pipeline integration with GitHub Actions, GitLab CI and Jenkins.

Quality, visible at a glance

Pass-rate trend, response percentiles, failure grouping and regression detection across every suite.

API Qortex — Dashboard
Live
Total Tests
1,247
▲ 12 this week
Pass Rate
94.2%
▲ 4.2 pts
Avg Response
187ms
p50 · p90 · p95 · p99
Suites
12
across 4 projects
Test Results — Last 12 Runs
R1R2R3R4R5R6R7R8R9R10R11R12
Sample dashboard. All figures illustrative — not measured.
Part 02

Build & Run

Everything you need to construct a request, chain it, script it and execute it — across four protocols.

Core capabilities

🧪

Visual Test Builder

Point-and-click assertions, headers, auth and body configuration with instant visual feedback. No code required.

🎮

API Playground

Params, Headers, Body, Auth, Scripts, Tests, Cookies and AI Analysis. Eight body types: JSON, form-urlencoded, form-data, XML, HTML, text, raw and none.

🔌

gRPC Workspace

Dedicated surface with proto loading, alongside REST, GraphQL and WebSocket. Four protocols, one platform.

🌐

GraphQL

Introspection, type-name resolution, query depth and fragment-reuse analysis built into the analyzers.

📡

WebSocket

Full tester with auto-reconnect and 1,245 lines of dedicated UI. Nine auth selectors, with bearer, basic and API key wired into the connect handshake.

📐

Project Hierarchy

Projects → Suites → Tests with categories, drag-and-drop ordering and nested navigation.

🔐

9 Auth Types + Inheritance

Bearer, Basic, API Key, OAuth 2.0, Digest, Hawk, NTLM, AWS Signature V4, plus none. Project-to-test inheritance with 401 auto-refresh and token caching.

🔗

5-Level Variable Scoping

Builtins → chained → suite → environment → global. Narrowest wins. Auto-extract tokens from responses; dynamic values always beat the store.

🌍

Multi-Environment

Dev, Staging, Production variables per project. Switch instantly without editing tests.

📝

Pre/Post Scripts

Postman-compatible pm.* API with CryptoJS, lodash, dateFns, uuid, pm.sendRequest() and pm.execution.setNextRequest().

🍪

Cookie Jar

Full cookie lifecycle across requests, with its own dedicated test suite.

Three-Level Execution

Run a single test, a whole suite, or batch across suites. SSE streaming shows each result as it lands, with dependsOn chains and skipIfDepFailed.

🧪

QortexLab Practice API

Built-in companion API with 142 endpoints and 13 modules. Learn, test and demo with no external dependency.

💾

Saved Responses

Capture and keep responses for comparison, mocking and later inspection.

Import 7 parsers

Every import is graded before it lands. AI pre-analysis, auto-detect, script extraction and a four-step wizard.

📮
Postman
v2.0 + v2.1
📄
OpenAPI
3.x JSON + YAML
📋
Swagger
2.0 Specs
🌐
HAR
HTTP Archive
🦋
Insomnia
Collections + Envs
💻
cURL
Command Import
🐻
Bruno
Bru Collections

Testing disciplines 8 areas

One platform instead of six.

🧪
Core discipline

Functional

CRUD, validation, error handling, pagination, filtering, sorting

🛡️
OWASP-based

Security

Injection, auth bypass, data exposure, rate limiting

k6 load & stress

Performance

Response time, throughput, concurrency, spike profiles

📐
Schema & OpenAPI

Contract

Schema validation, backward compatibility, type checking

📡
Uptime & SLA

Monitoring

Health checks, availability, latency tracking

🔗
Workflow & chain

Integration

Multi-step workflows, data passing, dependency ordering

🌐
REST · GraphQL · gRPC · WS

Protocol

Four transports, one test model

🔄
CI/CD & schedules

Automation

Pipelines, scheduled runs, webhook triggers

Part 03

Intelligence

Analysis is deterministic and repeatable. AI adds explanation, suggestion and conversation on top — never in place of the verdict.

AI capabilities 24 integration points

🔍
Auto

AI Analysis

Every failed test gets root cause analysis, severity rating, category tags and step-by-step fix suggestions.

⚖️
Auto

Intelligent Verdict

Reviews entire responses holistically, not just assertions, catching subtle issues rules miss.

📋
Auto

Field Observations

Per-field data quality: anomalies, missing values, format inconsistencies, unexpected patterns.

💡
On-Demand

Test Suggestions

Recommends additional cases based on API structure, response patterns and coverage gaps.

💬
Interactive

Ask Qortex

Chat that knows your projects, runs and results. Contextual answers from your own data, with sources.

📥
Auto

Import Analysis

Pre-analyses imported collections: quality score, coverage gaps, auth detection, recommendations.

On-Demand

Test Data Generation

Datasets across ten categories including injection, unicode, boundary and type violation.

🩹
Auto

Healing Suggestions

Proposes assertion repairs when response structure drifts, with before and after.

📊
Auto

Report Narratives

Written summaries on Health and Quality reports, generated from run data.

🚦
Auto

Load Test Analysis

Reads k6 output and explains where the bottleneck is.

🔎
Auto

Security Analysis

Interprets scanner findings and ranks real risk over noise.

🧭
Auto

Model Discovery

Detects available models per provider so configuration stays current.

🏠 Ollama (Local)
Groq (Free)
🟢 OpenAI
🟣 Anthropic
🔵 Google Gemini
🔵 Mistral
🔧 Custom Provider

Seven providers. Switch per feature, or chain them with automatic fallback.

Privacy

PII never reaches
a cloud model.

Self-hosting is table stakes. This is what makes it mean something: when a cloud provider is in the chain, sensitive values are masked before the prompt leaves your server, then restored in the response.

18 detector types across 6 groups — personal, government IDs, financial, auth & secrets, network and custom patterns, with 15 government-ID region configurations covering IN, US, UK, CA, AU, SG, BR, DE, FR, IT, ES, JP, KR, AE and ZA
Three scopes : Auto masks only when a cloud provider is in the chain, All masks even on local Ollama, Off disables it
Two modes : Mask & Unmask swaps in [TYPE_N] placeholders and restores originals in the response; Block rejects the AI request entirely and returns a category summary
Add your own regex patterns for domain-specific PII, running alongside the built-in detectors
18 detectors15 regions6 groupsCloud-only triggerStream unmasker
Settings → Security → PII Masking
Settings → Security → PII Masking

What no one else has

Smart Execution

Three-level execution: single test, suite, or batch across suites. SSE streaming shows every result as it lands, with dependsOn chains and skipIfDepFailed for ordering.

Live SSE + Dependency Chains
📚

Smart Knowledge Base

Upload your company’s API docs as PDF, DOCX or MD. The RAG pipeline chunks, indexes and makes them searchable via AI chat, with source citations.

RAG Pipeline + 109 Articles
🔧

Smart Scripts

Full Postman-compatible pm.* API. pm.test(), pm.expect(), CryptoJS, lodash, dateFns, uuid, pm.sendRequest() for auxiliary calls, pm.execution.setNextRequest() for dynamic flow.

Postman-Compatible + Sandboxed
Part 04

Operations

Scheduling, monitoring, security scanning, load testing, contracts, access control and audit — everything needed to run this in production.

Enterprise capabilities

📅

Schedules

Cron-based runs with timezone support and in-app notifications when something breaks.

🔗

Webhooks & CI/CD

Trigger runs from GitHub Actions, GitLab CI, Jenkins or any webhook, with token-scoped access.

📜

Contract Testing

Validate against OpenAPI specs with $ref resolution, AJV, five violation types and versioned contract schemas.

🛡️

Security Scanning

Three engines: passive OWASP checks, active payload probing with 44 payloads across 6 CWE categories, and ZAP deep scan in its own container.

📈

Performance Testing

k6-driven load testing with six profiles, live SSE dashboards, thresholds and checks captured per run.

📡

API Monitoring

Uptime and SLA tracking, four alert types, 90-day timeline, per-monitor trend and check history.

🔐

Role-Based Access

Database-backed roles at global and project scope, fully configurable permissions, cascade-safe deletes.

📋

Audit Trail

Every create, update and delete logged with user, timestamp, entity type and action.

🗑️

Data Retention

Configurable retention policy with scheduled maintenance to keep history bounded.

⌨️

CLI Runner

Three commands, five reporters: Console, JUnit XML, JSON, HTML and TAP.

🔔

Notifications

In-app notification centre with deep links straight to the failing run.

🧱

Security Hardening

SSRF guards with permanent cloud-metadata blocking (169.254.169.254), an Allow Private URLs toggle, a 10-hop redirect cap, CSRF protection, rate limiting, JWT secret management and script sandboxing.

Part 05

Platform

Extensibility, collaboration, portability and the stack it all runs on.

Platform capabilities

🧩

Plugins

Extend execution with your own logic through a registered plugin executor and registry.

👥

Real-Time Presence

See who else is online and which test or suite they are viewing. SSE-powered presence indicators with automatic stale-session cleanup.

🔁

YAML Import / Export

Git-friendly project export and import, so suites can live in your repository.

📊

Custom Dashboards

Build your own dashboard from the metrics you care about.

📚

Knowledge Base

Upload API docs as PDF, DOCX or MD. RAG indexing makes them searchable and answerable in chat.

⚙️

Code Generation

Generate runnable code in 8 languages from any request: cURL, JavaScript (fetch), Python (requests), Java (HttpClient), Go (net/http), Ruby (Net::HTTP), PHP (cURL) and C# (HttpClient).

🗂️

Help Center

109 built-in articles across 12 categories, searchable, with AI chat over the whole corpus.

🐳

Docker Deployment

Six services via Docker Compose: Postgres, Ollama, ZAP, app, nginx, certbot. Persistent volumes, health checks, auto-restart.

Stack verified at 56a9d4d

Deploy with Docker Compose on any VPS. Six services, persistent volumes, health checks, auto-restart. Nothing leaves your network.

Next.js 16.1.6React 19.2.3TypeScript 5Prisma 6.19PostgreSQLTailwind CSS 4shadcn/uiZod 4Framer MotionSSE StreamingJWT AuthPapa Parse@grpc/grpc-jswsk6OWASP ZAPOllamaDocker Compose
Start

See what your tests are actually worth

Runs entirely on your own infrastructure. Nothing leaves your server.

Read the docs