Filter Query String


GET


The filter query string is specified in the following format:
Property eq/ne/gt/ge/lt/le Value [and/or Property eq/ne/gt/ge/lt/le Value] ...


The following are the Properties currently supported:
*Integrate (Clients, Employees, ExpenseCategories, ExpenseEntries, Projects, Tasks, Teams, TimeEntries, and Invoices)
Don't include the root INT element.
If you wish to check for the presence of a node that's deeper, you can include a forward slash (/) between the node names (e.g. MainNode/ChildNode)
To filter records based on a node's attribute value, you would format the Value in the following manner: MainNode/@AttributeName=ValueToCheckFor

*Status (Projects)
API versions 1 through 6: Possible values are: E (estimate), Q (quotation), A (active), R (rejected), T (terminated), or F (finished)
API version 7: Status (integer - Possible values are: 0 (budget), 1 (active), or 2 (completed))

*RSTask (Tasks)
Possible values are: T (true) or F (false)

*Created (Assignments, Clients, Employees, ExpenseCategories, ExpenseEntries, Projects, Tasks, Teams, TimeEntries, and Invoices)
A date/time value in the format: yyyy-MM-ddTHH:mm:ss

*Modified (Assignments, Clients, Employees, ExpenseCategories, ExpenseEntries, Projects, Tasks, Teams, TimeEntries, and Invoices)
A date/time value in the format: yyyy-MM-ddTHH:mm:ss



The Property and Value are separated by one of the following logical operators:
• eq (equals)
• ne (not equal)
• gt (greater than)
• ge (greater than or equal to)
• lt (less than)
• le (less than or equal to)

The Value can be optionally surrounded by single quotes (') which is needed if the value you're filtering on contains a space. If there is a need to include a single quote in the Value, it can be escaped by adding a second single quote ('').

Optionally, multiple Property/Value pairs can be specified by including an 'and' or 'or' logical operator between them

The following is an example of requesting a list of Projects with a Status of A (Active) - for API version 6
GET Projects/?version=5&$filter=Status eq A

The following is an example of requesting a list of Projects with a Status of E (Estimate) or a Status of A (Active) - for API version 6
GET Projects/?version=5&$filter=Status eq E or Status eq A

The following is an example of requesting a list of Projects that don't have a Status of A (Active) - for API version 6
GET Projects/?version=5&$filter=Status ne A

The following is an example of requesting a list of Projects that have an Integrate node called TestNode
GET Projects/?version=5&$filter=Integrate eq TestNode

The following is an example of requesting a list of Projects that have an Integrate node called TestNode with an attribute name called LinkID and value of 'B691F'
GET Projects/?version=5&$filter=Integrate eq TestNode/@LinkID='B691F'

The following is an example of requesting a list of projects that have been modified in the month of November 2016
GET Projects/?version=5&$filter=Modified ge 2016-11-01T00:00:00 and Modified le 2016-11-30T23:59:59

Note: In the examples above, the query string is not URI Encoded simply for readability. The filter query string needs to be URI Encoded.


Security Check:


Example XML request:
N/A

Example JSON request:
N/A

Example XML response:
N/A

Example JSON response:
N/A