soapix — a Python client for SOAP services that don't follow the rules
Built and maintained by devark.cloud for the messy WSDLs, loose validation, and cryptic errors real enterprise SOAP services throw at you — with async support out of the box.
What soapix handles for you
The parts of enterprise SOAP integration that usually break other clients.
Native Async Support
AsyncSoapClient mirrors the sync API with async/await, so soapix drops straight into async services and job queues.
Typed Code Generation
client.generate() produces a fully typed Python client class with @dataclass models and IDE autocomplete straight from the WSDL.
Minimalist Call Syntax
Operations are called as client.service.MethodName(...) with keyword arguments — no envelope building, no boilerplate.
Enterprise-Grade WSDL Tolerance
Namespace quirks, optional-field omissions, and loose validation are normalized automatically — built for legacy ERP and banking WSDLs, not just the spec-perfect ones.
Quick start
Install the package and call your first operation in under a minute.
pip install soapixfrom soapix import SoapClient
client = SoapClient("http://service.example.com/?wsdl")
# Explore and test operations in the browser — no extra tools needed
client.serve()
# Or call directly from code
result = client.service.GetUser(userId=123)
print(result["name"])import asyncio
from soapix import AsyncSoapClient
async def main():
async with AsyncSoapClient("http://service.example.com/?wsdl") as client:
result = await client.service.GetUser(userId=123)
print(result["name"])
asyncio.run(main())Need a complex SOAP/XML or legacy ERP & banking integration?
soapix is what we build our own integrations on. As the devark.cloud team, we take ownership of your enterprise integration project end to end — from the messy WSDL to a production-grade client.
Discuss Your Integration Project