How to make a SOAP Call to your instance using the CURL Command


The scope of this article is to describe how to make a SOAP call to an instance using the CURL command. This will help to troubleshoot customer-related issues when using the SOAP API.


Soap Request Flow


Step 1:
A. Create the SOAP Envelope that contains the request that has to be sent
Note: The soap request parameters depend on the parameters that the WSDL exposes.
<soapenv:Envelope xmlns:soapenv="" xmlns:inc="">
B.  Save it as an XML file (example test.xml)
Step 2:

Create the CURL command that you will input in the terminal.

curl --username:password --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: ACTION_YOU_WANT_TO_CALL" --data @FILE_NAME URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT

Example 1: If you are consuming the WSDL from an Instance

curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://<instance_name> 

Example 2: If you are consuming the WSDL from a Node

curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://<noce_name><Port_Number>/ 

Step 3: 

Execute the command in Terminal or command prompt.


If ever you see that you are not receiving the expected output, then add the verbose parameter to the curl command and this shall give you more information.

Example of the curl command with verbose:

curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://<instance_name> -v 

 Common issue you might face:

1.The file containing the request is not readable


<SOAP-ENV:Envelope xmlns:SOAP-ENV="">
<faultstring>Unable to parse SOAP document</faultstring>
<detail>Error completing SOAP request</detail>

Solution: Check the content and format of the file that contains the SOAP Request 

2. The credential of the specified user is wrong or user is not authorized to access the WSDL


< HTTP/1.1 401 Unauthorized
< Set-Cookie: JSESSIONID=5C48D05E518DC37DA6502440F2FD8361; Path=/; HttpOnly;Secure
* Authentication problem. Ignoring this.

Solution : Check the user credential and if there is any ACL blocking the user from accessing the record

3. The WSDL is incorrect/wrong


* Could not resolve host: <URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT>
* Closing connection 0
curl: (6) Could not resolve host: URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT

Solution: Check if the correct URL is specified in the curl command.

Additional Information