PhyStack API (2026-03)
Every consumer-affecting change to the PhyStack API version 2026-03, newest first. Entries are generated automatically from the OpenAPI specification when a change reaches production.
The 2026-03 API is additive-only: existing endpoints, fields, and types are never removed or changed within this version. Everything listed here is backward-compatible — new endpoints, new optional parameters, new response fields, or documentation improvements.
September 3, 2026
Section titled “September 3, 2026”GET /invoices
Section titled “GET /invoices”- added the new optional
queryrequest parameterincludeChildren - added the required property
itemsto the response with the200status - added the required property
totalto the response with the200status
GET /tenants/{tenantId}/consumption
Section titled “GET /tenants/{tenantId}/consumption”- endpoint added
GET /tenants/{tenantId}/consumption/summary
Section titled “GET /tenants/{tenantId}/consumption/summary”- endpoint added
POST /web-endpoints/{endpointId}/code
Section titled “POST /web-endpoints/{endpointId}/code”- endpoint added
August 21, 2026
Section titled “August 21, 2026”GET /apps
Section titled “GET /apps”- added the new optional
queryrequest parameterfilter[type]
GET /installations/{installationId}/devices/{deviceId}/settings
Section titled “GET /installations/{installationId}/devices/{deviceId}/settings”- the response property
data/versionbecame not nullable for the status200 - the response property
data/versionbecame required for the status200
PUT /installations/{installationId}/devices/{deviceId}/settings
Section titled “PUT /installations/{installationId}/devices/{deviceId}/settings”- the response property
data/versionbecame not nullable for the status200 - the response property
data/versionbecame required for the status200
GET /installations/{installationId}/spaces/{spaceId}/settings
Section titled “GET /installations/{installationId}/spaces/{spaceId}/settings”- the response property
data/versionbecame not nullable for the status200 - the response property
data/versionbecame required for the status200
PUT /installations/{installationId}/spaces/{spaceId}/settings
Section titled “PUT /installations/{installationId}/spaces/{spaceId}/settings”- the response property
data/versionbecame not nullable for the status200 - the response property
data/versionbecame required for the status200
GET /peripherals
Section titled “GET /peripherals”- added the new optional
queryrequest parametersearch
GET /tenants
Section titled “GET /tenants”- added the new optional
queryrequest parameterfilter[country] - added the new optional
queryrequest parameterfilter[parentTenantId]
GET /tenants/{id}/subscription
Section titled “GET /tenants/{id}/subscription”- added the optional property
subscription/oneOf[#/components/schemas/SubscriptionDetails]/cardto the response with the200status
GET /web-endpoints
Section titled “GET /web-endpoints”- endpoint added
POST /web-endpoints
Section titled “POST /web-endpoints”- endpoint added
DELETE /web-endpoints/{endpointId}
Section titled “DELETE /web-endpoints/{endpointId}”- endpoint added
GET /web-endpoints/{endpointId}
Section titled “GET /web-endpoints/{endpointId}”- endpoint added
PUT /web-endpoints/{endpointId}
Section titled “PUT /web-endpoints/{endpointId}”- endpoint added
August 1, 2026
Section titled “August 1, 2026”GET /peripherals
Section titled “GET /peripherals”- :warning: removed the required property
data/items/settingsfrom the response with the200status - :warning: removed the required property
data/items/telemetryfrom the response with the200status - added the optional property
data/items/hardwareStatusto the response with the200status - removed the optional property
data/items/createdAtfrom the response with the200status - removed the optional property
data/items/hardwareIdfrom the response with the200status - removed the optional property
data/items/tenantIdfrom the response with the200status - removed the optional property
data/items/updatedAtfrom the response with the200status - the response property
data/items/deviceIdbecame not nullable for the status200 - the response property
data/items/namebecame not nullable for the status200 - the response property
data/items/statusbecame not nullable for the status200 - the response property
data/items/deviceIdbecame required for the status200 - the response property
data/items/namebecame required for the status200 - the response property
data/items/statusbecame required for the status200 - added the required property
data/items/deviceDisplayNameto the response with the200status
DELETE /peripherals/{id}
Section titled “DELETE /peripherals/{id}”- endpoint added
GET /peripherals/{id}
Section titled “GET /peripherals/{id}”- the response property
data/createdAtbecame not nullable for the status200 - the response property
data/deviceIdbecame not nullable for the status200 - the response property
data/hardwareIdbecame not nullable for the status200 - the response property
data/namebecame not nullable for the status200 - the response property
data/statusbecame not nullable for the status200 - the response property
data/tenantIdbecame not nullable for the status200 - the response property
data/updatedAtbecame not nullable for the status200 - the response property
data/createdAtbecame required for the status200 - the response property
data/deviceIdbecame required for the status200 - the response property
data/hardwareIdbecame required for the status200 - the response property
data/namebecame required for the status200 - the response property
data/statusbecame required for the status200 - the response property
data/tenantIdbecame required for the status200 - the response property
data/updatedAtbecame required for the status200
GET /peripherals/{id}/schema
Section titled “GET /peripherals/{id}/schema”- endpoint added
PUT /peripherals/{id}/settings
Section titled “PUT /peripherals/{id}/settings”- the response property
data/createdAtbecame not nullable for the status200 - the response property
data/deviceIdbecame not nullable for the status200 - the response property
data/hardwareIdbecame not nullable for the status200 - the response property
data/namebecame not nullable for the status200 - the response property
data/statusbecame not nullable for the status200 - the response property
data/tenantIdbecame not nullable for the status200 - the response property
data/updatedAtbecame not nullable for the status200 - the response property
data/createdAtbecame required for the status200 - the response property
data/deviceIdbecame required for the status200 - the response property
data/hardwareIdbecame required for the status200 - the response property
data/namebecame required for the status200 - the response property
data/statusbecame required for the status200 - the response property
data/tenantIdbecame required for the status200 - the response property
data/updatedAtbecame required for the status200
GET /spaces/{id}/ancestors
Section titled “GET /spaces/{id}/ancestors”- endpoint added
July 15, 2026
Section titled “July 15, 2026”POST /apps/{appId}/builds
Section titled “POST /apps/{appId}/builds”- endpoint added
GET /apps/{appId}/builds/upload-token
Section titled “GET /apps/{appId}/builds/upload-token”- endpoint added
POST /apps/{appId}/builds/{buildId}/publish
Section titled “POST /apps/{appId}/builds/{buildId}/publish”- endpoint added
POST /auth/device/approve
Section titled “POST /auth/device/approve”- endpoint added
POST /auth/device/authorize
Section titled “POST /auth/device/authorize”- endpoint added
POST /auth/device/token
Section titled “POST /auth/device/token”- endpoint added
GET /auth/sessions
Section titled “GET /auth/sessions”- endpoint added
DELETE /auth/sessions/{id}
Section titled “DELETE /auth/sessions/{id}”- endpoint added
GET /content-tags
Section titled “GET /content-tags”- endpoint added
POST /content-tags
Section titled “POST /content-tags”- endpoint added
DELETE /content-tags/{id}
Section titled “DELETE /content-tags/{id}”- endpoint added
GET /content-tags/{id}
Section titled “GET /content-tags/{id}”- endpoint added
PUT /content-tags/{id}
Section titled “PUT /content-tags/{id}”- endpoint added
GET /descriptors
Section titled “GET /descriptors”- endpoint added
POST /descriptors
Section titled “POST /descriptors”- endpoint added
GET /descriptors/{name}
Section titled “GET /descriptors/{name}”- endpoint added
POST /descriptors/{name}/versions
Section titled “POST /descriptors/{name}/versions”- endpoint added
GET /descriptors/{name}/versions/{version}
Section titled “GET /descriptors/{name}/versions/{version}”- endpoint added
POST /devices/{id}/reboot
Section titled “POST /devices/{id}/reboot”- endpoint added
POST /devices/{id}/shell
Section titled “POST /devices/{id}/shell”- endpoint added
POST /installations/{id}/clone
Section titled “POST /installations/{id}/clone”- endpoint added
GET /installations/{id}/devices
Section titled “GET /installations/{id}/devices”- endpoint added
POST /installations/{id}/devices
Section titled “POST /installations/{id}/devices”- endpoint added
DELETE /installations/{id}/devices/{deviceId}
Section titled “DELETE /installations/{id}/devices/{deviceId}”- endpoint added
GET /installations/{id}/settings/migration
Section titled “GET /installations/{id}/settings/migration”- endpoint added
DELETE /installations/{installationId}/devices/{deviceId}/settings
Section titled “DELETE /installations/{installationId}/devices/{deviceId}/settings”- endpoint added
GET /installations/{installationId}/devices/{deviceId}/settings
Section titled “GET /installations/{installationId}/devices/{deviceId}/settings”- endpoint added
PUT /installations/{installationId}/devices/{deviceId}/settings
Section titled “PUT /installations/{installationId}/devices/{deviceId}/settings”- endpoint added
DELETE /installations/{installationId}/spaces/{spaceId}/settings
Section titled “DELETE /installations/{installationId}/spaces/{spaceId}/settings”- endpoint added
GET /installations/{installationId}/spaces/{spaceId}/settings
Section titled “GET /installations/{installationId}/spaces/{spaceId}/settings”- endpoint added
PUT /installations/{installationId}/spaces/{spaceId}/settings
Section titled “PUT /installations/{installationId}/spaces/{spaceId}/settings”- endpoint added
GET /invitations
Section titled “GET /invitations”- endpoint added
POST /invitations
Section titled “POST /invitations”- endpoint added
DELETE /invitations/{id}
Section titled “DELETE /invitations/{id}”- endpoint added
GET /invitations/{id}
Section titled “GET /invitations/{id}”- endpoint added
GET /invoices
Section titled “GET /invoices”- endpoint added
GET /invoices/{id}
Section titled “GET /invoices/{id}”- endpoint added
GET /media
Section titled “GET /media”- endpoint added
POST /media/folders
Section titled “POST /media/folders”- endpoint added
POST /media/uploads
Section titled “POST /media/uploads”- endpoint added
POST /media/{assetId}/complete
Section titled “POST /media/{assetId}/complete”- endpoint added
DELETE /media/{mediaId}
Section titled “DELETE /media/{mediaId}”- endpoint added
GET /media/{mediaId}
Section titled “GET /media/{mediaId}”- endpoint added
PATCH /media/{mediaId}
Section titled “PATCH /media/{mediaId}”- endpoint added
GET /peripherals
Section titled “GET /peripherals”- endpoint added
GET /peripherals/{id}
Section titled “GET /peripherals/{id}”- endpoint added
GET /peripherals/{id}/actions
Section titled “GET /peripherals/{id}/actions”- endpoint added
POST /peripherals/{id}/actions/{name}
Section titled “POST /peripherals/{id}/actions/{name}”- endpoint added
GET /peripherals/{id}/events
Section titled “GET /peripherals/{id}/events”- endpoint added
GET /peripherals/{id}/settings
Section titled “GET /peripherals/{id}/settings”- endpoint added
PUT /peripherals/{id}/settings
Section titled “PUT /peripherals/{id}/settings”- endpoint added
GET /peripherals/{id}/telemetry
Section titled “GET /peripherals/{id}/telemetry”- endpoint added
GET /roles
Section titled “GET /roles”- endpoint added
GET /roles/{id}
Section titled “GET /roles/{id}”- endpoint added
GET /short-urls
Section titled “GET /short-urls”- endpoint added
POST /short-urls
Section titled “POST /short-urls”- endpoint added
DELETE /short-urls/{id}
Section titled “DELETE /short-urls/{id}”- endpoint added
GET /short-urls/{id}
Section titled “GET /short-urls/{id}”- endpoint added
PUT /short-urls/{id}
Section titled “PUT /short-urls/{id}”- endpoint added
GET /spaces
Section titled “GET /spaces”- added the new optional
queryrequest parameterfilter[childrenType] - added the new optional
queryrequest parameterinclude - added the optional property
data/items/billingAddressto the response with the200status - added the optional property
data/items/billingContactto the response with the200status - added the optional property
data/items/childrento the response with the200status
POST /spaces
Section titled “POST /spaces”- added the new optional request property
billingAddress - added the new optional request property
billingContact - added the optional property
data/billingAddressto the response with the201status - added the optional property
data/billingContactto the response with the201status - added the optional property
data/childrento the response with the201status
POST /spaces/batch
Section titled “POST /spaces/batch”- endpoint added
GET /spaces/map
Section titled “GET /spaces/map”- endpoint added
GET /spaces/{id}
Section titled “GET /spaces/{id}”- added the optional property
data/billingAddressto the response with the200status - added the optional property
data/billingContactto the response with the200status - added the optional property
data/childrento the response with the200status
PUT /spaces/{id}
Section titled “PUT /spaces/{id}”- added the optional property
data/billingAddressto the response with the200status - added the optional property
data/billingContactto the response with the200status - added the optional property
data/childrento the response with the200status
GET /tenants
Section titled “GET /tenants”- added the required property
data/items/tenantNameto the response with the200status
POST /tenants
Section titled “POST /tenants”- :warning: removed the request property
parentTenantId - added the required property
data/tenantNameto the response with the201status
GET /tenants/{id}
Section titled “GET /tenants/{id}”- added the required property
data/tenantNameto the response with the200status
PUT /tenants/{id}
Section titled “PUT /tenants/{id}”- added the new optional request property
billingAddress/oneOf[#/components/schemas/BillingAddress]/notes - added the required property
data/tenantNameto the response with the200status
GET /tenants/{id}/deletion-blockers
Section titled “GET /tenants/{id}/deletion-blockers”- endpoint added
GET /tenants/{parentTenantId}/available-child-plans
Section titled “GET /tenants/{parentTenantId}/available-child-plans”- endpoint added
POST /tenants/{parentTenantId}/managed-tenants
Section titled “POST /tenants/{parentTenantId}/managed-tenants”- endpoint added
GET /tokens
Section titled “GET /tokens”- endpoint added
POST /tokens
Section titled “POST /tokens”- endpoint added
DELETE /tokens/{id}
Section titled “DELETE /tokens/{id}”- endpoint added
GET /users
Section titled “GET /users”- endpoint added
GET /users/{id}
Section titled “GET /users/{id}”- endpoint added
GET /{id}/users
Section titled “GET /{id}/users”- endpoint added