API Call Samples

We reserve the right to log and verify your API calls and to contact you if we detect abuse on your part. For example:
  • the requests takes too long to return
  • the requests return too much data at a time
  • The requests are too frequent
We strongly suggest using the date filter parameters to return only the data that is relevant.

Selecting a category  

Selecting a function  

HTTP GET:

https://api.aceproject.com/?fct=getprojects&guid=abda1c12-d7ed-436d-83f2-119c5d3c2a04&projectid=NULL&portfolioid=NULL&filterprojectstatusid=NULL&isgroupingprojectstatus=NULL&filterprojecttypeid=NULL&filterprojectpriorityid=NULL&filtercompletedproject=NULL&filterclientid=NULL&projecttemplate=NULL&filtercreatoruserid=NULL&filterassigneduserid=NULL&filtermarkedonly=False&filterfirstdate=NULL&filterfirstdateoperator=NULL&filterfirstdatevalue=NULL&filterseconddate=NULL&filterseconddateoperator=NULL&filterseconddatevalue=NULL&texttosearch=NULL&sortorder=NULL&useshowhide=False&assignedonly=False&forgantt=False&ispmview=NULL&onlyprojectcanaddtask=False&onlytimeapproval=False&onlyexpenseapproval=False&onlycanopenproject=False&onlyprojectmanager=False&forcombo=False&pagenumber=NULL&rowsperpage=NULL&deletedprojects=False&asynccall=False&asynccallid=NULL&exportdomainevaleur=NULL&exporttype=NULL&exportdelimiter=NULL&exportdecimalsymbol=NULL&exportlcid=0&exportonscreencolumnsonly=True&exportview=0&exportviewother=NULL&exportfieldstodisplay=NULL&exportremovehtmlonly=True&exportenablefilterxls=False&format=DS


Function Details
Name Guid Required Description
GetProjects True Retrieves list of projects.

Parameter Details
Name DataType Is Nullable Max length Domain Values Default Value Is Required
(Insert)
Is Required
(Update)
Is Required Description
Guid String False True Unique identifier for the authenticated user. The GUID has an expiry date and time which is managed automatically by the API.
Projectid String True NULL False Auto-generated unique identifier of a project.
PortfolioId Integer True NULL False Unique identifier of a Portfolio.
Filterprojectstatusid Integer True NULL True
IsGroupingProjectStatus Boolean True True or False NULL True
Filterprojecttypeid Integer True NULL False Unique identifier of a project type to filter on.
Filterprojectpriorityid Integer True NULL False Unique identifier of a project priority to filter on.
Filtercompletedproject Boolean True True or False NULL False Indicates whether to filter on project status (completed, incomplete or all)
Filterclientid Integer True NULL False Unique identifier of a project's client to filter on.
ProjectTemplate String True NULL True
Filtercreatoruserid Integer True NULL False Unique identifier of a user to filter on creators.
Filterassigneduserid Integer True NULL False Unique identifier of a user to filter on assignees.
Filtermarkedonly String False False True Filter list based on marked by the calling user.
FilterFirstDate String True NULL True
FilterFirstDateOperator Integer True NULL True
FilterFirstDateValue Date True NULL True
FilterSecondDate String True NULL True
FilterSecondDateOperator Integer True NULL True
FilterSecondDateValue Date True NULL True
Texttosearch String True NULL False Search list based on specified text
SortOrder String True NULL False Comma separated fields used for ordering a list.
Useshowhide Boolean False True or False False True Indicates whether to use the calling user's Show/Hide settings to filter and sort data and to filter returned columns.
Assignedonly Boolean False True or False False True Indicates whether to filter the list based on assigned project's only. This parameter is ignored if the calling user is not an administrator. Only assigned projects are returned for non administrators.
Forgantt Boolean False True or False False True
IsPmView Boolean True True or False NULL True
OnlyProjectCanAddTask Boolean False True or False False True
OnlyTimeApproval Boolean False True or False False True
OnlyExpenseApproval Boolean False True or False False True
OnlyCanOpenProject Boolean False True or False False True
OnlyProjectManager Boolean False True or False False True
ForCombo Boolean False True or False False False Indicates whether returns a simplified list to display drop-down list.
PageNumber Integer True NULL or greater than 0 NULL False When the page number is not NULL, the API returns only the entries of the specified page within the list. A default rows per page is used within the API to determine pages if RowsPerPage parameter is not specified.
RowsPerPage Integer True NULL or greater than 0 NULL False When the number of rows per page is NULL, the API uses the default value in the system. This parameter is used only when PageNumber has a value.
Deletedprojects Boolean False True or False False True Indicates whether to filter on deleted projects.
Asynccall Boolean False True or False False True
Asynccallid Integer True NULL True
ExportDomaineValeur String True NULL True
ExportType String True NULL True
ExportDelimiter String True NULL True
ExportDecimalSymbol String True NULL True
ExportLCID Integer True 0 True
ExportOnScreenColumnsOnly Boolean True True or False True True
ExportView Integer True 0 True
ExportViewOther Integer True NULL True
ExportFieldsToDisplay String True NULL True
ExportRemoveHTMLOnly Boolean True True or False True True
ExportEnableFilterXLS Boolean True True or False False True
Format String False RS: RecordSet
DS: DataSet
JSON: JSON
DS True Return Format

.Net Code:
Public Class Sample

    Public Sub CodeSample_getprojects()
        Dim strXML As String = String.Empty

        Dim dsOutput As DataSet = Nothing
        Dim guid As String = String.Empty
        Dim sb As New System.Text.StringBuilder
        Try
            sb = New System.Text.StringBuilder
            'Building API QueryString
            sb.Append("fct=getprojects")
            sb.Append(String.Format("&guid={0}", "db8566b9-f685-4c02-85e8-9efb12cd685d"))
            sb.Append(String.Format("&projectid={0}", "NULL"))
            sb.Append(String.Format("&portfolioid={0}", "NULL"))
            sb.Append(String.Format("&filterprojectstatusid={0}", "NULL"))
            sb.Append(String.Format("&isgroupingprojectstatus={0}", "NULL"))
            sb.Append(String.Format("&filterprojecttypeid={0}", "NULL"))
            sb.Append(String.Format("&filterprojectpriorityid={0}", "NULL"))
            sb.Append(String.Format("&filtercompletedproject={0}", "NULL"))
            sb.Append(String.Format("&filterclientid={0}", "NULL"))
            sb.Append(String.Format("&projecttemplate={0}", "NULL"))
            sb.Append(String.Format("&filtercreatoruserid={0}", "NULL"))
            sb.Append(String.Format("&filterassigneduserid={0}", "NULL"))
            sb.Append(String.Format("&filtermarkedonly={0}", "False"))
            sb.Append(String.Format("&filterfirstdate={0}", "NULL"))
            sb.Append(String.Format("&filterfirstdateoperator={0}", "NULL"))
            sb.Append(String.Format("&filterfirstdatevalue={0}", "NULL"))
            sb.Append(String.Format("&filterseconddate={0}", "NULL"))
            sb.Append(String.Format("&filterseconddateoperator={0}", "NULL"))
            sb.Append(String.Format("&filterseconddatevalue={0}", "NULL"))
            sb.Append(String.Format("&texttosearch={0}", "NULL"))
            sb.Append(String.Format("&sortorder={0}", "NULL"))
            sb.Append(String.Format("&useshowhide={0}", False))
            sb.Append(String.Format("&assignedonly={0}", False))
            sb.Append(String.Format("&forgantt={0}", False))
            sb.Append(String.Format("&ispmview={0}", "NULL"))
            sb.Append(String.Format("&onlyprojectcanaddtask={0}", False))
            sb.Append(String.Format("&onlytimeapproval={0}", False))
            sb.Append(String.Format("&onlyexpenseapproval={0}", False))
            sb.Append(String.Format("&onlycanopenproject={0}", False))
            sb.Append(String.Format("&onlyprojectmanager={0}", False))
            sb.Append(String.Format("&forcombo={0}", False))
            sb.Append(String.Format("&pagenumber={0}", "NULL"))
            sb.Append(String.Format("&rowsperpage={0}", "NULL"))
            sb.Append(String.Format("&deletedprojects={0}", False))
            sb.Append(String.Format("&asynccall={0}", False))
            sb.Append(String.Format("&asynccallid={0}", "NULL"))
            sb.Append(String.Format("&exportdomainevaleur={0}", "NULL"))
            sb.Append(String.Format("&exporttype={0}", "NULL"))
            sb.Append(String.Format("&exportdelimiter={0}", "NULL"))
            sb.Append(String.Format("&exportdecimalsymbol={0}", "NULL"))
            sb.Append(String.Format("&exportlcid={0}", 0))
            sb.Append(String.Format("&exportonscreencolumnsonly={0}", True))
            sb.Append(String.Format("&exportview={0}", 0))
            sb.Append(String.Format("&exportviewother={0}", "NULL"))
            sb.Append(String.Format("&exportfieldstodisplay={0}", "NULL"))
            sb.Append(String.Format("&exportremovehtmlonly={0}", True))
            sb.Append(String.Format("&exportenablefilterxls={0}", False))
            sb.Append(String.Format("&format={0}", "DS"))

            'Calling API
            strXML = CallHttp("https://api.aceproject.com/", sb.ToString)
            'Retreive Output structure generate by API
            dsOutput = Deserialize(Of DataSet)(strXML)
            If dsOutput IsNot Nothing AndAlso dsOutput.Tables.Count > 0 Then
                If dsOutput.Tables.Contains("dtAPIErrors") Then
                    Throw New Exception(String.Format("{0}: {1}", _
                                                      dsOutput.Tables(0).Rows(0).Item("ErrorNumber").ToString, _
                                                      dsOutput.Tables(0).Rows(0).Item("ErrorDescription").ToString))
                End If
            End If
        Catch ex As Exception
            Throw
        Finally
            If sb IsNot Nothing Then sb = Nothing
            If dsOutput IsNot Nothing Then
                dsOutput.Dispose()
                dsOutput = Nothing
            End If
        End Try
    End Sub

    Private Shared Function CallHttp( ByVal url As String, _ 
                                      ByVal params As String) As String
        Dim loHttp As System.Net.HttpWebRequest
        loHttp = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
        loHttp.Method = "POST"
        Dim requestWriter As System.IO.StreamWriter = New System.IO.StreamWriter(loHttp.GetRequestStream())

        If Not String.IsNullOrEmpty(params) Then
            requestWriter.Write(params)
        End If
        requestWriter.Close()
        loHttp.ContentType = "application/x-www-form-urlencoded"
        loHttp.Headers.Set("Pragma", "no-cache")
        loHttp.AllowAutoRedirect = True
        loHttp.KeepAlive = True
        loHttp.Timeout = 30 * 1000

        Dim loWebResponse As System.Net.HttpWebResponse = CType(loHttp.GetResponse(), System.Net.HttpWebResponse)
        Dim enc As Encoding = System.Text.Encoding.UTF8
        Dim loResponseStream As System.IO.StreamReader = New System.IO.StreamReader(loWebResponse.GetResponseStream(), enc)
        Dim lcHtml As String = loResponseStream.ReadToEnd()

        loWebResponse.Close()
        loResponseStream.Close()

        Return lcHtml
    End Function


    Private Shared Function Deserialize(Of T)( ByVal strXML As String) As T
        Dim objet As T = Nothing
        Dim objType As Type = GetType(T)
        Try
            If Not String.IsNullOrEmpty(strXML) Then
                Dim objSerializer As New System.Xml.Serialization.XmlSerializer(objType)
                Dim objText As New System.Text.StringBuilder()
                Dim objXmlReader As New System.IO.StringReader(strXML)
                objet = DirectCast(objSerializer.Deserialize(objXmlReader), T)
                objXmlReader.Close()
            End If
            Return objet
        Catch ex As Exception
            Throw
        Finally
            If objet IsNot Nothing Then objet = Nothing
        End Try
    End Function

End Class