NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #846 most downloaded on PyPI
Dynamic OpenAPI, Discovery, and GraphQL spec client for Python — turn any API spec into a fully-typed async client with attribute chaining, streaming, and file uploads
Last release 13 days ago
21 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Most releases are documented
notes for 22 of 25 stable releases
Nothing withdrawn
no release was ever pulled
5 months old
25 releases · first in 2026
One column per month.
Rewrite gql and spec module prose and docstrings
Move errors to fasttransport, and remove FastSpecError and SpecError ( #36 ), thanks to @jph00
Support bytes and NoneType in param type serialization round-trip
Add response to APIError, support body_ kwarg override, and allow custom transport and base_url in OpenAPIClient
body_ kwarg override, and allow custom transport and base_url in OpenAPIClient (#28)Move transport and SSE into external fasttransport package, switch httpx to httpx2, and rename json_data param to json
json_data param to json (#27)Rename oapi control kwargs to trailing-underscore form ( headers_ , query_ , raw_ ), drop _body passthrough
headers_, query_, raw_), drop _body passthrough (#26)Add chunked parallel batching and paged() cursor iteration for Relay connections to GqlClient
Fix OpFunc. _bind to skip params covered by client defaults when binding positional args, and raise TypeError on too many
_bind to skip params covered by client defaults when binding positional args, and raise TypeError on too many (#23)Fix OpFunc. _bind to skip params covered by client defaults when binding positional args, and raise TypeError on too many
_bind to skip params covered by client defaults when binding positional args, and raise TypeError on too many (#23)Move API surface helpers (snake, sanitized_params , mk_sig , mk_doc , OpGroup, group building, full_docs ) to fastcore.apisurface
Move API surface helpers (snake, sanitized_params , mk_sig , mk_doc , OpGroup, group building, full_docs ) to fastcore.apisurface
Add __dir__ to OpGroup and OpenAPIClient to control attribute discovery
__dir__ to OpGroup and OpenAPIClient to control attribute discovery (#17)fix: walk anyOf/oneOf in _schema_props_required (#14), thanks to @jackhogan
_schema_props_required (#14), thanks to @jackhoganAdd sync client support (SyncTransport/SyncOpFunc)
__allow__ protocol to OpGroup and OpenAPIClient for simpler allow() usage (#16)_schema_props_required (#14), thanks to @jackhoganAdding suffixes to duplicated sanitized param names (#7), thanks to @kafkasl
Adding suffixes to duplicated sanitized param names (#7), thanks to @kafkasl
guard against empty response body in _decode (#6), thanks to @ncoop57
Return request response and stream events as AttrDict (#5), thanks to @KeremTurgutlu
AttrDict (#5), thanks to @KeremTurgutlurevert dict2obj resp which was causing issues in fastllm
op/path tags in group_func, dedupe route/body/query params
User defined group name parsing
Preserve OpenAPI request content type and encode bodies accordingly
fastspec currently sends request bodies as JSON for generated OpenAPI calls. This works for JSON-first APIs, but not for Stripe v1 write endpoints, which expect application/x-www-form-urlencoded.
Stripe v1 also expects nested structures to be flattened:
metadata={"kind": "subscription"} -> metadata[kind]=subscriptionitems=[{"price": "price_..."}] -> items[0][price]=price_...Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →