Update an existing site. All fields are optional — only provided fields are changed.
> **Moving a site to a different account:** Use `POST /sites/{site_id}/move` instead. `accountId` cannot be changed on a site update.
> **Note on `geoLocation` and `fullAddress`:** Sending either field on update triggers geocoding — the backend may overwrite the stored coordinates with what Google Maps snaps to for the nearest address, so the values you send may not be stored as-is. There is currently no way to update coordinates without allowing the geocoder to potentially adjust them.
Request
This endpoint expects an object.
fullAddressstringOptional
Full address string. Backend will re-geocode when updated.
geoLocationstringOptional
Latitude/longitude as “lat,lng”. On update, sending this triggers a full re-geocode — the backend snaps to the nearest address via Google Maps, so the stored value may differ from what you sent.
titlestringOptional<=255 characters
timezonestringOptional
IANA timezone string (e.g. “America/Los_Angeles”). Use this to manually override the timezone if the geocoded value is incorrect or you are migrating from a system that has an explicit timezone already set.
Response
Site updated successfully
idintegerOptional
Unique site ID.
accountIdintegerOptional
ID of the account this site belongs to.
titlestring or nullOptional
Human-readable label for the site (e.g. “Main Office”).
fullAddressstring or nullOptional
Full formatted address string.
streetstring or nullOptional
citystring or nullOptional
statestring or nullOptional
zipcodestring or nullOptional
geoLocationstring or nullOptional
Latitude/longitude as “lat,lng” (e.g. “37.7749,-122.4194”).
timezonestring or nullOptional
IANA timezone string (e.g. “America/Los_Angeles”).
createdAtstring or nullOptionalformat: "date-time"
updatedAtstring or nullOptionalformat: "date-time"