Typact
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.

Read the docs →
contract.py
@client.get("/users/{user_id}")
async def get_user(
    user_id: int = Path(),
) -> User:
    pass
DECLAREBUILDRUNTIMETYPE

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.

Less client plumbing.
Clearer service boundaries.

Start in five minutes ↗