| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-05-08 | 6.9 kB | |
| Release 4.18.0 source code.tar.gz | 2026-05-08 | 60.1 MB | |
| Release 4.18.0 source code.zip | 2026-05-08 | 61.1 MB | |
| Totals: 3 Items | 121.1 MB | 0 | |
:rocket: Added
Resource pool & captured IDs
- Capture identifiers from
{<id>: <object>, ...}map-by-id GET responses (e.g. team / pod / cluster status maps). - Capture every element of list-shaped responses into the pool, not just the first.
- Capture pool entries from custom wrappers, nested envelopes, and multi-array-root GET responses.
- Apply pool overlay to foreign-key fields nested inside request body objects.
Error feedback (4xx parsers)
- Refine generation from 4xx errors (Spring, Pydantic, DRF, Rails, Laravel, ASP.NET, Symfony, Zod, AJV, go-validator, Confluent, marshmallow, Flask-RESTful, Flask-RESTX, Litestar).
Adaptive operation handling
- Detect runtime auth requirements from 401/403 responses on operations the spec declares public.
- Skip operations that consistently return
405 Method Not Allowedand surface amethod_not_allowedwarning.
GraphQL
- GraphQL fuzzing: dispatch producer mutations first and reuse captured identifiers across test cases.
- GraphQL stateful phase: chained operation scenarios.
Configuration
extra-data-sourcesconfig for the examples and coverage phases. #3972- Document the JSON Schema for
schemathesis.tomlfor editor autocompletion. #3971
:bug: Fixed
Coverage phase
- Skip
patternrewrites that collapse optional variable-length sub-groups to{0}. - Skip
{}as positive coverage body for schemas withminPropertiesbut norequiredfields. - Coverage positive cases from
oneOf/anyOfbranches violating a root-level constraint (e.g.type: objectbranch undertype: arrayroot) were yielded as valid. - Positive-mode generation collapse for
readOnlyfields nested inallOfand listed in parentrequired. - Honor
minimum: 0/maximum: 0and Draft 4 booleanexclusiveMinimum/exclusiveMaximumin coverage-phase number generation. - Positive-mode coverage skipped object schemas with annotations next to unsatisfiable optional properties.
- Skip parameter-mutation coverage cases when no positive body can be generated.
- Coverage near-boundary numbers drift from
multipleOfdue to IEEE-754 subtraction (e.g.99999.99 - 0.01). - Coverage boundary numbers fail validation when both bounds are exclusive (e.g.
exclusiveMinimum: 0+exclusiveMaximum: 1). - Preserve
minLength/maxLengthwhen thepatternrewrite cannot encode them. - Emit
format: uuidnegative cases in coverage on OpenAPI 3.0 / Swagger 2.0 schemas. - Emit
minProperties/maxPropertiesviolations for object schemas alongsideadditionalProperties.
Resource pool & captured IDs
- Mismatched parent/child path parameters in pool draws for hierarchical operations.
- Recognize nested foreign-key body fields independently of the spec's
pathsordering. - Recognize body foreign-key fields nested behind
allOf/oneOf/anyOfcomposition. - Drop spec examples invalidated by inferred constraints from the example mixer.
- Pick up in-place mutations of bundled
$reftargets when generating from cached schemas. - Pool overlay corrupting nested object siblings during coverage generation.
- Stop re-feeding deleted resource identifiers to subsequent operations.
- False positive
positive_data_acceptancewhen a runtime pool body variant was missing required fields. #3949
use_after_free check
- False positive
use_after_freeon a second DELETE - DELETE is idempotent (RFC 7231 §4.3.5). - False positive
use_after_freeafter a DELETE on a collection path with no path parameters. - Include the prior DELETE in
use_after_freereproduce when it is a sibling step.
Validation false positives
- False positive
negative_data_rejectionfor integer/number query parameters when an array element is a numeric string. #3931 - False positive
negative_data_rejectionon 405 responses from routing-level rejection. - False positive
negative_data_rejectionfor body schemas combining$refwith sibling keywords. - False positive
response_headers_conformancefor Swagger 2.0 array headers serialised viacollectionFormat.
Reports & output
- JUnit and Allure reports marked all test cases as skipped when a schema had no inline examples, even though Coverage or Fuzzing phases ran successfully afterwards. #3738
- Preserve trailing test events when producer threads exit at a phase boundary.
Other
- Panic during response validation for schemas with very large
{0,N}regex quantifiers (e.g.{0,404600}). Runtime Errorfrom invalid Schema Object when every required parameter of a set is excluded from generation.- Set
filenameon binarymultipart/form-dataparts; useencoding.headers.Content-Dispositionif present, field name otherwise. #3951 - Reject
.and..path-parameter values; URL normalisation routes the request to a different operation.
:wrench: Changed
Resource & foreign-key recognition
- Recognize more path parameters as resource identifiers.
- Recognize camelCase foreign-key field names (
locationId,userUuid,orderId). - Recognize plural foreign-key array fields (
site_ids,userUuids,session_guids). - Treat
_name-suffixed body fields as attributes when no path or schema backs the inferred resource (first_name,last_name). - Rebind body and query self-FK slots to the path-derived parent when the parent has the same field.
- Prefer same-module variants for spec-suffixed duplicates (
Group/Group1,Member/Member1). - Steer path slots to the same-module resource the operation actually returns when the suffix matcher would pick a cross-module candidate.
Stateful & output
- Tolerate per-operation transport failures in the stateful phase; abort only when several operations fail.
- Group consecutive same-title failures (e.g. multiple schema violations on one response) under a single header with a violation count.
Generation
- Negative-mode fuzzing distributes mutations across all schema depths.
Schema & dependencies
- Remove direct dependency on
jsonschema. - Recognize
application/jose+jweas JSON media type.
:racing_car: Performance
- Up to 2x faster schema processing on large specs (Stripe, VMware, OSIsoft) and ~40% faster CLI startup.
- ~75% lower peak memory for large scenarios when writing NDJSON reports.
- Cap shell-escaped values in reproduce-curl commands at 64 KB with an inline truncation marker.
- Avoid unnecessary function digest calculations when Hypothesis database is disabled.