How to Consume a SOAP API in 2026
SOAP is not dead — it is the backbone of half the world's banking, insurance and government integrations. If you have ever ducked a SOAP requirement, this is the gentle on-ramp you needed.
The shape of a SOAP request
A SOAP call is just an HTTP POST with an XML body wrapped in an Envelope:
POST /soap HTTP/1.1
Content-Type: text/xml; charset=utf-8
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://demo.totalshiftleft.ai/soap">
<soapenv:Body>
<tns:GetUser><tns:id>1</tns:id></tns:GetUser>
</soapenv:Body>
</soapenv:Envelope>
That's the whole protocol. Header is optional, Body is required.
The WSDL — your contract
WSDL describes every operation, every type. Get it from any SOAP service with ?wsdl:
curl https://demo.totalshiftleft.ai/soap?wsdl
The WSDL replaces "API documentation" — your tooling reads it and generates a typed client.
SoapUI in 60 seconds
- SoapUI → File → New SOAP Project
- Paste
https://demo.totalshiftleft.ai/soap?wsdl - Every operation appears in the tree with a sample envelope ready to send
Generate a Java client
wsimport -keep -p com.example.demo \
https://demo.totalshiftleft.ai/soap?wsdl
# Then:
DemoService svc = new DemoService();
DemoPort port = svc.getDemoPort();
User u = port.getUser(1);
System.out.println(u.getName());
Generate a .NET client
dotnet svcutil https://demo.totalshiftleft.ai/soap?wsdl
# or in older projects: svcutil /target:code /out:Demo.cs ...
Python with zeep
from zeep import Client
client = Client('https://demo.totalshiftleft.ai/soap?wsdl')
user = client.service.GetUser(id=1)
print(user.name)
Three lines. zeep handles every envelope, every namespace, every type coercion.
SOAP vs REST in 2026
| Concern | SOAP | REST |
|---|---|---|
| Contract | WSDL (machine-checked) | OpenAPI (similar, by convention) |
| Payload | XML (verbose) | JSON (compact) |
| Tooling | SoapUI, wsimport, svcutil, zeep | Postman, fetch, requests |
| Where it shines | Banking, insurance, B2B, legacy | Web, mobile, public APIs |
Practice for free
Use the free public SOAP API — 14 operations across users, products and orders, no signup, plus the same data over REST and GraphQL so you can compare protocol on the wire.
Frequently asked questions
Is SOAP really still relevant?
In banking, insurance, healthcare and government — yes. Most large enterprise integration suites still expose SOAP first.
Can I call SOAP from Postman?
Yes. Set Content-Type to text/xml, paste the envelope as the raw body, and POST.
Other free public APIs in this sandbox
Open the live sandbox — REST, GraphQL, SOAP and auth in one place. No signup, no API key.
Open the API Sandbox →Topics: how to consume a SOAP API · SOAP API tutorial 2026 · WSDL import · SoapUI tutorial · SOAP in Java / .NET / Python