Audit WSDL and XSD dependencies API

Compare a caller-supplied WSDL 1.1 document and its XSD documents, including an optional previous set. audit_status is valid, warnings, breaking_changes, invalid, or incomplete. Imports are not downloaded. A schema difference is syntactic and is not proof that a SOAP client fails at runtime.

The Audit WSDL and XSD dependencies operation is part of the WSDL XSD Dependency Audit API on BRAINIAC.software. Compare a caller-supplied WSDL 1.1 document and its XSD documents, including an optional previous set. audit_status is valid, warnings, breaking_changes, invalid, or incomplete. Imports are not downloaded. A schema difference is syntactic and is not proof that a SOAP client fails at runtime. It is exposed as POST /api/v1/soap-contracts/wsdl-xsd-dependency-audit and priced at $0.05 USDC on Base. Payment uses the x402 exact scheme: an unpaid call returns HTTP 402 with payment requirements; after paying the exact USDC amount, retry the same request with a payment-signature header and Idempotency-Key. No account and no API key are required. Data sources for this product: Caller-supplied WSDL and XSD documents processed locally Limitations: Documents are the XML strings in the request. Imports, includes, and redefines are not downloaded. A schema difference is syntactic. It is not proof that a SOAP client fails at runtime. Names are compared as a namespace plus a local name. Only WSDL 1.1 and XML Schema are read. schema-dependency-tree reads import locations and complex types in the supplied XML. A schemaLocation is not downloaded. Outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Related operations in this group include Score schema dependency weight. Open the group documentation for the full request schema, field notes, and response examples before integrating.

POST$0.05 USDC
/api/v1/soap-contracts/wsdl-xsd-dependency-audit

Example request

curl -i -X POST "https://www.brainiac.software/api/v1/soap-contracts/wsdl-xsd-dependency-audit" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "wsdl": {
    "name": "account.wsdl",
    "content": "<?xml version=\"1.0\"?>\n<definitions xmlns=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:tns=\"urn:account\" targetNamespace=\"urn:account\">\n  <types>\n    <xsd:schema targetNamespace=\"urn:account\">\n      <xsd:include schemaLocation=\"types.xsd\"/>\n      <xsd:import namespace=\"urn:missing\" schemaLocation=\"https://example.com/missing.xsd\"/>\n    </xsd:schema>\n  </types>\n  <message name=\"GetAccountRequest\"><part name=\"body\" element=\"tns:GetAccountRequest\"/></message>\n  <message name=\"GetAccountResponse\"><part name=\"body\" element=\"tns:GetAccountResponse\"/></message>\n  <portType name=\"AccountPortType\">\n    <operation name=\"GetAccount\"><input message=\"tns:GetAccountRequest\"/><output message=\"tns:GetAccountResponse\"/></operation>\n  </portType>\n  <binding name=\"AccountBinding\" type=\"tns:AccountPortType\"><operation name=\"GetAccount\"/></binding>\n  <service name=\"AccountService\"><port name=\"AccountPort\" binding=\"tns:AccountBinding\"/></service>\n</definitions>"
  },
  "schemas": [
    {
      "name": "types.xsd",
      "content": "<?xml version=\"1.0\"?>\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:tns=\"urn:account\" targetNamespace=\"urn:account\">\n  <xsd:element name=\"GetAccountRequest\"><xsd:complexType><xsd:sequence>\n    <xsd:element name=\"id\" type=\"xsd:string\" minOccurs=\"1\"/>\n    <xsd:element name=\"note\" type=\"xsd:string\" minOccurs=\"0\"/>\n  </xsd:sequence></xsd:complexType></xsd:element>\n  <xsd:element name=\"GetAccountResponse\" type=\"tns:Account\"/>\n  <xsd:complexType name=\"Account\"><xsd:sequence>\n    <xsd:element name=\"id\" type=\"xsd:string\"/>\n    <xsd:element name=\"owner\" type=\"tns:Account\"/>\n  </xsd:sequence></xsd:complexType>\n</xsd:schema>"
    },
    {
      "name": "extra.xsd",
      "content": "<?xml version=\"1.0\"?><xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"urn:account\"><xsd:complexType name=\"Account\"><xsd:sequence><xsd:element name=\"id\" type=\"xsd:string\"/></xsd:sequence></xsd:complexType></xsd:schema>"
    }
  ],
  "previous": {
    "wsdl": {
      "name": "account.wsdl",
      "content": "<?xml version=\"1.0\"?>\n<definitions xmlns=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:tns=\"urn:account\" targetNamespace=\"urn:account\">\n  <types><xsd:schema targetNamespace=\"urn:account\"><xsd:include schemaLocation=\"types.xsd\"/></xsd:schema></types>\n  <message name=\"GetAccountRequest\"><part name=\"body\" element=\"tns:GetAccountRequest\"/></message>\n  <message name=\"GetAccountResponse\"><part name=\"body\" element=\"tns:GetAccountResponse\"/></message>\n  <message name=\"ResetPasswordRequest\"><part name=\"body\" element=\"tns:ResetPasswordRequest\"/></message>\n  <portType name=\"AccountPortType\">\n    <operation name=\"GetAccount\"><input message=\"tns:GetAccountRequest\"/><output message=\"tns:GetAccountResponse\"/></operation>\n    <operation name=\"ResetPassword\"><input message=\"tns:ResetPasswordRequest\"/></operation>\n  </portType>\n  <binding name=\"AccountBinding\" type=\"tns:AccountPortType\"><operation name=\"GetAccount\"/><operation name=\"ResetPassword\"/></binding>\n  <service name=\"AccountService\"><port name=\"AccountPort\" binding=\"tns:AccountBinding\"/></service>\n</definitions>"
    },
    "schemas": [
      {
        "name": "types.xsd",
        "content": "<?xml version=\"1.0\"?>\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:tns=\"urn:account\" targetNamespace=\"urn:account\">\n  <xsd:element name=\"GetAccountRequest\"><xsd:complexType><xsd:sequence>\n    <xsd:element name=\"id\" type=\"xsd:string\" minOccurs=\"0\"/>\n  </xsd:sequence></xsd:complexType></xsd:element>\n  <xsd:element name=\"GetAccountResponse\" type=\"tns:Account\"/>\n  <xsd:element name=\"ResetPasswordRequest\"><xsd:complexType><xsd:sequence><xsd:element name=\"id\" type=\"xsd:string\"/></xsd:sequence></xsd:complexType></xsd:element>\n  <xsd:complexType name=\"Account\"><xsd:sequence><xsd:element name=\"id\" type=\"xsd:int\"/></xsd:sequence></xsd:complexType>\n</xsd:schema>"
      }
    ]
  },
  "clients": [
    {
      "name": "legacy-client",
      "operations": [
        "ResetPassword"
      ],
      "elements": [
        {
          "namespace": "urn:account",
          "name": "ResetPasswordRequest"
        }
      ]
    }
  ]
}
JSON

An unpaid probe returns HTTP 402 with x402 payment requirements. After paying the exact USDC amount on Base, retry the identical request with a payment-signature header.

FAQ

  • Do I need an API key? No. Pay the listed USDC amount with x402.
  • What network? Base (eip155:8453), USDC.
  • Is this an official determination? No. Results are for human review against the cited sources.

Related APIs

WSDL XSD Dependency Audit APIFull docsHow it works