projects_get_list
Retrieve a list of projects from ServiceTitan, filtered by criteria such as customer ID, location, project type, status, or date ranges. Supports pagination and sorting for efficient data access.
Input Schema
Name | Required | Description | Default |
---|---|---|---|
appointmentId | No | Format - int64. Return project if it contains the specified appointment in the project's jobs | |
businessUnitIds | No | Returns projects which have at least one of the provided business units assigned | |
completedBefore | No | Format - date-time (as date-time in RFC3339). Return projects that are completed before date | |
completedOnOrAfter | No | Format - date-time (as date-time in RFC3339). Return projects that are completed on or after date | |
createdBefore | No | Format - date-time (as date-time in RFC3339). Return items created before certain date/time (in UTC) | |
createdOnOrAfter | No | Format - date-time (as date-time in RFC3339). Return items created on or after certain date/time (in UTC) | |
customerId | No | Format - int64. Filters by customer ID | |
externalDataApplicationGuid | No | Format - guid. If this guid is provided, external data corresponding to this application guid will be returned. | |
externalDataKey | No | Performs lookup by external data key, 'externalDataValues' must also be provided. | |
externalDataValues | No | Performs lookup by external data values (maximum 50), 'externalDataKey' must also be provided. | |
ids | No | Perform lookup by multiple IDs (maximum 50) | |
includeTotal | No | Whether total count should be returned | |
invoiceId | No | Format - int64. Return projects if it contains the specified invoice | |
jobId | No | Format - int64. Return project if it contains the specified job | |
locationId | No | Format - int64. Filters by location ID | |
modifiedBefore | No | Format - date-time (as date-time in RFC3339). Return projects whose last modification date is before date | |
modifiedOnOrAfter | No | Format - date-time (as date-time in RFC3339). Return projects whose last modification date is on or after date | |
page | No | Format - int32. The logical number of page to return, starting from 1 | |
pageSize | No | Format - int32. How many records to return (50 by default) | |
projectManagerIds | No | Filters by id of managers for matching project | |
projectTypeId | No | Format - int64. Return projects if it contains the specified project type | |
sort | No | Applies sorting by the specified field: "?sort=+FieldName" for ascending order, "?sort=-FieldName" for descending order. Available fields are: Id, ModifiedOn, CreatedOn, Name, TargetCompletionDate. | |
startsBefore | No | Format - date-time (as date-time in RFC3339). Return projects that start before date | |
startsOnOrAfter | No | Format - date-time (as date-time in RFC3339). Return projects that start on or after date | |
status | No | Returns projects which have one of the provided statuses. "None" could be passed as one of the values to include projects without a status in the resulting collection. | |
targetCompletionDateBefore | No | Format - date-time (as date-time in RFC3339). Return projects whose target completion date is before date | |
targetCompletionDateOnOrAfter | No | Format - date-time (as date-time in RFC3339). Return projects whose target completion date is on or after date | |
technicianId | No | Format - int64. Return project if technician is assigned to any appointments on any job in the project | |
tenant | Yes | Format - int64. Tenant ID |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"appointmentId": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int64. Return project if it contains the specified appointment in the project's jobs"
},
"businessUnitIds": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Returns projects which have at least one of the provided business units assigned "
},
"completedBefore": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects that are completed before date"
},
"completedOnOrAfter": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects that are completed on or after date"
},
"createdBefore": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return items created before certain date/time (in UTC)"
},
"createdOnOrAfter": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return items created on or after certain date/time (in UTC)"
},
"customerId": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int64. Filters by customer ID"
},
"externalDataApplicationGuid": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "uuid",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - guid. If this guid is provided, external data corresponding to\nthis application guid will be returned."
},
"externalDataKey": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Performs lookup by external data key, 'externalDataValues' must also be provided."
},
"externalDataValues": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Performs lookup by external data values (maximum 50), 'externalDataKey' must also be provided."
},
"ids": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Perform lookup by multiple IDs (maximum 50)"
},
"includeTotal": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "boolean"
}
]
},
{
"type": "null"
}
],
"description": "Whether total count should be returned"
},
"invoiceId": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int64. Return projects if it contains the specified invoice"
},
"jobId": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int64. Return project if it contains the specified job"
},
"locationId": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int64. Filters by location ID"
},
"modifiedBefore": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects whose last modification date is before date"
},
"modifiedOnOrAfter": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects whose last modification date is on or after date"
},
"page": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int32. The logical number of page to return, starting from 1"
},
"pageSize": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int32. How many records to return (50 by default)"
},
"projectManagerIds": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Filters by id of managers for matching project"
},
"projectTypeId": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int64. Return projects if it contains the specified project type"
},
"sort": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Applies sorting by the specified field:\n\"?sort=+FieldName\" for ascending order,\n\"?sort=-FieldName\" for descending order.\n\nAvailable fields are: Id, ModifiedOn, CreatedOn, Name, TargetCompletionDate."
},
"startsBefore": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects that start before date"
},
"startsOnOrAfter": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects that start on or after date"
},
"status": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Returns projects which have one of the provided statuses.\n\"None\" could be passed as one of the values to include projects without a status in the resulting collection."
},
"targetCompletionDateBefore": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects whose target completion date is before date"
},
"targetCompletionDateOnOrAfter": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"format": "date-time",
"type": "string"
}
]
},
{
"type": "null"
}
],
"description": "Format - date-time (as date-time in RFC3339). Return projects whose target completion date is on or after date"
},
"technicianId": {
"anyOf": [
{
"anyOf": [
{
"not": {}
},
{
"type": "integer"
}
]
},
{
"type": "null"
}
],
"description": "Format - int64. Return project if technician is assigned to any appointments on any job in the project"
},
"tenant": {
"description": "Format - int64. Tenant ID",
"type": "integer"
}
},
"required": [
"tenant"
],
"type": "object"
}