Skip to content

Schemathesis

Schemathesis automatically generates property-based tests from your OpenAPI or GraphQL schema, chains operations into realistic workflows, and exercises the edge cases that break your API.

Schemathesis automatically finding a server error
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: follows OpenAPI links, infers relationships where they aren't declared, and carries real identifiers between operations.
  • ⏱️ No per-endpoint tests to maintain — point it at your schema and run.
  • 🐛 Every finding ships with a minimal curl reproducer.
  • 🔌 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

Important

Upgrading from older versions? See the Migration Guide for key changes.

Need help?

  • Resources — Community articles, videos, and tutorials
  • FAQ — Frequently Asked Questions