Sites API
Discover the physical or logical operating locations that belong to a Waterly system.
Site addresses
Use /api/sites/v2 or /api/sites/v2/{siteId} to include
attributes.addresses. The same addresses appear on site rows in the v2
organization data-model endpoints.
Addresses are ordered by ID. No active addresses means an empty array; archived addresses are
excluded. Each address includes its UUID, country code, and purpose (SHIPPING,
BILLING, or BOTH). All other address fields may be
null.
"attributes": {
"site_type": "treatment_plant",
"addresses": [{
"id": "123e4567-e89b-12d3-a456-426614174000",
"label": "Main entrance",
"recipient_name": "Operations",
"line1": "123 Main St",
"line2": null,
"phone": "+13125550123",
"city": "Chicago",
"region": "IL",
"postal_code": "60601",
"country_code": "US",
"purpose": "BOTH"
}]
}
The system_id filter, pagination, Digest authentication, and
data-model:read scope are unchanged. Site self links, pagination links, and
organization discovery links use v2. Parent system links continue to use the existing v1
system API.
List sites
Filter by system_id when you need sites from one system. Results are
cursor-paginated.
curl --digest \
--user "$WATERLY_API_USERNAME:$WATERLY_API_SECRET" \
"https://connect.waterly.com/api/sites/v2?system_id=40&limit=100"
{
"data": [{
"kind": "site", "id": 55, "name": "North Treatment Plant",
"parent": { "kind": "system", "id": 40 },
"order": 1, "attributes": { "site_type": "treatment_plant", "addresses": [] }
}],
"links": { "self": "...", "next": null, "prev": null },
"meta": { "limit": 100, "has_next": false, "has_prev": false }
}
Get one site
curl --digest --user "$WATERLY_API_USERNAME:$WATERLY_API_SECRET" \
"https://connect.waterly.com/api/sites/v2/55"
Follow links.children to list the processes at this site.
Site-specific fields
-
orderis the site's configured display order and may benull. -
attributes.site_typedescribes the site's configured role. -
parent.idis the system ID you can reuse in site and data-point filters.
