SOAP API Introduction

Applies to QAComplete 14.3, last modified on February 19, 2024

In this documentation, we refer to both QAComplete and ALMComplete collectively as QAComplete.

QAComplete has a SOAP API for accessing and changing data in QAComplete from external applications.

SOAP is a remote procedure call protocol that works over HTTP. SOAP requests are HTTP POST requests made to the web service endpoint URL. The client and server exchange data in the XML format in the body of HTTP requests and responses. QAComplete uses UTF-8 encoding for SOAP messages.

Sample SOAP request and response

Note: Since release 10.2, a number of SOAP API methods are obsolete and are supported for backward compatibility only. Please, consider using REST API methods to access QAComplete data.

Common use cases

You can use QAComplete SOAP API to:

  • Query data about releases, requirements, defects and other items in QAComplete.

  • Add, change and delete items programmatically.

  • Import data to or export data from QAComplete.

  • Integrate QAComplete with third-party systems.

  • Synchronize data between QAComplete and a third-party system, whether one time or at regular intervals.

See the How To section for ready code examples.

Endpoint and WSDL URLs

Use the following URLs to send requests to QAComplete SOAP API and to download the latest WSDL file:

  • For QAComplete SaaS (hosted on qacomplete.smartbear.com):

    Endpoint: http://soap.qacomplete.smartbear.com/psWS.asmx
    WSDL: http://soap.qacomplete.smartbear.com/psWS.asmx?WSDL
  • For QAComplete On-Premises (hosted on your company-owned server):

    Endpoint: http://[yourserver]/psws/psws.asmx
    WSDL: http://[yourserver]/psws/psws.asmx?WSDL

Development platforms

Many programming languages and development environments have built-in or third-party libraries for working with SOAP web services. These libraries wrap API calls into classes and methods, so you do not need to manually handle HTTP requests and responses and XML messages.

Language or Platform Libraries
Java JAX-WS (available in Java 6 and later), Apache Axis2, CFX
See SOAP API in Java.
.NET (C#, Visual Basic .NET and so on) WCF (the System.ServiceModel namespace)
See SOAP API in .NET.
PHP SOAP extension
Perl SOAP::Lite
C++ Windows Web Services API (WSSAPI), gSOAP, Apache Axis2/C

This guide has examples in Java and C#, but you can use the same concepts in your language of choice.

Supported operations

The API provides several common operations for all item types:

Operation Description
Add Creates a new item with the specified data.
Delete Deletes an existing item by ID.
Load Returns an existing item by ID.
LoadByCriteria Returns all items, or those that match the specified condition.
LoadByCriteria returns data in list pages rather than all at once. For example, instead of returning all 1000 items, it returns the first 200 items. To get other items, you need to call the operation again, but with a different page number. For details, see LoadByCriteria Operations.
Update Changes data of an existing item.

Most API operations have names in the format ObjectType_Operation, for example, Bugs_Add or Releases_Load.

For a full list of operations, see Reference.

Authentication

Most QAComplete API calls require authentication. To authenticate, you pass the user ID (not the login e-mail address), password, QAComplete project ID, and department ID in the AuthenticationData object in the request body. For details, see Authentication.

The only operations that do not need authentication are GetVersion, GetLoginInfo and GetLoginInfoByEntity.

Security

QAComplete provides security rights that allow or deny access to whole projects and specific project areas (releases, defects and so on). Access to project areas is controlled by a combination of the Read, Add, Update and Delete rights. Security rights are assigned to user groups, not individual users.

For successful API calls, the authenticating user must have access to the target project, and sufficient access level (Read, Add, and so on) to the target project area. To protect the security of your data in QAComplete, we recommend that you create a separate user account for making API calls. It is best to create this account in the WebService Users group, and give this group the minimum security rights needed to make the API calls.

To check if a user can access a project

To view or change security rights for a user group

Data consistency

To keep data in QAComplete consistent, the API works as follows:

  • The add and update operations check the input data and, if it is not valid, return a SOAP fault with HTTP status 500. See Error Handling.

  • The add and update operations cannot change autogenerated and read-only fields, such as item IDs.

  • Delete operations automatically delete any child items. For example, Releases_Delete also deletes iterations and builds associated with that release.

Required and default field values

QAComplete users can customize the required fields and default field values for items. So, the values an API call must include and may omit depend also on your QAComplete configuration. For details, see Required and Optional Field Values and Default Field Values.

Note: The QAComplete service does not support empty elements in requests. You need to avoid using empty elements in requests.

Date and time

All API operations use the server’s date and time. See Date and Time Format for details.

Supported standards

QAComplete SOAP API complies with the following standards:

  • SOAP 1.1 and SOAP 1.2
  • WSDL 1.1

QAComplete SOAP API training

SmartBear provides a training course that covers various aspects of QAComplete SOAP API and gives integration ideas for your extended use of QAComplete. For more information, visit:

http://support.smartbear.com/almcomplete-services/web-service-api/

See Also

About SOAP API

Highlight search results