Skip to main content

Uptick API - Patch notes

Version-by-version changes to the Uptick API, including removed and renamed fields, new endpoints and deprecations for each MAJOR.MINOR version from v2.0 to v2.16.

Written by Teresa Bui

This article lists the changes in each version of the Uptick API, including removed and renamed fields, new endpoints, deprecations and removal dates. Use it to check what to update before moving an integration to a newer MINOR version. For how versioning works, see the Uptick API overview.


Patch notes

v2.16 (Added Aug, 2026)

  • Removed the following entries from the feature_flags entry returned by /api/v2.x/settings/:

    • LEGACY_MOBILE_WEB_PORTAL. Support for legacy mobile web portals is removed.

    • LEGACY_MOBILE_WEB_PORTAL_VIEW_PROPERTY. Support for legacy mobile web portals is removed.

    • STRICT_TASK_STATUSES. Interrogate feature_flags.strict_task_statuses instead.

    • ASSET_COMPONENTS. Interrogate feature_flags.asset_components instead.

    • ALLOWANCES_ENABLED. Interrogate settings.ALLOWANCES_ENABLED instead.

    • forms_enable_joyfill_forms always returned true, and is now removed.

    • telemetry_enabled always returned true and is now removed.

    • prompts_photo_prompt_type. The photo prompt type is now generally available, so its behaviour is always enabled and the flag is no longer returned.

  • Removed AccreditationRequirement.promptquestion field (across all api versions; low usage).

  • Deprecated management of the DefectQuoteLineItem resource (create/update/delete) via /api/v2.x/defectquotelineitems/ CRUD; this will be removed in an upcoming release. Use /api/v2.x/defectquotes/{id}/synchronise_lineitems/ instead.

  • Deprecated the /api/v2.x/defectquotes/{id}/order_lineitems/ endpoint; this will be removed in an upcoming release. Pass the ordering index into /api/v2.x/defectquotes/{id}/synchronise_lineitems/ instead.

  • Removed Branch.fax. This is no longer supported.

  • Removed TaskSession.is_submitted. Interrogate submitted_at instead.

  • Removed TaskSession.submitted. Interrogate submitted_at instead.

  • Removed TaskSession.is_approved. Interrogate approved_at instead.

  • Removed DefectQuoteLineItem.product_type. This is no longer supported.

  • Renamed Asset.system field to Asset.parent_asset, and AssetType.system field to AssetType.parent_assettype. The ?system= filter and autocomplete parameter remain supported until v2.15 is dropped.

  • Renamed Asset.components field to Asset.child_assets, and AssetType.components field to AssetType.child_assettypes.

  • Removed PromptAnswerGroup.label. Interrogate key instead.

  • Removed ServiceTask.due. This has moved to MajorService.due.

  • Removed ServiceTask.is_majorservice. Use the ServiceTask.majorservice relationship instead.

  • Removed ServiceTask.from_stock. Interrogate ServiceTask.purchaseorderlineitem instead (null means the line came from stock).

  • Removed handling of application/json content type on standard CRUD endpoints. It was never officially supported, and will now error. Use application/vnd.api+json instead.

  • Removed Property.access_signaturereq. Refer to Property.client_signature_required instead.

v2.15 (Added Jan, 2026)

  • Removed Client.current_business_hours. This is no longer supported.

  • Removed Branch.current_business_hours. This is no longer supported.

  • Removed BillingCard.postal_fax. This is no longer supported.

  • Removed ServiceTask.total. This is no longer supported.

  • Removed ServiceTask.gst. This is no longer supported.

  • Renamed standard field on Asset and AssetType resources to standard_maintenance.

  • Removed Asset.get_standard_maintenance, Asset.get_standard_performance, Asset.get_standard_installation computed fields. These can be computed by coalescing the respective fields from the Asset and AssetType resources.

  • Removed ClientGroup.partner_uid. This is no longer supported.

  • Removed Invoice.status options "SUBMITTED" and "PARTPAID". The former was a duplicate of "AUTHORISED"; the latter was never properly implemented.

  • Renamed Property.building_stories_above_ground to Property.building_storeys_above_ground.

  • Renamed Property.building_stories_below_ground to Property.building_storeys_below_ground.

  • Renamed ServiceQuote.property_building_stories_above_ground to ServiceQuote.property_building_storeys_above_ground.

  • Renamed ServiceQuote.property_building_stories_below_ground to ServiceQuote.property_building_storeys_below_ground.

  • Substantial changes to the prompts api:

    • Added new PromptSection resource, for grouping PromptQuestions together.

    • Added new PromptQuestion.section field, for associating PromptQuestions with PromptSections.

    • Removed the ability to directly update PromptQuestion and PromptQuestionRuleSets. These are now updated via update_promptset endpoint on the promptset.

    • The PromptQuestion endpoint no longer includes HEADERs.

    • Removed the PromptQuestion.promptset field. This relationship is now via PromptSection.

    • Added a new PromptAnswerGroup resource, for grouping answers that belong to the same PromptSection.

    • Removed PromptAnswer.servicetask field. The service task can be inferred via the PromptAnswerGroup relationship PromptAnswer.answergroup.servicetask.

    • Prompt sections configured with tabular row types support multiple answers to the same questions via answer groups.

  • The following address fields are structured json blobs rather than raw strings, following the same structure as Property.address:

    • ServiceQuote.property_address

    • BillingCard.postal_address

    • BillingCard.site_address

    • Supplier.accounts_address

    • Supplier.purchasing_address

  • PATCH/POST calls using contenttype application/json return 200/201 respectively, instead of 303 redirects. Please note that application/json is not officially supported and will likely be removed in a future release.

  • Added new Action.type value: promptset.

  • Removed write access to PromptAnswer (post-publish change, effective Apr2026). Use PATCH /api/v2.15/prompts/servicetask//edit/ or /api/v2.15/prompts/task//edit/ instead.

  • Removed write access to PromptAnswerGroup (post-publish change, effective Apr2026). This is no longer supported.

v2.14 (Added June, 2025)

  • Removed Task.source and Task.source_content_type fields.
    Added Task.source_defect_quote, Task.source_service_quote and Task.source_task in their stead.

  • Renamed /api/v2.x/chat-messages/ to /api/v2.x/chatmessages/.
    Both endpoints remain accessible via both old and new API versions until support for v2.13 is dropped.

  • Removed ChatMessage.data_links computed field. This is no longer supported.

  • Added timelineevents/create_comment/ endpoint for creating comment-type events. Attempting to create comment-type events via standard POST returns an error.

  • Added new required ServiceQuoteProductLineItem.taxcode field.

  • Added new ServiceQuoteProductLineItem.taxrate field, for tracking the tax rate as a decimal. Inferred from taxcode if not supplied.

  • Added new required ServiceQuoteServiceLineItem.taxcode field.

  • Added new ServiceQuoteServiceLineItem.taxrate field, for tracking the tax rate as a decimal. Inferred from taxcode if not supplied.

  • The address field on the Property resource is a flat structured json blob as opposed to a foreignkey to an Address resource. The available values are country, country_name, display, streetline, city, state, postal_code and place_id.
    Most notably, timezone and coord_lat/coord_lng are no longer stored here.

  • Added new Property.coords point field, for storing the coordinates which previously lived under Property.address.coord_lat/coord_lng.

  • Added new Property.timezone field, for storing the timezone which previously lived under Property.address.timezone.

  • Removed the Address resource and /api/v2.x/addresses/ endpoint.

  • The attributes field is not present in a response when an api request only asks for relationship fields.

  • Removed PropertyContact.primary_number field. This was a legacy duplicate of PropertyContact.phone_bh.

  • Replaced /api/v2.x/remarks/add with /api/v2.x/remarks/add_remark. It is functionally the same but accepts a flat JSON body instead of a JSONAPI body.

v2.13 (Published Oct, 2024, deprecated in Aug, 2026)

  • api/v2.x/jobs/ is renamed to api/v2.x/projects, across all api versions. This change did not go through a deprecation cycle, as it was not used by any customers.

  • product, description and unit_price are removed from lineitems in the api/v2.x/purchaseorders/create_docket endpoint.

  • purchaseorderlineitem_id is required on each lineitem for the api/v2.x/purchaseorders/create_docket endpoint.

  • purchaseorderlineitem_id is required on each lineitem for the api/v2.x/purchaseorders/create_bill endpoint.

  • For the InvoiceLineItem, CreditNoteLineItem, PurchaseOrderLineItem and PurchaseOrderBillLineItem resources:

    • Renamed tax_rate to taxcode and made it required. The old name remains available until support for v2.12 is dropped.

    • Added new taxrate field, for tracking the tax rate as a decimal. Inferred from taxcode if not supplied.

  • For the DefectQuoteLineItem resource:

    • Added new required taxcode field.

    • Added new taxrate field, for tracking the tax rate as a decimal. Inferred from taxcode if not supplied.

  • Renamed the DefectQuote.gst field to tax. The old name remains accessible until support for v2.12 is dropped.

v2.12 (Published Feb, 2024, deprecated in Aug, 2026)

  • Added cursor-based pagination, which can be used as a performant alternative to limit-offset pagination when needing to iterate through a full table of records. Enable by including ?page[cursor]&page[size]=X in your query. Retrieve a count of objects by including ?page[count] in your query. Page count is disabled by default.

  • Removed RemarkType.standard field. This was an underused freetext field, that was preventing us from introducing a RemarkType.standard ForeignKey in future. The key remains in the response until v2.11 is dropped, however it only returns emptystring.

  • The ?active filter under the /api/v2.x/remarks/ endpoint is deprecated. Use ?is_active instead. The former will be removed once v2.11 is dropped.

  • Removed Client.primary_contact field, flattened ContactDetails fields onto Client model itself.

  • Removed ContactDetails resource. The /api/v2.x/contactdetails/ endpoint will be removed once v2.11 is dropped.

  • Renamed PropertyContact.active to PropertyContact.is_active. The old name remains accessible until support for v2.11 is dropped.

  • Renamed the PropertyContact.active filter to is_active. The old filter remains accessible until support for v2.11 is dropped.

v2.11 (Removed Jan 30, 2026)

  • RemarkType, Remark and RemarkEvent resources moved namespace from inspections to remarks. This affects scoping on associated contenttypes, as well as the reinstate_remarks permission. The old inspections scope continues being returned for versions prior to 2.11.

  • Removed automatic lineitem generation when creating a new PurchaseOrderBill resource using the /api/v2.x/purchaseorderbills/ endpoint.

  • Added the following read-only fields to the TaskSession resource: submitted_at, submitted_by, approved_by, approved_at. The previous is_approved and submitted fields are deprecated but continue to work until removed when v2.10 is dropped.

  • Added a readonly status field to the TaskSession resource, which is either DRAFT, SUBMITTED, APPROVED or TRASHED.

  • Renamed /api/v2.x/default-technicians/ to /api/v2.x/defaulttechnicians/. Both endpoints remain accessible via both old and new API versions until support for v2.10 is dropped.

  • Removed the /api/v2.x/payroll/ export in favour of /api/v2.x/tasksessions/ as this endpoint provides the same functionality.

v2.10 (Removed Jan 30, 2026)

  • Appointments endpoint, api/v2.x/appointments/, returns cancelled appointments too.

  • Extra Fields with a widget type of date are required to be in ISO format (yyyy-MM-dd). For versions prior to 2.10 dd/MM/yyyy formatted extra date fields are converted to yyyy-MM-dd on POST/PATCH and reconverted to dd/MM/yyyy on GET.

v2.9 (Removed Dec 21, 2023)

  • ServiceTasks created via the api/v2.x/servicetasks/ endpoint are expected to have routineserviceleveltype provided for service work. For versions prior to 2.9, this field is automatically populated using info from ServiceTask.routine if left blank.

  • Replaced the remark field on the PromptAnswer resource with an M2M, remarks.

  • Added endpoint /api/v2.x/promptsets/ for new PromptSet resource.

  • Added endpoint /api/v2.x/promptquestionrules/ for new PromptQuestionRule resource.

  • Removed assettype field from PromptQuestion resource. You can look it up via promptset.assettypes.

  • Removed routineservicetype field from PromptQuestion resource. You can look it up via promptset.routineservicetypes.

  • Renamed PromptQuestion.routineserviceleveltypes to PromptQuestion.limit_to_routineserviceleveltypes to better communicate what the field is capturing.

  • Updated the set of Asset icon names. You can view the new names by performing an OPTIONS call against /api/v2.x/assettypes/ (note that making this call against older API versions does NOT return the original icon names).

  • Document download URLs are not directly available. The /api/v2.x/{app}/documents/{id}/documents url field points to /api/v2.x/documents/{uuid}/download. Following this url redirects to an AWS Signed URL with a 60 second expiry.

v2.8 (Removed Dec 21, 2023)

  • Expanded PromptQuestion.type choices from 'A', 'R', 'T', 'I', 'D' to 'ASSERTION', 'REMARK', 'TEXT', 'INTEGER, 'DECIMAL', respectively.

  • Renamed label to help_text and heading to label on PromptQuestion resource.

  • Abstracted a portion of the path prefix out from the document upload interface. The interface w.r.t retrieving data (using /v2/uploads/ endpoint) otherwise remains unchanged. Please ensure that you're using root as the base path for rendering folders, and not the prefix from the upload config.

v2.7 (Removed Dec 21, 2023)

  • Removed the access_policecheckreq and access_childrencheckreq fields on the Property resource. This functionality is accessible through the Accreditations module; specifically the AccreditationRequirement resource at /api/v2.x/accreditationrequirements/.

  • Expensive relations (M2Ms & Reverse ForeignKeys) are not returned by default when hitting a naked endpoint. They must be requested explicitly with the fields[] query parameter.

  • Renamed Contact to PropertyContact and flattened the ContactDetails resource located under PropertyContact.contact onto the PropertyContact resource itself.

  • Introduced a csv download mechanism, which is much more performant, faster, and puts less strain on your server. To use it, instead of tacking .csv onto the end of your api call, append generate_csv/ instead. For example: https://yourserver.onuptick.com/api/v2/properties/generate_csv/. This returns a 'PENDING' status when first hit. Refresh the page after a short wait to receive your csv download link. The .csv approach is not available, across all API versions.

v2.6 (Removed Dec 21, 2023)

  • Added a building_classes choice field to the Property resource. This replaces the building_class and building_type fields, which remain accessible until v2.5 is dropped.

  • Added bsecure_resolved_guid (actual guid) and bsecure_latest_sticker_guid (guid of most recently attached sticker; gets mapped to actual guid) fields to the Property and Asset resources, to be used in place of bsecure_guid and bsecure_real_guid fields. If you've been using these old fields, apply the following mapping. For the Property resource bsecure_guid is the same as bsecure_resolved_guid; for the Asset resource, bsecure_guid is the same as bsecure_latest_sticker_guid and bsecure_real_guid is the same as bsecure_resolved_guid. The old fields remain accessible via both old and new API versions until support for v2.5 is dropped.

  • Removed property relationship from ServiceTask resource. Not accessible via previous API versions either, as it was never used.

  • /api/v2.x/pushnotificationtokens/register/ requires platform to be provided. Must be one of APNS|GCM.

  • A quantity of 0 passed to the /api/v2.x/servicetasks/ endpoint remains as 0, rather than getting automatically converted to 1.

  • Renamed /api/v2.x/form-responses/ to /api/v2.x/dynamicformresponses/. Both endpoints remain accessible via both old and new API versions until support for v2.5 is dropped.

  • Renamed /api/v2.x/dynamicform_templates/ to /api/v2.x/dynamicformtemplates/. Both endpoints remain accessible via both old and new API versions until support for v2.5 is dropped.

v2.5 (Removed Dec 21, 2023)

  • Asset.floorplan_locations became Asset.floorplan_location, as the relationship is one-to-one. Both usages remain accessible until support for v2.4 is dropped.

v2.4 (Removed Dec 21, 2023)

  • The following resources were renamed:

    • InspectionItem -> Asset

    • InspectionItemType -> AssetType

    • InspectionItemTag -> AssetTag

    • InspectionItemTypeTag -> AssetTypeTag

    • InspectionItemTypeVariant -> AssetTypeVariant

  • Renamed all occurences of fields named inspectionitem and inspection_item with asset. This change spans multiple endpoints, and affects the following resources: Asset, AssetType, AssetTag, AssetTypeTag, AssetTypeVariant, PlanLocation, Remark, SuggestedProduct, DefectQuoteLineItem, SignoffItem, ServiceTask, AssetPreset, RemarkType, RoutineServiceType, ServiceRecord, Rectification.

  • Changed Task.status from a CharField to a ForeignKey relationship on resource TaskStatus. What was previously stored in Task.status can be found under Task.status.id. Affects all endpoints that reference the Task resource.

  • Added endpoint /api/v2.x/taskstatuses/, for viewing TaskStatus resources.

  • All datetimes are returned in the timezone of the user performing the request. For example, 2020-01-20T00:32:06.912780Z, for a user with a Melbourne timezone, returns as 2020-01-20T11:32:06.912780+11:00. Clients must ensure they understand the +XX:XX timezone offset suffix, rather than just the Z UTC suffix, or always assuming UTC.

v2.3 (Removed Oct 21, 2021)

  • Renamed a number of endpoints. Both endpoint names remain accessible via both old and new API versions until support for v2.2 is dropped.

    • /api/v2.x/property-tags/ -> /api/v2.x/propertytags/.

    • /api/v2.x/timeline-events/ -> /api/v2.x/timelineevents/.

    • /api/v2.x/extra-fields/ -> /api/v2.x/extrafields/.

    • /api/v2.x/display-conditions/ -> /api/v2.x/displayconditions/.

    • /api/v2.x/dispatch/ -> /api/v2.x/dispatches/.

  • Added endpoint /api/v2.x/assettags/, for parity with the same endpoint in the v1 api.

  • Filter content_type_id on /api/v2.x/timelineevents/ is renamed to content_type. Both filter names remain usable until support for v2.2 is dropped.

  • Removed is_performed bool field from ServiceTask resource. Use performed_date datetime field instead.

  • Removed is_quotable bool field from ServiceTask resource. The concept of "Quotable" ServiceTasks is replaced with a "SuggestedProducts" resource.

  • Added /api/v2.x/suggestedproducts/ endpoint, for interfacing with SuggestedProducts.

  • Tasks with status type CANCELLED are visible through the /api/v2.x/tasks/ endpoint.

v2.2 (Removed Mar 18, 2021)

  • Renamed /api/v2.x/task-sessions/ to /api/v2.x/tasksessions/. Both endpoints remain accessible via both old and new API versions until support for v2.1 is dropped.

  • Changed TaskSession.type from a CharField to a ForeignKey on model TaskSessionType. What was previously stored in TaskSession.type can be found under TaskSessionType.key. This affects both the TaskSession endpoints /api/v2.x/task-sessions/ and /api/v2.x/tasksessions/, as well as the /api/v2.x/payroll/ endpoint.

  • Added endpoint /api/v2.x/tasksessiontypes/, for accessing and manipulating TaskSessionTypes.

v2.1 (Removed Jun 18, 2020)

  • Renamed Remark.failure to Remark.type. Notes:

    • This is only a field name change. The resource behind the ForeignKey was already called RemarkType and remains this way.

    • This change affects not only the remarks endpoint, but all other endpoints that were pulling remarks through via the include query param.

  • Renamed /api/v2/remark-types/ endpoint to /api/v2/remarktypes/. Both endpoints remain accessible via both old and new API versions until support for v2.0 is dropped.

v2.0 (Removed Feb 6, 2020)

  • Initial release


Recommendations

Did this answer your question?