HP ALM REST API - Get ALM Projects

Tutorial on how to get projects from HP ALM using REST API. Includes the browser method, VB and C# functions to get domains. Learn more @aneejian

Tutorial on how to get projects from HP ALM using REST API. Includes the browser method, VB and C# functions to get domains

Contents of this post.


Web Browser Method

  1. Open your favorite browser.
  2. Enter HP ALM REST API url: http://youralmserver:port/qcbin/api/authentication/sign-in
  3. Enter you ALM User Name and Password in the prompt that you get on navigating to the above url.
  4. Once successful authentication has occurred you will get a blank page.
  5. Now enter the url to get domains in the same browser window: http://youralmserver:port/qcbin/api/domains/domainName/projects (domainName is the name of the domain whose projects you want to view. Domain name is case sensitive. Use the name as displayed in ALM.)
  6. Once you enter this url and press enter you will get the list of projects you have access to under the domian in xml format.
  • For ALM Versions prior to 12.53
    In urls, replace api with rest
    e.g. http://youralmserver:port/qcbin/rest/domains/domainName/projects

    Refer HP ALM REST API - Authentication for details on how to sign-in in older versions of ALM.

    Sample Output

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
     <Project UID="172a-321-543-1" Name="Project1" /> 
     <Project UID="172a-321-543-2" Name="Project2" /> 
     <Project UID="172a-321-543-3" Name="Project3" /> 
     <Project UID="172a-321-543-4" Name="Project4" /> 
     <Project UID="172a-321-543-5" Name="Project5" /> 

    Code Method

    Inputs Required
    Prameter Example / Comments
    HP ALM Base URL http://youralmurl:port/qcbin
    HP ALM Domain Name

    Enter the name of the domain from which you want the list of projects.

    Refer HP ALM REST API - Get ALM Domains for details on how to get domains from ALM.

    Authentication CookieContainer

    Pass the authentication cookiecontainer obtained while you authenticated.

    Refer HP ALM REST API - Authentication for details.


    VB Code to get ALM Projects

    Private Function GetProjects(almBaseUrl As String, domainName As String, authenticationCookieContainer As CookieContainer) As IEnumerable(Of String)
     Dim projectList = New List(Of String)()
     Dim projectRestApiUrl = $"{almBaseUrl}/api/domains/{domainName}/projects"
     Dim projectRequest = CType(WebRequest.Create(projectRestApiUrl), HttpWebRequest)
     projectRequest.CookieContainer = authenticationCookieContainer
     Dim projectRequestResponse = projectRequest.GetResponse()
     Dim projectRequestResponseStream = projectRequestResponse.GetResponseStream()
     If projectRequestResponseStream Is Nothing Then
      Return projectList
     End If
     Using responseReader = New StreamReader(projectRequestResponseStream)
      Dim responseString = responseReader.ReadToEnd()
      Dim responseXml = XElement.Parse(responseString)
      Dim projectQuery = From project In responseXml.Elements() Select New With {.projectName = project.Attribute("Name").Value}
      projectList.AddRange(projectQuery.[Select](Function(project) project.projectName))
     End Using
     Return projectList
    End Function


    Dim almProjects = GetProjects("http://youralmurl:port/qcbin", "Domain1", AuthenticationCookieContainer)
    Console.WriteLine(almProjects.Aggregate(Function(a, b) a + vbLf + b))

    C# Code to get ALM Projects

    private static IEnumerable GetProjects(string almBaseUrl, string domainName, CookieContainer authenticationCookieContainer)
     var projectList = new List();
     var projectRestApiUrl = $"{almBaseUrl}/api/domains/{domainName}/projects";
     var projectRequest = (HttpWebRequest)WebRequest.Create(projectRestApiUrl);
     projectRequest.CookieContainer = authenticationCookieContainer;
     var projectRequestResponse = projectRequest.GetResponse();
     var projectRequestResponseStream = projectRequestResponse.GetResponseStream();
     if (projectRequestResponseStream == null) return projectList;
     using (var responseReader = new StreamReader(projectRequestResponseStream))
      var responseString = responseReader.ReadToEnd();
      var responseXml = XElement.Parse(responseString);
      var projectQuery = from project in responseXml.Elements()
             select new { projectName = project.Attribute("Name").Value };
      projectList.AddRange(projectQuery.Select(project => project.projectName));
     return projectList;


    var almProjects = GetProjects("http://youralmurl:port/qcbin", "Domain1", authenticationCookieContainer);
    Console.WriteLine(almProjects.Aggregate((a, b) => a + "\n" + b));

  • For ALM Versions prior to 12.53
    In the code replace /api/domains with /rest/domains

    Sample Output




    AngularJS,3,Automation Testing,8,Blue Prism,1,CSharp,5,Disqus,1,Excel,3,Excel Addin,1,HP ALM,5,HTML5,1,ISTQB,2,Java Script,2,Manual Testing,7,Photography,1,Quiz,2,REST API,5,Robotic Process Automation,2,RPA,2,Testing,15,UFT,8,UiPath,1,VB,5,VBScript,1,VSTO,1,Wordpress,1,
    Aneejian: HP ALM REST API - Get ALM Projects
    HP ALM REST API - Get ALM Projects
    Tutorial on how to get projects from HP ALM using REST API. Includes the browser method, VB and C# functions to get domains. Learn more @aneejian
    Loaded All Posts No posts found VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU ARCHIVE SEARCH ALL POSTS No post found which matches with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content