Skip to content

Site API

Manage sites within an organisation. Sites represent physical locations where Consystence servers and edge devices operate.

Create Site

POST /api/organisations/{orgId}/sites

Create a new site. Requires Admin or Owner role on the organisation.

Request:

Authorization: Bearer <access_token>
Content-Type: application/json

{
  "name": "Mt Arthur Mine",
  "slug": "mt-arthur",
  "timezone": "Australia/Sydney",
  "location": {
    "latitude": -32.35,
    "longitude": 150.87,
    "address": "Mt Arthur Mine, Muswellbrook NSW"
  }
}

Response (201):

{
  "id": "f6a7b8c9-0d1e-2f3a-4b5c-6d7e8f9a0b1c",
  "name": "Mt Arthur Mine",
  "slug": "mt-arthur",
  "url": "mt-arthur.consystence.site",
  "timezone": "Australia/Sydney",
  "location": {
    "latitude": -32.35,
    "longitude": 150.87,
    "address": "Mt Arthur Mine, Muswellbrook NSW"
  },
  "orgId": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
  "status": "provisioning",
  "createdAt": "2026-02-18T10:00:00Z"
}

The url field is the auto-reserved *.consystence.site address for operator access.

List Sites

GET /api/organisations/{orgId}/sites

List all sites in the organisation.

Response (200):

{
  "data": [
    {
      "id": "f6a7b8c9-0d1e-2f3a-4b5c-6d7e8f9a0b1c",
      "name": "Mt Arthur Mine",
      "slug": "mt-arthur",
      "url": "mt-arthur.consystence.site",
      "status": "online",
      "deviceCount": 4,
      "processCount": 2
    }
  ]
}

Get Site

GET /api/organisations/{orgId}/sites/{siteId}

Returns full site details including provisioning status and connected edge devices.

Update Site

PUT /api/organisations/{orgId}/sites/{siteId}

Update site metadata (name, timezone, location). Requires Admin or Owner role.

Request:

{
  "name": "Mt Arthur Coal Mine",
  "timezone": "Australia/Sydney"
}

Delete Site

DELETE /api/organisations/{orgId}/sites/{siteId}

Delete a site and all associated data. Requires Owner role.

Warning

This operation is irreversible. All processes, device instances, historical data, and edge device registrations at the site are permanently deleted.

Server Registration

POST /api/organisations/{orgId}/sites/{siteId}/register-server

Register an on-premises site server. Called by the site server during first startup to bind itself to a site.

Request:

{
  "hardwareId": "auto-generated-fingerprint",
  "version": "10.1.0",
  "hostname": "consystence-server.local"
}

Response (200):

{
  "siteToken": "eyJhbGciOiJSUzI1NiIs...",
  "config": {
    "orgId": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
    "siteId": "f6a7b8c9-0d1e-2f3a-4b5c-6d7e8f9a0b1c",
    "clusteringMode": "AdoNet"
  }
}

The siteToken is a long-lived JWT used by the site server to authenticate with the cloud tier.

Edge Device Registration

POST /api/organisations/{orgId}/sites/{siteId}/register-edge

Register a new edge device at a site. Returns the configuration the edge device needs to connect.

Request:

{
  "edgeId": "orin-north-01",
  "hardwareId": "auto-generated-fingerprint",
  "version": "10.1.0"
}

Response (201):

{
  "edgeToken": "eyJhbGciOiJSUzI1NiIs...",
  "siteServerUrl": "https://site-server.local:5000",
  "config": {
    "pollIntervalMs": 100,
    "bufferRetentionDays": 7
  }
}