# Making SOAP Requests with Postman

Lots of people call Postman “a REST client.” They’re not wrong. However, Postman is actually used for any calls sent over [HTTP](https://blog.postman.com/what-is-http/). Keep reading to learn how to use Postman to make SOAP requests. Since SOAP and GraphQL are agnostic with regards to the underlying transport protocol, Postman can handle these types of calls too. It’s fashionable these days to talk about the **REST** ([REpresentational State Transfer](https://blog.postman.com/rest-api-examples/)) architectural pattern, but a ton of developers still run on the older **SOAP** ([Simple Object Access Protocol](https://blog.postman.com/soap-api-definition/)). Unless your organization is brand-new, chances are you’re developing and maintaining legacy codebases that rely on SOAP. **Related: [REST vs. SOAP](https://blog.postman.com/soap-vs-rest/)**

## Making SOAP Requests with Postman

 **Related**: [Check out the Salesforce SOAP API](https://www.postman.com/salesforce-developers/workspace/salesforce-developers/request/12721794-b7bf4b6c-a92c-4750-bd53-3dededc317a5) If so, here’s how you can use Postman for making SOAP requests: 1. Enter the SOAP endpoint as the request URL in Postman: ```
    https://www.w3schools.com/xml/tempconvert.asmx
    ```
2. Set the request method to `POST`.
3. Under the **Body** tab, set the body type to `raw` and select `XML` from the dropdown. Once you add XML data as the body, Postman will automatically add a `Content-Type` header that can be seen under the **Headers** tab. While REST typically uses [JSON](https://blog.postman.com/what-is-json/) and other data formats, SOAP relies on [XML](https://blog.postman.com/what-is-xml/).
4. Under the **Headers** tab, add a new header where `Content-Type` is the key and `text/xml` is the value in order to override the one added for you in the previous step, since the endpoint we’re working with requires a different `Content-Type` header. You can deselect the originally added header.
5. Back in the request body under the **Body** tab, define the SOAP envelope, body, and header tags. Start with the required SOAP envelope tag and define all the namespaces. Enter the SOAP body and headers. The name of the SOAP method (operation) should be specified in the SOAP body, as seen in the code block below. Then hit **Send**, and inspect the response.
 
 ```
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">

  <soap12:Body>

    <FahrenheitToCelsius xmlns="https://www.w3schools.com/xml/">

      <Fahrenheit>75</Fahrenheit>

    </FahrenheitToCelsius>

  </soap12:Body>

</soap12:Envelope>

```

 This example uses a [temperature conversion service](https://www.w3schools.com/xml/tempconvert.asmx) to convert 75 degrees Fahrenheit to Celsius. Try it out in the example template **[SOAP: Fahrenheit to Celsius conversion:](https://www.postman.com/explore/template/7315/soap-fahrenheit-to-celsius-conversion)** ![Postman SOAP Example](https://blog.postman.com/wp-content/uploads/2020/04/SOAPmov.gif) If you’re a genius who can already do this conversion in your head, then check out [this collection of other public SOAP APIs](https://www.postman.com/cs-demo/workspace/postman-customer-org-s-public-workspace/collection/8854915-43f6a9be-0c65-4486-bfdf-36b6548161dd) to mess around with. And there you have it! Postman is a trusty tool to handle any API that can utilize HTTP—like REST, SOAP, and GraphQL. **Related: [What is an API?](https://www.postman.com/what-is-an-api/)** *This is an update of a* [*previously published article*](https://blog.postman.com/postman-makes-soap-requests-too/)*.*