Filters
You can apply filters to our List API endpoints (e.g. GET /projects
) to return a subset of results.
Supported Operators
You can apply one or more filters in the request body with the following operators:
Operator | Date | Number | String | Notes | Example |
---|---|---|---|---|---|
= | ✅ | ✅ | ✅ | — | { |
!= | ✅ | ✅ | ✅ | — | { |
> | ✅ | ✅ | ✅ | — | { |
>= | ✅ | ✅ | ✅ | — | { |
< | ✅ | ✅ | ✅ | — | { |
<= | ✅ | ✅ | ✅ | — | { |
LIKE | ➖ | ✅ | ✅ | Case-sensitive. Use % for wildcard search. | { |
NOT LIKE | ➖ | ✅ | ✅ | Case-sensitive. Use % for wildcard search. | { |
ILIKE | ➖ | ✅ | ✅ | Not Case-sensitive. Use % for wildcard search. | { |
NOT ILIKE | ➖ | ✅ | ✅ | Not Case-sensitive. Use % for wildcard search. | { |
IN | ✅ | ✅ | ✅ | value expects a list of items. | { |
NOT IN | ✅ | ✅ | ✅ | value expects a list of items. | { |
BETWEEN | ✅ | ✅ | ✅ | value expects exactly two items. | { |
NOT BETWEEN | ✅ | ✅ | ✅ | value expects exactly two items. | { |
Note: we do not yet support filters for all List API endpoints. If you would like a filter that is not yet supported, feel free to let us know at api-support@agaveapi.com and we should be able to quickly add it. For current coverage, see the Coverage section below.
Some HTTP clients, such as Axios (in JavaScript), will not send a request body for GET
request. In such cases, you can change the HTTP method to POST
to force your client to include the request body,
and then include a new request body parameter of "_method": "GET"
to ask Agave's servers to treat the request as GET
.
Example:
curl https://api.agaveapi.com/projects \
--request POST \
--header 'API-Version: 2021-11-21' \
--header 'Client-Id: your_client_id' \
--header 'Client-Secret: your_client_secret' \
--header 'Account-Token: account_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"_method": "GET",
"filters": [
{
"field": "status",
"operator": "=",
"value": "Active"
}
]
}'
Examples
Filter by Value
The below example filters a list of Projects to ones that have a status of "Active":
curl --request GET https://api.agaveapi.com/projects \
--header 'API-Version: 2021-11-21' \
--header 'Client-Id: your_client_id' \
--header 'Client-Secret: your_client_secret' \
--header 'Account-Token: account_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": [
{
"field": "status",
"operator": "=",
"value": "Active"
}
]
}'
Filter by Timeframe
The below example filters a list of Transmittals to those sent between 01-01-2022 and 01-31-2022:
curl --request GET https://api.agaveapi.com/transmittals \
--header 'API-Version: 2021-11-21' \
--header 'Client-Id: your_client_id' \
--header 'Client-Secret: your_client_secret' \
--header 'Account-Token: account_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": [
{
"field": "sent_date",
"operator": ">=",
"value": "2022-01-01"
},
{
"field": "sent_date",
"operator": "<",
"value": "2022-02-01"
}
]
}'
Filter by Last Updated Time
The below example filters a list of Customers to those that have been updated since 2023-05-01:
curl --request GET https://api.agaveapi.com/customers \
--header 'API-Version: 2021-11-21' \
--header 'Client-Id: your_client_id' \
--header 'Client-Secret: your_client_secret' \
--header 'Account-Token: account_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": [
{
"field": "source_update_time",
"operator": ">=",
"value": "2025-05-01"
}
]
}'
Filter by State
The below example filters a list of Vendors in Viewpoint Vista where the source_data.State
field is either 'OR' or 'CA':
curl --request GET https://api.agaveapi.com/vendors \
--header 'API-Version: 2021-11-21' \
--header 'Client-Id: your_client_id' \
--header 'Client-Secret: your_client_secret' \
--header 'Account-Token: account_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": [
{
"field": "source_data.State",
"operator": "IN",
"value": ["OR", "CA"]
}
]
}'
Coverage
Currently, we support this filter pattern for the following source systems and endpoints. Let us know if you want us to expand the support for the endpoints you need.
- Acumatica: all endpoints
- CMiC:
GET /assets
GET /projects
GET /subcontracts
GET /purchase-orders
- Foundation: all endpoints
- Jonas Premier: all endpoints
- Housecall Pro: all endpoints
- Procore:
GET /ap-invoices
GET /projects
GET /vendors
GET /wbs
- QuickBooks Online: all endpoints
- QuickBooks Desktop:
- See detailed coverage here
- Sage Intacct: all endpoints
- Sage 100 Contractor: all endpoints
- Sage 300 CRE: all endpoints
- ServiceTitan: all endpoints
- Viewpoint Spectrum: all endpoints
- Viewpoint Vista: all endpoints