Schemathesis
Schemathesis automatically generates property-based tests from your OpenAPI or GraphQL schema and exercises the edge cases that break your API.
Finding a server error that manual testing missed
Try it now
uvx schemathesis run https://example.schemathesis.io/openapi.json
This command will immediately find real bugs in a demo API and show you exactly how to reproduce them.
Supported specifications
| Specification | Versions |
|---|---|
| OpenAPI | 2.0 (Swagger), 3.0, 3.1, 3.2 |
| GraphQL | June 2018 and later |
Why teams choose Schemathesis
- 🎯 Find real bugs on the first run (commonly 5–15 in production schemas).
- 🧠 Adapts as it runs: learns from server responses, threads real values into later requests, and shifts effort away from operations that aren't producing useful signal.
- ⏱️ No per-endpoint tests to maintain — point it at your schema and run.
- 🐛 Every finding ships with a minimal
curlreproducer. - 🔌 Plugs into existing setups: CLI,
pytest, GitHub Actions, plus Allure, JUnit XML, and HAR output.
Developer feedback
"The tool is amazing as it can test negative scenarios instead of me and much faster!"
— Luděk Nový, JetBrains
Documentation
-
New to Schemathesis?
Get started in minutes:
-
How-To Guides
Practical guides for common scenarios:
-
Want to understand how it works?
Deep dive into concepts:
-
Need technical details?
Complete reference:
Important
Upgrading from older versions? See the Migration Guide for key changes.