Schemathesis
Schemathesis automatically generates property-based tests from OpenAPI and GraphQL schemas or gRPC service descriptors, chains operations into realistic workflows, and exercises the edge cases that break your API.
Finding a server error that manual testing missed
Supported specifications
| Specification | Versions |
|---|---|
| OpenAPI | 2.0 (Swagger), 3.0, 3.1, 3.2 |
| GraphQL | June 2018 and later |
| gRPC | Unary methods, see the gRPC guide |
Why teams choose Schemathesis
- 🎯 Catches server errors, schema violations, and validation gaps that hand-written tests miss.
- 🧠 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.
- 🔄 Tests multi-step workflows, not single requests in isolation: connects operations through OpenAPI links, GraphQL type graphs, and gRPC method conventions, then carries real identifiers between them.
- ⏱️ No per-endpoint tests to maintain — point it at your schema or gRPC service and run.
- 🐛 Every finding ships with a minimal
curlorgrpcurlreproducer. - 🔌 Plugs into existing setups: CLI and
pytest, with CI integrations and multiple report formats (availability varies by protocol).
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.