Building the product · Edition No. 25 · 19 Sep 2026

schemathesis/schemathesis

It reads your API's own OpenAPI or GraphQL description and attacks it with thousands of generated requests, reporting every answer that breaks the rules the description promised.

← Building the productRead the whole edition →

3.6k stars · MIT · v4.27.4, read from /releases/latest, shown as '18 Sep' with no year and therefore 18 September 2026 — the day before the edition · Track this in Scout

It reads your API's own OpenAPI or GraphQL description and attacks it with thousands of generated requests, reporting every answer that breaks the rules the description promised.

▶Repo detailsthe review · specs · pros & cons · install

What it is

A command-line tool and a Python library. It takes an OpenAPI or GraphQL schema — the machine-readable document that says what each address accepts and returns — and builds test cases from it using property-based testing, where the computer invents the inputs instead of you. Every failure it finds is reduced to the smallest request that still fails.

What it is good for. Anyone with a public or internal API and no confidence in the edge cases. The problem it removes is writing hundreds of tests by hand for inputs you would never have imagined. A FastAPI backend publishes an OpenAPI description automatically, so there is genuinely nothing to prepare. Point it at the address and read the report.

Stars3.6k
LicenceMIT
Latestv4.27.4, read from /releases/latest, shown as '18 Sep' with no year and therefore 18 September 2026 — the day before the edition
Good
  • No test writing at all to begin with. The description you already publish is the input.
  • When it finds a failure it shrinks it to the smallest request that still breaks, so you get a one-line reproduction rather than a wall of noise.
  • MIT licence, and it is moving fast: v4.27.4 was published on 18 September 2026, the day before this edition.
Watch for
  • It is only as good as your description. If your schema is loose, the tests are loose.
  • It sends real requests, so never point it at a live database with real customers in it. Use a copy.
  • A full run against a large API takes a long time and will find the same class of problem many times before you fix the first one.
Similar repositories
Install
python3 -m venv venv
source venv/bin/activate
pip install schemathesis
# Against a running FastAPI service:
schemathesis run http://127.0.0.1:8000/openapi.json --url http://127.0.0.1:8000
# Keep the run short while you learn what it reports:
schemathesis run http://127.0.0.1:8000/openapi.json \
  --url http://127.0.0.1:8000 --max-examples 50
Screenshots
schemathesis/schemathesis: GitHub preview cardschemathesis/schemathesis: Screenshot 1

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.