Query Projects
curl --request POST \
--url https://api.virtuoussoftware.com/api/Project/Query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"groups": [
{
"conditions": [
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
},
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
}
]
},
{
"conditions": [
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
},
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
}
]
}
],
"sortBy": "<string>",
"descending": "<boolean>"
}
'{
"list": [
{
"id": "<integer>",
"name": "<string>",
"projectCode": "<string>",
"externalAccountingCode": "<string>",
"onlineDisplayName": "<string>",
"description": "<string>",
"photoUrl": "<string>",
"parentId": "<integer>",
"parentName": "<string>",
"isSubProject": "<boolean>",
"inventoryStatus": "<string>",
"type": "<string>",
"location": "<string>",
"isRestrictedToGiftSpecifications": "<boolean>",
"isLimitedToFinancialNeed": "<boolean>",
"isPublic": "<boolean>",
"isActive": "<boolean>",
"isAvailableOnline": "<boolean>",
"isTaxDeductible": "<boolean>",
"treatAsAccountsPayable": "<boolean>",
"beginningBalance": "<double>",
"currentBalance": "<double>",
"financialNeedType": "<string>",
"financialNeedFrequency": "<string>",
"financialNeedAmount": "<double>",
"startDate": "<dateTime>",
"endDate": "<dateTime>",
"durationType": "<string>",
"lifeToDateGiving": "<double>",
"lifeToDateGiftCount": "<integer>",
"lifeToDateGiversCount": "<integer>",
"lifeToDateExpenseTotal": "<double>",
"calendarYearToDateGiving": "<double>",
"calendarYearToDateGiftCount": "<integer>",
"calendarYearToDateGiversCount": "<integer>",
"calendarYearToDateExpenseTotal": "<double>",
"createDateTimeUtc": "<dateTime>",
"createdByUser": "<string>",
"modifiedDateTimeUtc": "<dateTime>",
"modifiedByUser": "<string>",
"giftSpecifications": [
{
"amount": "<double>",
"frequency": "<string>"
},
{
"amount": "<double>",
"frequency": "<string>"
}
],
"customFields": "<object>"
},
{
"id": "<integer>",
"name": "<string>",
"projectCode": "<string>",
"externalAccountingCode": "<string>",
"onlineDisplayName": "<string>",
"description": "<string>",
"photoUrl": "<string>",
"parentId": "<integer>",
"parentName": "<string>",
"isSubProject": "<boolean>",
"inventoryStatus": "<string>",
"type": "<string>",
"location": "<string>",
"isRestrictedToGiftSpecifications": "<boolean>",
"isLimitedToFinancialNeed": "<boolean>",
"isPublic": "<boolean>",
"isActive": "<boolean>",
"isAvailableOnline": "<boolean>",
"isTaxDeductible": "<boolean>",
"treatAsAccountsPayable": "<boolean>",
"beginningBalance": "<double>",
"currentBalance": "<double>",
"financialNeedType": "<string>",
"financialNeedFrequency": "<string>",
"financialNeedAmount": "<double>",
"startDate": "<dateTime>",
"endDate": "<dateTime>",
"durationType": "<string>",
"lifeToDateGiving": "<double>",
"lifeToDateGiftCount": "<integer>",
"lifeToDateGiversCount": "<integer>",
"lifeToDateExpenseTotal": "<double>",
"calendarYearToDateGiving": "<double>",
"calendarYearToDateGiftCount": "<integer>",
"calendarYearToDateGiversCount": "<integer>",
"calendarYearToDateExpenseTotal": "<double>",
"createDateTimeUtc": "<dateTime>",
"createdByUser": "<string>",
"modifiedDateTimeUtc": "<dateTime>",
"modifiedByUser": "<string>",
"giftSpecifications": [
{
"amount": "<double>",
"frequency": "<string>"
},
{
"amount": "<double>",
"frequency": "<string>"
}
],
"customFields": "<object>"
}
],
"total": "<integer>"
}Project Queries
Query Projects
To see which options can be sent, use the {M:Virtuous.WebApi.Controllers.ProjectController.QueryOptions} endpoint.
If you're going to consistently query for updated projects or new projects, don't. Use a webhook instead.
If requests are timing out, you may be asking for too many items at once. The max take is 1,000.
POST
/
api
/
Project
/
Query
Query Projects
curl --request POST \
--url https://api.virtuoussoftware.com/api/Project/Query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"groups": [
{
"conditions": [
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
},
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
}
]
},
{
"conditions": [
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
},
{
"parameter": "<string>",
"operator": "<string>",
"value": "<string>",
"secondaryValue": "<string>",
"values": [
"<string>",
"<string>"
]
}
]
}
],
"sortBy": "<string>",
"descending": "<boolean>"
}
'{
"list": [
{
"id": "<integer>",
"name": "<string>",
"projectCode": "<string>",
"externalAccountingCode": "<string>",
"onlineDisplayName": "<string>",
"description": "<string>",
"photoUrl": "<string>",
"parentId": "<integer>",
"parentName": "<string>",
"isSubProject": "<boolean>",
"inventoryStatus": "<string>",
"type": "<string>",
"location": "<string>",
"isRestrictedToGiftSpecifications": "<boolean>",
"isLimitedToFinancialNeed": "<boolean>",
"isPublic": "<boolean>",
"isActive": "<boolean>",
"isAvailableOnline": "<boolean>",
"isTaxDeductible": "<boolean>",
"treatAsAccountsPayable": "<boolean>",
"beginningBalance": "<double>",
"currentBalance": "<double>",
"financialNeedType": "<string>",
"financialNeedFrequency": "<string>",
"financialNeedAmount": "<double>",
"startDate": "<dateTime>",
"endDate": "<dateTime>",
"durationType": "<string>",
"lifeToDateGiving": "<double>",
"lifeToDateGiftCount": "<integer>",
"lifeToDateGiversCount": "<integer>",
"lifeToDateExpenseTotal": "<double>",
"calendarYearToDateGiving": "<double>",
"calendarYearToDateGiftCount": "<integer>",
"calendarYearToDateGiversCount": "<integer>",
"calendarYearToDateExpenseTotal": "<double>",
"createDateTimeUtc": "<dateTime>",
"createdByUser": "<string>",
"modifiedDateTimeUtc": "<dateTime>",
"modifiedByUser": "<string>",
"giftSpecifications": [
{
"amount": "<double>",
"frequency": "<string>"
},
{
"amount": "<double>",
"frequency": "<string>"
}
],
"customFields": "<object>"
},
{
"id": "<integer>",
"name": "<string>",
"projectCode": "<string>",
"externalAccountingCode": "<string>",
"onlineDisplayName": "<string>",
"description": "<string>",
"photoUrl": "<string>",
"parentId": "<integer>",
"parentName": "<string>",
"isSubProject": "<boolean>",
"inventoryStatus": "<string>",
"type": "<string>",
"location": "<string>",
"isRestrictedToGiftSpecifications": "<boolean>",
"isLimitedToFinancialNeed": "<boolean>",
"isPublic": "<boolean>",
"isActive": "<boolean>",
"isAvailableOnline": "<boolean>",
"isTaxDeductible": "<boolean>",
"treatAsAccountsPayable": "<boolean>",
"beginningBalance": "<double>",
"currentBalance": "<double>",
"financialNeedType": "<string>",
"financialNeedFrequency": "<string>",
"financialNeedAmount": "<double>",
"startDate": "<dateTime>",
"endDate": "<dateTime>",
"durationType": "<string>",
"lifeToDateGiving": "<double>",
"lifeToDateGiftCount": "<integer>",
"lifeToDateGiversCount": "<integer>",
"lifeToDateExpenseTotal": "<double>",
"calendarYearToDateGiving": "<double>",
"calendarYearToDateGiftCount": "<integer>",
"calendarYearToDateGiversCount": "<integer>",
"calendarYearToDateExpenseTotal": "<double>",
"createDateTimeUtc": "<dateTime>",
"createdByUser": "<string>",
"modifiedDateTimeUtc": "<dateTime>",
"modifiedByUser": "<string>",
"giftSpecifications": [
{
"amount": "<double>",
"frequency": "<string>"
},
{
"amount": "<double>",
"frequency": "<string>"
}
],
"customFields": "<object>"
}
],
"total": "<integer>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The number of records to skip. Default = 0.
The number of records to take. Default = 10. Max is 1000.
Last modified on June 5, 2026
Was this page helpful?
⌘I