Schemathesis: open source API testing tool that generates tests from OpenAPI and GraphQL schemas
Trusted by engineers from
Property-based testing for OpenAPI and GraphQL APIs
Generates diverse test cases from your schema's types and constraints. Probes boundary values, type mismatches, and constraint violations instead of the handful of scenarios you would write by hand
Validates API responses against your OpenAPI specification. Detects when your implementation doesn't match the documented behavior or response structure
Chains operations into multi-step workflows, inferring the links between them from your schema. Finds bugs that only appear after create, read, update, and delete run in sequence
Learns from responses mid-run: validation rules from rejected inputs, resource IDs from successful ones, auth requirements from 401s. Later requests reuse what earlier ones uncovered
A schemathesis.toml file covers auth, rate limits, test volume, and per-operation overrides. Python is for extensions, not for getting started
Assert your own business rules against every generated response, in Python, alongside the built-in checks. Failures report the same way, with the same reproduction commands
Feed in real IDs, wordlists, or LLM-generated payloads and mix them with generated data at whatever probability you choose. Plain value lists in config, no code required
Export JUnit, VCR, HAR, NDJSON, JSON, or Allure. Every failure is saved with a curl command and can be replayed later to confirm the fix
Engineers using Schemathesis in real-world applications
Dmitry Misharov
Principal Quality Engineer at RedHat
Luděk Nový
Quality Engineer at JetBrains
Man Zhang & Andrea Arcuri
Open Problems in Fuzzing RESTful APIs: A Comparison of Tools
schemathesis.toml file. Python is only needed for extensions such as custom checks, hooks, or the pytest integration.
schemathesis/action@v3), Docker image, or install via pip/uvx. Exports JUnit, VCR, HAR, NDJSON, JSON, and Allure reports. Returns standard exit codes for build gating, and a baseline file keeps existing failures from blocking the build so CI fails only on new ones. Works with all major CI platforms.
schemathesis.toml, per security scheme, with environment variable substitution for secrets - or pass them as CLI flags (--auth, --header). Supports Bearer tokens, Basic auth, and API keys, with Python hooks available for token refresh and other dynamic flows.
Get technical support and discuss implementation questions