Python 3.10–3.14 · v0.2.1
Ship clients.
Keep contracts.
Build production-ready Python API clients with FastAPI-style declarations. Typact handles request building, validation, retries, streaming, and tests.
contract.py
@client.get("/users/{user_id}") async def get_user( user_id: int = Path(), ) -> User: pass
DECLAREBUILDRUNTIMETYPE
01 / ONE CONTRACT
Declare the interface.
Typact runs the contract.
Declarations, transports, and conversion stay independent. Your client code keeps the part that matters: typed inputs and outputs.
01
FastAPI-style declarations
Path, Query, Header, Body, Form, and File keep endpoint contracts familiar and readable.
02
Production request policies
Validated responses, timeouts, retries, token refresh, streams, and lifecycle events work together.
03
Tests without a server
Replace the transport with a Mock Runtime and inspect the exact request your declaration produced.
READY WHEN YOU ARE