This article covers how Uptick API versioning and deprecation work, how to find endpoints and fields, and the query parameters for including related data, requesting specific fields, paginating and filtering. To stay up to date on API changes, subscribe to API change notifications in the API and integrations space of the Uptick community hub.
Versioning
Versioning applies across the whole API, rather than on a per-endpoint basis. Access is via <customer>.onuptick.com/api/v<version>/<endpoint>/.
Scheme
The versioning scheme is as follows (note that this is NOT semver):
MAJOR: Corresponds to spec being implemented.
MINOR: Corresponds to a backwards-incompatible change that's been made.
PATCH: Corresponds to minor, backwards-compatible, tweaks.
Uptick offers one MAJOR version, v2, which implements REST, extended with the JsonAPI spec.
When the MINOR version is not specified (eg. /api/v2/<endpoint>/), the latest MINOR version is used for the given MAJOR version. Similarly, when the PATCH version is not specified, the latest PATCH for the given MINOR.MAJOR combination is used. Always specify the MINOR version in your calls (eg. /api/v2.x/<endpoint>/) to avoid surprises when things change.
Deprecation cycle
There is no explicit lifetime for each MINOR version, but roughly three MINOR versions coexist at any time, so when a new one is introduced, expect the oldest one to be on its way out.
You can review version info at /api/version/. The keys latest, deprecated, imminent_removal and removed show well ahead of time whether you need to start updating. The changes in each version are listed in Uptick API - Patch notes.
Endpoints
Endpoints are self-descriptive; they are their own documentation. If you view the API from your browser, it renders in a human-readable way.
Navigate to /api/v2.16/ (or the latest MINOR version listed at /api/version/) to see a list of endpoints. Follow any of these to see available fields. Every endpoint also offers an OPTIONS method, which lists additional metadata for each field.
Query parameters
Include related data:
?include=<fieldname of relationship>pulls through related table data, across multiple levels. For example,/api/v2.x/tasks/?include=property.tags.Sparse fields: endpoints return all available fields by default. Use
?fields[<ResourceType>]to request only the fields you need. For example,/api/v2.x/properties/?fields[Property]=name,ref,created. These also work on included data. For example,/api/v2.x/properties/?include=client&fields[Property]=ref&fields[Client]=name.Pagination: two modes are available.
Limit-offset (default):
?page[limit]=50&page[offset]=100.Cursor:
?page[cursor]&page[size]=50. Include?page[count]as well if you want a count returned. Use this mode for data syncs.
Filtering: most fields can be filtered on. The
updatedsincefilter returns only records changed since a given time, for syncing lists of data. For example,/api/v2.x/tasksessions/?updatedsince=2019-10-28T19:53:25.906000Z.
Fair use
Every integration must stay within the usage limits and use the approved access methods in the Uptick API - Fair Use Policy, which also lists the recommended practices for keeping integrations efficient.
