Catch API bugs before your users do

Schemathesis: open source API testing tool that generates tests from OpenAPI and GraphQL schemas

Start Testing in Seconds

Trusted by engineers from

Core Features

Property-based testing for OpenAPI and GraphQL APIs

Property-Based Testing

Uses property-based testing to automatically generate diverse test cases. Explores your API's behavior systematically rather than testing individual scenarios manually

CI/CD Integration

Integrates with GitHub Actions, GitLab CI, and pytest workflows. Generates detailed test reports and integrates with your existing CI pipeline

Schema Validation

Validates API responses against your OpenAPI specification. Detects when your implementation doesn't match the documented behavior or response structure

Schema-Aware Fuzzing

Creates test inputs based on your schema's data types and constraints. Tests boundary values, type mismatches, and constraint violations to find input handling issues

Extensible Framework

Customize tests with Python hooks and config files. Add authentication, modify test data, and configure different settings per API operation

Reproducible Failures

Failed tests include minimal reproduction cases and curl commands for debugging. Test failures provide exact request data and expected vs actual responses

Academic Research

Used in Production

Engineers using Schemathesis in real-world applications

Schemathesis is the best tool for fuzz testing of REST API on the market. We at Red Hat use it for examining our applications in functional and integrations testing levels.

Dmitry Misharov portrait

Dmitry Misharov

Principal Quality Engineer at RedHat

The tool is incredible; it handles negative scenario testing much faster than I could in Postman, and without the maintenance burden.

Luděk Nový portrait

Luděk Nový

Quality Engineer at JetBrains

Among the other six tools, Schemathesis is clearly the one that puts the most emphasis on usage by practitioners, with its user-friendliness (e.g., GitHub Actions support) and extensive documentation.

Man Zhang & Andrea Arcuri

Open Problems in Fuzzing RESTful APIs: A Comparison of Tools

Frequently Asked Questions

Schemathesis uses property-based testing to generate test cases automatically from your API schema, rather than requiring manually written test cases. It creates diverse inputs based on schema constraints to test edge cases and data type boundaries.

Schemathesis detects schema violations, API/documentation mismatches, server crashes (5XX errors), data type handling issues, input validation problems, edge cases in request parameters, response status code inconsistencies, and content type mismatches.

Schemathesis parses your API schema to extract parameter types, constraints, and valid ranges. It generates test cases by creating inputs that test boundary values, constraint violations, and data type mismatches. Test runs include both valid inputs (positive testing) and invalid inputs (negative testing).

Schemathesis supports OpenAPI (Swagger) 2.0, 3.0, 3.1, and GraphQL schemas. We're actively expanding support for more formats based on community feedback.

Schemathesis provides a GitHub Action and can be installed via pip in any CI environment. It returns appropriate exit codes for build automation and can generate JUnit XML reports for test result integration.

You can customize Schemathesis through configuration files, Python hooks, and command-line options. Modify test data generation, create custom validation checks, and control which operations to test.

Yes, Schemathesis integrates seamlessly with pytest and can run alongside your existing test suite. You can use your current fixtures, assertions, and test organization while adding Schemathesis tests.

Need help?

Get technical support and discuss implementation questions

  • Ask configuration questions
  • Report bugs and issues
  • Share integration examples
Join our Discord