ModernCalcs

SOAP API Tester

Build a SOAP 1.1 envelope from a method and parameters, validate it, and send it to an endpoint.

Sending uses fetch()from your browser, subject to CORS — most SOAP services (often internal/enterprise) don't allow direct browser calls. Envelope building and XML validation always work regardless.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetUser xmlns="http://example.com/webservice">
      <UserId>123</UserId>
    </GetUser>
  </soap:Body>
</soap:Envelope>

SOAP API Tester: Envelopes Without Hand-Writing XML

SOAP's XML envelope structure is verbose and easy to get subtly wrong by hand — mismatched namespaces, malformed element nesting, missing closing tags. This tool builds a correct SOAP 1.1 envelope from a method name and a list of parameters, validates it's well-formed XML in real time, and can send it directly to an endpoint that allows browser requests.

Formula
SOAP 1.1: <soap:Envelope><soap:Body><MethodName xmlns='namespace'>params</MethodName></soap:Body></soap:Envelope>

Validation uses the browser's native DOMParser — the same strict XML parser used anywhere else in the browser.

Why the Envelope Structure Matters

SOAP requires a very specific nesting: an Envelope root with the standard SOAP namespace, containing a Body element, containing your method call element (itself scoped to your service's target namespace), containing each parameter as its own XML element. Getting any layer wrong typically produces an opaque SOAP fault rather than a clear error message — building it programmatically from structured inputs avoids that whole class of mistake.

Real-Time Well-Formedness Validation

As you edit the method name, namespace, or parameters, the generated envelope is immediately re-validated with the browser's actual XML parser — so you catch a malformed parameter name (like one containing invalid XML characters) before attempting to send anything.

Practical Examples

Testing a Legacy SOAP Web Service

Calling a .asmx-style SOAP endpoint with a UserId parameter.

  • 1.Endpoint: your service URL
  • 2.Method: GetUser, Namespace: your service's target namespace
  • 3.Param: UserId = 123
  • 4.Send (if the endpoint allows CORS) or copy the envelope for use elsewhere

What Gets Built

  • Standards-compliant SOAP 1.1 envelope
  • Method call scoped to your target namespace
  • XML-escaped parameter values
  • Optional SOAPAction header

Good Use Cases

  • Testing a legacy or enterprise SOAP web service
  • Generating a correct envelope to use in another HTTP client
  • Debugging a malformed SOAP request
  • Learning SOAP's envelope structure hands-on

Frequently Asked Questions

What SOAP version does this build?

SOAP 1.1, using the standard http://schemas.xmlsoap.org/soap/envelope/ namespace — the most widely deployed version for legacy and enterprise web services (SOAP 1.2 uses a different envelope namespace and content-type convention).

How is the envelope validated?

Using the browser's native DOMParser to parse the generated XML and check for a parsererror node — the same strict parser the browser uses for any XML document, confirming the envelope is well-formed before you try sending it.

Why might sending fail even with a valid envelope?

Almost always CORS — SOAP services are frequently internal or enterprise systems never designed to receive direct browser JavaScript requests, and without an explicit Access-Control-Allow-Origin header from the server, the browser blocks the response from being read.

How is the SOAPAction header used?

Many SOAP 1.1 services require a SOAPAction HTTP header identifying which operation is being invoked, separate from the envelope body itself — leave it blank if your service doesn't require it.

Is my data sent anywhere besides the endpoint I specify?

No — the request goes directly from your browser to the endpoint URL you provide; nothing is proxied or logged.