Welcome to the Butlr GraphQL API a powerful and flexible interface that allows you to query a variety of entities such as floors, rooms, zones, sensors, and hives. By crafting precise queries, you can fetch only the data you need, avoiding over-fetching or under-fetching of information. This results in optimized performance and reduced bandwidth usage, enabling seamless access and management of your smart building ecosystem.

Contact

For any questions/issues, please contact us at

support@butlr.io

https://butlr.io/support

API Endpoints
https://api.butlr.io/api/v3/graphql
Headers
# Requires a JWT from Butlr to authenticate any graphql request.
Authorization: Bearer YOUR_JWT_HERE

Queries

buckets

Description

Fetch information about buckets. INTERNAL_USE_ONLY

Response

Returns [Bucket!]

Example

Query
query buckets {
  buckets {
    database
    bucket
  }
}
Response
{
  "data": {
    "buckets": [
      {
        "database": "xyz789",
        "bucket": "xyz789"
      }
    ]
  }
}

clients

Description

Fetch information about clients with the specified IDs. INTERNAL_USE_ONLY

Response

Returns a Clients!

Arguments
Name Description
ids - [String!] The ids of the clients to fetch. (ie. ["client_xxxxxxxx"])

Example

Query
query clients($ids: [String!]) {
  clients(ids: $ids) {
    data {
      client_id
      database
    }
  }
}
Variables
{"ids": ["abc123"]}
Response
{"data": {"clients": {"data": [Client]}}}

fixtures

Description

Fetch information about fixtures with the specified IDs

Response

Returns a Fixtures!

Arguments
Name Description
ids - [String!] The ids of the fixtures to fetch. (ie. ["fixture_xxxxxxxx"])

Example

Query
query fixtures($ids: [String!]) {
  fixtures(ids: $ids) {
    data {
      client_id
      floor_id
      room_id
      fixture_id
      auto_calibrated_at
      center
      scale
      fixture_type
      rotation
      metadata {
        ...MetaDataFragment
      }
    }
  }
}
Variables
{"ids": ["xyz789"]}
Response
{"data": {"fixtures": {"data": [Fixture]}}}

floors

Description

Fetch information about floors with the specified IDs

Response

Returns a Floors!

Arguments
Name Description
ids - [String!] The ids of the floors to fetch. (ie. ["space_xxxxxxxx"])

Example

Query
query floors($ids: [String!]) {
  floors(ids: $ids) {
    data {
      client_id
      floor_id
      metadata {
        ...MetaDataFragment
      }
      name
      address
      timezone
      occupancy_mode
      area {
        ...AreaFragment
      }
      capacity {
        ...CapacityFragment
      }
      installation_date
      installation_status
      sensors {
        ...SensorFragment
      }
      hives {
        ...HiveFragment
      }
      rooms {
        ...RoomFragment
      }
      zones {
        ...ZoneFragment
      }
      fixtures {
        ...FixtureFragment
      }
      floor_plans {
        ...FloorPlanFragment
      }
      floorNumber
    }
  }
}
Variables
{"ids": ["xyz789"]}
Response
{"data": {"floors": {"data": [Floor]}}}

hives

Description

Fetch information about hives with the specified IDs or serial numbers

Response

Returns a Hives!

Arguments
Name Description
ids - [String!] The ids of the hives to fetch. (ie. ["hive_xxxxxxxx"])
serial_numbers - [String!] The serial numbers of the hives to fetch. (ie. ["1000000abc123"])

Example

Query
query hives(
  $ids: [String!],
  $serial_numbers: [String!]
) {
  hives(
    ids: $ids,
    serial_numbers: $serial_numbers
  ) {
    data {
      client_id
      floor_id
      floor {
        ...FloorFragment
      }
      room_id
      room {
        ...RoomFragment
      }
      hive_id
      metadata {
        ...MetaDataFragment
      }
      serial_number
      hive_version
      hive_type
      last_heartbeat
      last_raw_message
      last_compressed_message
      last_occupancy_message
      last_detection_message
      last_network_id
      is_streaming
      broker {
        ...HiveBrokerFragment
      }
      topics {
        ...HiveTopicsFragment
      }
      activated_at
      is_online
      net_path_stability
      coordinates
      name
      config {
        ...HiveConfigFragment
      }
      connection_health {
        ...ConnectionHealthHiveFragment
      }
      sensors {
        ...SensorFragment
      }
    }
  }
}
Variables
{
  "ids": ["xyz789"],
  "serial_numbers": ["abc123"]
}
Response
{"data": {"hives": {"data": [Hive]}}}

rooms

Description

Fetch information about rooms with the specified IDs

Response

Returns a Rooms!

Arguments
Name Description
ids - [String!] The ids of the rooms to fetch. (ie. ["room_xxxxxxxx"])

Example

Query
query rooms($ids: [String!]) {
  rooms(ids: $ids) {
    data {
      client_id
      floor_id
      floor {
        ...FloorFragment
      }
      room_id
      metadata {
        ...MetaDataFragment
      }
      name
      area {
        ...AreaFragment
      }
      color
      coordinates
      auto_calibrated_at
      capacity {
        ...CapacityFragment
      }
      rotation
      room_type
      sensors {
        ...SensorFragment
      }
    }
  }
}
Variables
{"ids": ["abc123"]}
Response
{"data": {"rooms": {"data": [Room]}}}

sensors

Description

Fetch information about sensors with the specified parameters

Response

Returns a Sensors!

Arguments
Name Description
ids - [String!] The ids of the sensors to fetch. (ie. ["sensor_xxxxxxxx"])
mac_addresses - [String!] The mac addresses of the sensors to fetch. (ie. ["00-00-00-00-00-00"])
floor_ids - [String!] The floor ids of the sensors to fetch. (ie. ["space_xxxxxxxx"])
room_ids - [String!] The room ids of the sensors to fetch. (ie. ["room_xxxxxxxx"])
hive_ids - [String!] The hive ids of the sensors to fetch. (ie. ["hive_xxxxxxxx"])
hive_serials - [String!] The hive serial numbers of the sensors to fetch. (ie. ["1000000abc123"])

Example

Query
query sensors(
  $ids: [String!],
  $mac_addresses: [String!],
  $floor_ids: [String!],
  $room_ids: [String!],
  $hive_ids: [String!],
  $hive_serials: [String!]
) {
  sensors(
    ids: $ids,
    mac_addresses: $mac_addresses,
    floor_ids: $floor_ids,
    room_ids: $room_ids,
    hive_ids: $hive_ids,
    hive_serials: $hive_serials
  ) {
    data {
      client_id
      floor_id
      floor {
        ...FloorFragment
      }
      room_id
      room {
        ...RoomFragment
      }
      hive_id
      hive {
        ...HiveFragment
      }
      hive_serial
      zones {
        ...ZoneFragment
      }
      zone_ids
      sensor_id
      metadata {
        ...MetaDataFragment
      }
      name
      mac_address
      mode
      model
      sensitivity
      center
      height
      is_entrance
      is_online
      parallel_to_door
      active_hours
      calibration {
        ...SensorCalibrationFragment
      }
      door_line
      generation
      in_direction
      last_heartbeat
      last_raw_message
      last_compressed_message
      last_occupancy_message
      last_detection_message
      messages_per_second
      is_streaming
      orientation
      effective_field_of_view
      field_of_view
      algo_config {
        ...AlgoConfigFragment
      }
      connection_health {
        ...ConnectionHealthSensorFragment
      }
      config {
        ...SensorConfigFragment
      }
      last_battery_change_date
      next_battery_change_date
    }
  }
}
Variables
{
  "ids": ["xyz789"],
  "mac_addresses": ["xyz789"],
  "floor_ids": ["xyz789"],
  "room_ids": ["abc123"],
  "hive_ids": ["abc123"],
  "hive_serials": ["abc123"]
}
Response
{"data": {"sensors": {"data": [Sensor]}}}

zones

Description

Fetch information about zones with the specified IDs

Response

Returns a Zones!

Arguments
Name Description
ids - [String!] The ids of the zones to fetch. (ie. ["zone_xxxxxxxx"])

Example

Query
query zones($ids: [String!]) {
  zones(ids: $ids) {
    data {
      client_id
      floor_id
      room_id
      zone_id
      metadata {
        ...MetaDataFragment
      }
      name
      area {
        ...AreaFragment
      }
      color
      coordinates
      rotation
      capacity {
        ...CapacityFragment
      }
      zone_type
      tags
      sensors {
        ...SensorFragment
      }
    }
  }
}
Variables
{"ids": ["xyz789"]}
Response
{"data": {"zones": {"data": [Zone]}}}

Mutations

createFixtures

Description

Create multiple Fixture entities

Response

Returns [FixtureDetails!]

Arguments
Name Description
fixtures - [CreateFixtureInput!]! A list of CreateFixtureInput objects containing the information for creating new Fixture entities

Example

Query
mutation createFixtures($fixtures: [CreateFixtureInput!]!) {
  createFixtures(fixtures: $fixtures) {
    client_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    auto_calibrated_at
    fixture_type
    fixture_id
    name
    floor_id
    center
    rotation
    scale
    type
  }
}
Variables
{"fixtures": [CreateFixtureInput]}
Response
{
  "data": {
    "createFixtures": [
      {
        "client_id": "xyz789",
        "metadata": MetaData,
        "auto_calibrated_at": 123,
        "fixture_type": "abc123",
        "fixture_id": 4,
        "name": "abc123",
        "floor_id": "abc123",
        "center": [123.45],
        "rotation": 123.45,
        "scale": [123.45],
        "type": "abc123"
      }
    ]
  }
}

createFloors

Description

Create multiple Floor entities

Response

Returns [FloorDetails!]

Arguments
Name Description
floors - [CreateFloorInput!]! A list of CreateFloorInput objects containing the information for creating new Floor entities

Example

Query
mutation createFloors($floors: [CreateFloorInput!]!) {
  createFloors(floors: $floors) {
    metadata {
      created_at
      updated_at
      deleted_at
    }
    client_id
    floor_id
    name
    address
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    installation_date
    occupancy_mode
    timezone
    installation_status
  }
}
Variables
{"floors": [CreateFloorInput]}
Response
{
  "data": {
    "createFloors": [
      {
        "metadata": MetaData,
        "client_id": "xyz789",
        "floor_id": "xyz789",
        "name": "xyz789",
        "address": "xyz789",
        "area": Area,
        "capacity": Capacity,
        "installation_date": 987,
        "occupancy_mode": "abc123",
        "timezone": "abc123",
        "installation_status": "NOT_INSTALLED"
      }
    ]
  }
}

createHives

Description

Create multiple Hive entities

Response

Returns [HiveDetails!]

Arguments
Name Description
hives - [CreateHiveInput!]! A list of CreateHiveInput objects containing the information for creating new Hive entities

Example

Query
mutation createHives($hives: [CreateHiveInput!]!) {
  createHives(hives: $hives) {
    floor_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    client_id
    hive_id
    serial_number
    space_id
    broker {
      hive_serial
      address
      username
      password
      port
      tls {
        ...CertificateFragment
      }
    }
    topics {
      command
      detections
      raw
      compressed
    }
    is_online
    activated_at
    net_path_stability
    coordinates
    name
    color
    sensor_ids
    room_id
    config {
      hive_serial
      heartbeat_interval
      on_change_interval
      baudrate
      modem_device
      timezone
      mqtt {
        ...HiveMQTTConfigFragment
      }
      frame_rate {
        ...HiveFrameRateConfigFragment
      }
      required_bandwidth {
        ...HiveRequiredBandwidthConfigFragment
      }
      auto_sensor_fw_updates_enabled
    }
    hive_version
    hive_type
  }
}
Variables
{"hives": [CreateHiveInput]}
Response
{
  "data": {
    "createHives": [
      {
        "floor_id": "xyz789",
        "metadata": MetaData,
        "client_id": "xyz789",
        "hive_id": "4",
        "serial_number": "xyz789",
        "space_id": "xyz789",
        "broker": HiveBroker,
        "topics": HiveTopics,
        "is_online": true,
        "activated_at": 987,
        "net_path_stability": 123.45,
        "coordinates": [123.45],
        "name": "abc123",
        "color": [123.45],
        "sensor_ids": ["abc123"],
        "room_id": "xyz789",
        "config": HiveConfig,
        "hive_version": "xyz789",
        "hive_type": "xyz789"
      }
    ]
  }
}

createRooms

Description

Create multiple Room entities

Response

Returns [RoomDetails!]

Arguments
Name Description
rooms - [CreateRoomInput!]! A list of CreateRoomInput objects containing the information for creating new Room entities

Example

Query
mutation createRooms($rooms: [CreateRoomInput!]!) {
  createRooms(rooms: $rooms) {
    client_id
    floor_id
    room_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    name
    room_type
    coordinates
    rotation
    color
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    tags
    auto_calibrated_at
  }
}
Variables
{"rooms": [CreateRoomInput]}
Response
{
  "data": {
    "createRooms": [
      {
        "client_id": "xyz789",
        "floor_id": "xyz789",
        "room_id": 4,
        "metadata": MetaData,
        "name": "abc123",
        "room_type": "xyz789",
        "coordinates": [123.45],
        "rotation": 123.45,
        "color": [123.45],
        "area": Area,
        "capacity": Capacity,
        "tags": ["xyz789"],
        "auto_calibrated_at": 123
      }
    ]
  }
}

createSensors

Description

Create multiple Sensor entities

Response

Returns [SensorDetails!]

Arguments
Name Description
sensors - [CreateSensorInput!]! A list of CreateSensorInput objects containing the information for creating new Sensor entities

Example

Query
mutation createSensors($sensors: [CreateSensorInput!]!) {
  createSensors(sensors: $sensors) {
    client_id
    floor_id
    room_id
    hive_id
    hive_serial
    zone_ids
    sensor_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    name
    mac_address
    mode
    model
    sensitivity
    center
    height
    is_entrance
    is_online
    parallel_to_door
    active_hours
    calibration {
      auto_calibrated_at
      auto_calibrate_start
      auto_calibrate_end
      auto_calibrate_person
    }
    door_line
    generation
    in_direction
    last_heartbeat
    orientation
    effective_field_of_view
    field_of_view
    coordinates
    color
    algo_config {
      cold_person_detection
      blacklist
      sunlight
      shortened_doorline
    }
    config {
      deployment_config {
        ...SensorDeploymentConfigFragment
      }
      current_firmware_version
      config_firmware_version
      force_90_fov
    }
    last_battery_change_date
    next_battery_change_date
  }
}
Variables
{"sensors": [CreateSensorInput]}
Response
{
  "data": {
    "createSensors": [
      {
        "client_id": "abc123",
        "floor_id": "xyz789",
        "room_id": "xyz789",
        "hive_id": "abc123",
        "hive_serial": "xyz789",
        "zone_ids": ["abc123"],
        "sensor_id": 4,
        "metadata": MetaData,
        "name": "abc123",
        "mac_address": "xyz789",
        "mode": "xyz789",
        "model": "xyz789",
        "sensitivity": 123.45,
        "center": [123.45],
        "height": 987.65,
        "is_entrance": true,
        "is_online": false,
        "parallel_to_door": true,
        "active_hours": [123.45],
        "calibration": SensorCalibration,
        "door_line": 987.65,
        "generation": 987.65,
        "in_direction": 123.45,
        "last_heartbeat": 123,
        "orientation": [987.65],
        "effective_field_of_view": 987.65,
        "field_of_view": 123.45,
        "coordinates": [987.65],
        "color": [987.65],
        "algo_config": AlgoConfig,
        "config": SensorConfig,
        "last_battery_change_date": "10:15:30Z",
        "next_battery_change_date": "10:15:30Z"
      }
    ]
  }
}

createZones

Description

Create multiple Zone entities

Response

Returns [ZoneDetails!]

Arguments
Name Description
zones - [CreateZoneInput!]! A list of CreateZoneInput objects containing the information for creating new Zone entities

Example

Query
mutation createZones($zones: [CreateZoneInput!]!) {
  createZones(zones: $zones) {
    client_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    zone_type
    zone_id
    name
    floor_id
    room_id
    coordinates
    rotation
    color
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    tags
    type
  }
}
Variables
{"zones": [CreateZoneInput]}
Response
{
  "data": {
    "createZones": [
      {
        "client_id": "xyz789",
        "metadata": MetaData,
        "zone_type": "abc123",
        "zone_id": "xyz789",
        "name": "xyz789",
        "floor_id": "abc123",
        "room_id": "xyz789",
        "coordinates": [123.45],
        "rotation": 987.65,
        "color": [987.65],
        "area": Area,
        "capacity": Capacity,
        "tags": ["abc123"],
        "type": "abc123"
      }
    ]
  }
}

deleteFixtures

Description

Delete multiple Fixture entities

Response

Returns [FixtureDetails!]

Arguments
Name Description
ids - [String!] A list of Fixture IDs to delete

Example

Query
mutation deleteFixtures($ids: [String!]) {
  deleteFixtures(ids: $ids) {
    client_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    auto_calibrated_at
    fixture_type
    fixture_id
    name
    floor_id
    center
    rotation
    scale
    type
  }
}
Variables
{"ids": ["abc123"]}
Response
{
  "data": {
    "deleteFixtures": [
      {
        "client_id": "xyz789",
        "metadata": MetaData,
        "auto_calibrated_at": 123,
        "fixture_type": "abc123",
        "fixture_id": 4,
        "name": "xyz789",
        "floor_id": "abc123",
        "center": [123.45],
        "rotation": 987.65,
        "scale": [987.65],
        "type": "xyz789"
      }
    ]
  }
}

deleteFloorplans

Description

Delete multiple floor plans

Response

Returns [FloorPlanIDs!]

Arguments
Name Description
ids - [DeleteFloorPlanInput!] A list of floor and floor plan ids

Example

Query
mutation deleteFloorplans($ids: [DeleteFloorPlanInput!]) {
  deleteFloorplans(ids: $ids) {
    floor_id
    floor_plan_id
  }
}
Variables
{"ids": [DeleteFloorPlanInput]}
Response
{
  "data": {
    "deleteFloorplans": [
      {
        "floor_id": "xyz789",
        "floor_plan_id": "xyz789"
      }
    ]
  }
}

deleteFloors

Description

Delete multiple Floor entities

Response

Returns [FloorDetails!]

Arguments
Name Description
ids - [String!] A list of Floor IDs to delete

Example

Query
mutation deleteFloors($ids: [String!]) {
  deleteFloors(ids: $ids) {
    metadata {
      created_at
      updated_at
      deleted_at
    }
    client_id
    floor_id
    name
    address
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    installation_date
    occupancy_mode
    timezone
    installation_status
  }
}
Variables
{"ids": ["abc123"]}
Response
{
  "data": {
    "deleteFloors": [
      {
        "metadata": MetaData,
        "client_id": "xyz789",
        "floor_id": "abc123",
        "name": "abc123",
        "address": "abc123",
        "area": Area,
        "capacity": Capacity,
        "installation_date": 987,
        "occupancy_mode": "xyz789",
        "timezone": "xyz789",
        "installation_status": "NOT_INSTALLED"
      }
    ]
  }
}

deleteHives

Description

Delete multiple Hive entities

Response

Returns [HiveDetails!]

Arguments
Name Description
ids - [String!] A list of Hive IDs to delete
serial_numbers - [String!] A list of Hive serial numbers to delete

Example

Query
mutation deleteHives(
  $ids: [String!],
  $serial_numbers: [String!]
) {
  deleteHives(
    ids: $ids,
    serial_numbers: $serial_numbers
  ) {
    floor_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    client_id
    hive_id
    serial_number
    space_id
    broker {
      hive_serial
      address
      username
      password
      port
      tls {
        ...CertificateFragment
      }
    }
    topics {
      command
      detections
      raw
      compressed
    }
    is_online
    activated_at
    net_path_stability
    coordinates
    name
    color
    sensor_ids
    room_id
    config {
      hive_serial
      heartbeat_interval
      on_change_interval
      baudrate
      modem_device
      timezone
      mqtt {
        ...HiveMQTTConfigFragment
      }
      frame_rate {
        ...HiveFrameRateConfigFragment
      }
      required_bandwidth {
        ...HiveRequiredBandwidthConfigFragment
      }
      auto_sensor_fw_updates_enabled
    }
    hive_version
    hive_type
  }
}
Variables
{
  "ids": ["xyz789"],
  "serial_numbers": ["xyz789"]
}
Response
{
  "data": {
    "deleteHives": [
      {
        "floor_id": "xyz789",
        "metadata": MetaData,
        "client_id": "xyz789",
        "hive_id": "4",
        "serial_number": "xyz789",
        "space_id": "xyz789",
        "broker": HiveBroker,
        "topics": HiveTopics,
        "is_online": true,
        "activated_at": 987,
        "net_path_stability": 123.45,
        "coordinates": [123.45],
        "name": "xyz789",
        "color": [123.45],
        "sensor_ids": ["xyz789"],
        "room_id": "xyz789",
        "config": HiveConfig,
        "hive_version": "abc123",
        "hive_type": "xyz789"
      }
    ]
  }
}

deleteRooms

Description

Delete multiple Room entities

Response

Returns [RoomDetails!]

Arguments
Name Description
ids - [String!] A list of Room IDs to delete

Example

Query
mutation deleteRooms($ids: [String!]) {
  deleteRooms(ids: $ids) {
    client_id
    floor_id
    room_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    name
    room_type
    coordinates
    rotation
    color
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    tags
    auto_calibrated_at
  }
}
Variables
{"ids": ["abc123"]}
Response
{
  "data": {
    "deleteRooms": [
      {
        "client_id": "abc123",
        "floor_id": "abc123",
        "room_id": 4,
        "metadata": MetaData,
        "name": "abc123",
        "room_type": "xyz789",
        "coordinates": [987.65],
        "rotation": 987.65,
        "color": [987.65],
        "area": Area,
        "capacity": Capacity,
        "tags": ["xyz789"],
        "auto_calibrated_at": 123
      }
    ]
  }
}

deleteSensors

Description

Delete multiple Sensor entities

Response

Returns [SensorDetails!]

Arguments
Name Description
ids - [String!] A list of Sensor IDs to delete
mac_addresses - [String!]

Example

Query
mutation deleteSensors(
  $ids: [String!],
  $mac_addresses: [String!]
) {
  deleteSensors(
    ids: $ids,
    mac_addresses: $mac_addresses
  ) {
    client_id
    floor_id
    room_id
    hive_id
    hive_serial
    zone_ids
    sensor_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    name
    mac_address
    mode
    model
    sensitivity
    center
    height
    is_entrance
    is_online
    parallel_to_door
    active_hours
    calibration {
      auto_calibrated_at
      auto_calibrate_start
      auto_calibrate_end
      auto_calibrate_person
    }
    door_line
    generation
    in_direction
    last_heartbeat
    orientation
    effective_field_of_view
    field_of_view
    coordinates
    color
    algo_config {
      cold_person_detection
      blacklist
      sunlight
      shortened_doorline
    }
    config {
      deployment_config {
        ...SensorDeploymentConfigFragment
      }
      current_firmware_version
      config_firmware_version
      force_90_fov
    }
    last_battery_change_date
    next_battery_change_date
  }
}
Variables
{
  "ids": ["abc123"],
  "mac_addresses": ["abc123"]
}
Response
{
  "data": {
    "deleteSensors": [
      {
        "client_id": "abc123",
        "floor_id": "abc123",
        "room_id": "abc123",
        "hive_id": "xyz789",
        "hive_serial": "abc123",
        "zone_ids": ["xyz789"],
        "sensor_id": "4",
        "metadata": MetaData,
        "name": "abc123",
        "mac_address": "abc123",
        "mode": "xyz789",
        "model": "abc123",
        "sensitivity": 987.65,
        "center": [987.65],
        "height": 123.45,
        "is_entrance": true,
        "is_online": false,
        "parallel_to_door": true,
        "active_hours": [987.65],
        "calibration": SensorCalibration,
        "door_line": 987.65,
        "generation": 987.65,
        "in_direction": 123.45,
        "last_heartbeat": 987,
        "orientation": [987.65],
        "effective_field_of_view": 987.65,
        "field_of_view": 987.65,
        "coordinates": [123.45],
        "color": [987.65],
        "algo_config": AlgoConfig,
        "config": SensorConfig,
        "last_battery_change_date": "10:15:30Z",
        "next_battery_change_date": "10:15:30Z"
      }
    ]
  }
}

deleteZones

Description

Delete multiple Zone entities

Response

Returns [ZoneDetails!]

Arguments
Name Description
ids - [String!] A list of Zone IDs to delete

Example

Query
mutation deleteZones($ids: [String!]) {
  deleteZones(ids: $ids) {
    client_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    zone_type
    zone_id
    name
    floor_id
    room_id
    coordinates
    rotation
    color
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    tags
    type
  }
}
Variables
{"ids": ["abc123"]}
Response
{
  "data": {
    "deleteZones": [
      {
        "client_id": "abc123",
        "metadata": MetaData,
        "zone_type": "xyz789",
        "zone_id": "abc123",
        "name": "xyz789",
        "floor_id": "abc123",
        "room_id": "xyz789",
        "coordinates": [123.45],
        "rotation": 987.65,
        "color": [987.65],
        "area": Area,
        "capacity": Capacity,
        "tags": ["abc123"],
        "type": "xyz789"
      }
    ]
  }
}

updateFixtures

Description

Update multiple Fixture entities

Response

Returns [FixtureDetails!]

Arguments
Name Description
fixtures - [UpdateFixtureInput!]! A list of UpdateFixtureInput objects containing the information for updating existing Fixture entities

Example

Query
mutation updateFixtures($fixtures: [UpdateFixtureInput!]!) {
  updateFixtures(fixtures: $fixtures) {
    client_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    auto_calibrated_at
    fixture_type
    fixture_id
    name
    floor_id
    center
    rotation
    scale
    type
  }
}
Variables
{"fixtures": [UpdateFixtureInput]}
Response
{
  "data": {
    "updateFixtures": [
      {
        "client_id": "abc123",
        "metadata": MetaData,
        "auto_calibrated_at": 123,
        "fixture_type": "xyz789",
        "fixture_id": "4",
        "name": "xyz789",
        "floor_id": "abc123",
        "center": [987.65],
        "rotation": 123.45,
        "scale": [987.65],
        "type": "xyz789"
      }
    ]
  }
}

updateFloorplans

Description

Mutation to update floor plans

Response

Returns [FloorPlan!]

Arguments
Name Description
floor_plans - [UpdateFloorPlanInput!] An array of UpdateFloorPlanInput objects. Each object represents the updated details of a floor plan

Example

Query
mutation updateFloorplans($floor_plans: [UpdateFloorPlanInput!]) {
  updateFloorplans(floor_plans: $floor_plans) {
    floor_plan_id
    coordinates
    name
    url
  }
}
Variables
{"floor_plans": [UpdateFloorPlanInput]}
Response
{
  "data": {
    "updateFloorplans": [
      {
        "floor_plan_id": "xyz789",
        "coordinates": [123.45],
        "name": "abc123",
        "url": "abc123"
      }
    ]
  }
}

updateFloors

Description

Update multiple Floor entities

Response

Returns [FloorDetails!]

Arguments
Name Description
floors - [UpdateFloorInput!]! A list of UpdateFloorInput objects containing the information for updating existing Floor entities

Example

Query
mutation updateFloors($floors: [UpdateFloorInput!]!) {
  updateFloors(floors: $floors) {
    metadata {
      created_at
      updated_at
      deleted_at
    }
    client_id
    floor_id
    name
    address
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    installation_date
    occupancy_mode
    timezone
    installation_status
  }
}
Variables
{"floors": [UpdateFloorInput]}
Response
{
  "data": {
    "updateFloors": [
      {
        "metadata": MetaData,
        "client_id": "abc123",
        "floor_id": "xyz789",
        "name": "abc123",
        "address": "abc123",
        "area": Area,
        "capacity": Capacity,
        "installation_date": 987,
        "occupancy_mode": "xyz789",
        "timezone": "abc123",
        "installation_status": "NOT_INSTALLED"
      }
    ]
  }
}

updateHives

Description

Update multiple Hive entities

Response

Returns [HiveDetails!]

Arguments
Name Description
hives - [UpdateHiveInput!]! A list of UpdateHiveInput objects containing the information for updating existing Hive entities

Example

Query
mutation updateHives($hives: [UpdateHiveInput!]!) {
  updateHives(hives: $hives) {
    floor_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    client_id
    hive_id
    serial_number
    space_id
    broker {
      hive_serial
      address
      username
      password
      port
      tls {
        ...CertificateFragment
      }
    }
    topics {
      command
      detections
      raw
      compressed
    }
    is_online
    activated_at
    net_path_stability
    coordinates
    name
    color
    sensor_ids
    room_id
    config {
      hive_serial
      heartbeat_interval
      on_change_interval
      baudrate
      modem_device
      timezone
      mqtt {
        ...HiveMQTTConfigFragment
      }
      frame_rate {
        ...HiveFrameRateConfigFragment
      }
      required_bandwidth {
        ...HiveRequiredBandwidthConfigFragment
      }
      auto_sensor_fw_updates_enabled
    }
    hive_version
    hive_type
  }
}
Variables
{"hives": [UpdateHiveInput]}
Response
{
  "data": {
    "updateHives": [
      {
        "floor_id": "abc123",
        "metadata": MetaData,
        "client_id": "abc123",
        "hive_id": 4,
        "serial_number": "abc123",
        "space_id": "abc123",
        "broker": HiveBroker,
        "topics": HiveTopics,
        "is_online": false,
        "activated_at": 987,
        "net_path_stability": 987.65,
        "coordinates": [123.45],
        "name": "abc123",
        "color": [123.45],
        "sensor_ids": ["abc123"],
        "room_id": "xyz789",
        "config": HiveConfig,
        "hive_version": "xyz789",
        "hive_type": "abc123"
      }
    ]
  }
}

updateHivesHeartbeats

Description

Update heartbeats for multiple Hive entities. INTERNAL_USE_ONLY

Response

Returns a Boolean!

Arguments
Name Description
hive_heartbeats - [UpdateHiveHeartbeatInput!] An array of UpdateHiveHeartbeatInput objects. Each input is one hive's heartbeat

Example

Query
mutation updateHivesHeartbeats($hive_heartbeats: [UpdateHiveHeartbeatInput!]) {
  updateHivesHeartbeats(hive_heartbeats: $hive_heartbeats)
}
Variables
{"hive_heartbeats": [UpdateHiveHeartbeatInput]}
Response
{"data": {"updateHivesHeartbeats": true}}

updateRooms

Description

Update multiple Room entities

Response

Returns [RoomDetails!]

Arguments
Name Description
rooms - [UpdateRoomInput!]! A list of UpdateRoomInput objects containing the information for updating existing Room entities

Example

Query
mutation updateRooms($rooms: [UpdateRoomInput!]!) {
  updateRooms(rooms: $rooms) {
    client_id
    floor_id
    room_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    name
    room_type
    coordinates
    rotation
    color
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    tags
    auto_calibrated_at
  }
}
Variables
{"rooms": [UpdateRoomInput]}
Response
{
  "data": {
    "updateRooms": [
      {
        "client_id": "xyz789",
        "floor_id": "xyz789",
        "room_id": 4,
        "metadata": MetaData,
        "name": "abc123",
        "room_type": "xyz789",
        "coordinates": [123.45],
        "rotation": 987.65,
        "color": [123.45],
        "area": Area,
        "capacity": Capacity,
        "tags": ["xyz789"],
        "auto_calibrated_at": 987
      }
    ]
  }
}

updateSensors

Description

Update multiple Sensor entities

Response

Returns [SensorDetails!]

Arguments
Name Description
sensors - [UpdateSensorInput!]! A list of UpdateSensorInput objects containing the information for updating existing Sensor entities

Example

Query
mutation updateSensors($sensors: [UpdateSensorInput!]!) {
  updateSensors(sensors: $sensors) {
    client_id
    floor_id
    room_id
    hive_id
    hive_serial
    zone_ids
    sensor_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    name
    mac_address
    mode
    model
    sensitivity
    center
    height
    is_entrance
    is_online
    parallel_to_door
    active_hours
    calibration {
      auto_calibrated_at
      auto_calibrate_start
      auto_calibrate_end
      auto_calibrate_person
    }
    door_line
    generation
    in_direction
    last_heartbeat
    orientation
    effective_field_of_view
    field_of_view
    coordinates
    color
    algo_config {
      cold_person_detection
      blacklist
      sunlight
      shortened_doorline
    }
    config {
      deployment_config {
        ...SensorDeploymentConfigFragment
      }
      current_firmware_version
      config_firmware_version
      force_90_fov
    }
    last_battery_change_date
    next_battery_change_date
  }
}
Variables
{"sensors": [UpdateSensorInput]}
Response
{
  "data": {
    "updateSensors": [
      {
        "client_id": "abc123",
        "floor_id": "xyz789",
        "room_id": "abc123",
        "hive_id": "xyz789",
        "hive_serial": "xyz789",
        "zone_ids": ["xyz789"],
        "sensor_id": "4",
        "metadata": MetaData,
        "name": "abc123",
        "mac_address": "xyz789",
        "mode": "abc123",
        "model": "abc123",
        "sensitivity": 987.65,
        "center": [123.45],
        "height": 123.45,
        "is_entrance": true,
        "is_online": false,
        "parallel_to_door": true,
        "active_hours": [123.45],
        "calibration": SensorCalibration,
        "door_line": 123.45,
        "generation": 123.45,
        "in_direction": 987.65,
        "last_heartbeat": 987,
        "orientation": [987.65],
        "effective_field_of_view": 123.45,
        "field_of_view": 987.65,
        "coordinates": [987.65],
        "color": [123.45],
        "algo_config": AlgoConfig,
        "config": SensorConfig,
        "last_battery_change_date": "10:15:30Z",
        "next_battery_change_date": "10:15:30Z"
      }
    ]
  }
}

updateSensorsHeartbeats

Description

Update heartbeats for multiple Sensor entities. INTERNAL_USE_ONLY

Response

Returns a Boolean!

Arguments
Name Description
mac_addresses - [String!] A list of MAC addresses for the Sensors to update heartbeats

Example

Query
mutation updateSensorsHeartbeats($mac_addresses: [String!]) {
  updateSensorsHeartbeats(mac_addresses: $mac_addresses)
}
Variables
{"mac_addresses": ["xyz789"]}
Response
{"data": {"updateSensorsHeartbeats": true}}

updateZones

Description

Update multiple Zone entities

Response

Returns [ZoneDetails!]

Arguments
Name Description
zones - [UpdateZoneInput!]! A list of UpdateZoneInput objects containing the information for updating existing Zone entities

Example

Query
mutation updateZones($zones: [UpdateZoneInput!]!) {
  updateZones(zones: $zones) {
    client_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    zone_type
    zone_id
    name
    floor_id
    room_id
    coordinates
    rotation
    color
    area {
      value
      unit
    }
    capacity {
      mid
      max
    }
    tags
    type
  }
}
Variables
{"zones": [UpdateZoneInput]}
Response
{
  "data": {
    "updateZones": [
      {
        "client_id": "abc123",
        "metadata": MetaData,
        "zone_type": "abc123",
        "zone_id": "xyz789",
        "name": "abc123",
        "floor_id": "abc123",
        "room_id": "abc123",
        "coordinates": [123.45],
        "rotation": 123.45,
        "color": [987.65],
        "area": Area,
        "capacity": Capacity,
        "tags": ["xyz789"],
        "type": "abc123"
      }
    ]
  }
}

upsertSensors

Description

Upsert multiple Sensor entities

Response

Returns [SensorDetails!]

Arguments
Name Description
sensors - [CreateSensorInput!]! A list of CreateSensorInput objects containing the information for upserting Sensor entities

Example

Query
mutation upsertSensors($sensors: [CreateSensorInput!]!) {
  upsertSensors(sensors: $sensors) {
    client_id
    floor_id
    room_id
    hive_id
    hive_serial
    zone_ids
    sensor_id
    metadata {
      created_at
      updated_at
      deleted_at
    }
    name
    mac_address
    mode
    model
    sensitivity
    center
    height
    is_entrance
    is_online
    parallel_to_door
    active_hours
    calibration {
      auto_calibrated_at
      auto_calibrate_start
      auto_calibrate_end
      auto_calibrate_person
    }
    door_line
    generation
    in_direction
    last_heartbeat
    orientation
    effective_field_of_view
    field_of_view
    coordinates
    color
    algo_config {
      cold_person_detection
      blacklist
      sunlight
      shortened_doorline
    }
    config {
      deployment_config {
        ...SensorDeploymentConfigFragment
      }
      current_firmware_version
      config_firmware_version
      force_90_fov
    }
    last_battery_change_date
    next_battery_change_date
  }
}
Variables
{"sensors": [CreateSensorInput]}
Response
{
  "data": {
    "upsertSensors": [
      {
        "client_id": "abc123",
        "floor_id": "abc123",
        "room_id": "abc123",
        "hive_id": "abc123",
        "hive_serial": "abc123",
        "zone_ids": ["xyz789"],
        "sensor_id": 4,
        "metadata": MetaData,
        "name": "abc123",
        "mac_address": "abc123",
        "mode": "xyz789",
        "model": "xyz789",
        "sensitivity": 123.45,
        "center": [987.65],
        "height": 987.65,
        "is_entrance": false,
        "is_online": true,
        "parallel_to_door": true,
        "active_hours": [123.45],
        "calibration": SensorCalibration,
        "door_line": 123.45,
        "generation": 987.65,
        "in_direction": 987.65,
        "last_heartbeat": 123,
        "orientation": [987.65],
        "effective_field_of_view": 987.65,
        "field_of_view": 123.45,
        "coordinates": [987.65],
        "color": [987.65],
        "algo_config": AlgoConfig,
        "config": SensorConfig,
        "last_battery_change_date": "10:15:30Z",
        "next_battery_change_date": "10:15:30Z"
      }
    ]
  }
}

Types

AddressInput

Description

An input type for an address

Fields
Input Field Description
address1 - String The first line of the address
address2 - String The second line of the address (optional)
city - String The city where the address is located
state - String The state where the address is located (optional)
zip - String The zip or postal code of the address
country - String The country where the address is located
Example
{
  "address1": "abc123",
  "address2": "abc123",
  "city": "abc123",
  "state": "xyz789",
  "zip": "abc123",
  "country": "abc123"
}

AlgoConfig

Description

The type representing the algorithm configuration settings for a sensor

Fields
Field Name Description
cold_person_detection - Boolean! Indicates if cold person detection is enabled
blacklist - [Float!] A list of blacklisted coordinate areas for the sensor
sunlight - Boolean! Indicates if sunlight detection is enabled
shortened_doorline - [Float!] Shortened doorline setting values
Example
{
  "cold_person_detection": false,
  "blacklist": [123.45],
  "sunlight": false,
  "shortened_doorline": [987.65]
}

AlgoConfigInput

Description

The input object used for updating sensor algorithm configuration settings

Fields
Input Field Description
blacklist - [Float!] A list of blacklisted coordinate areas for the sensor (optional)
cold_person_detection - Boolean Indicates if cold person detection is enabled (optional)
shortened_doorline - [Float!] Shortened doorline setting values (optional)
sunlight - Boolean Indicates if sunlight detection is enabled (optional)
Example
{
  "blacklist": [123.45],
  "cold_person_detection": true,
  "shortened_doorline": [123.45],
  "sunlight": true
}

Area

Description

A type representing the area of an entity

Fields
Field Name Description
value - Float! The area value
unit - String! The unit of measurement for the area
Example
{"value": 987.65, "unit": "abc123"}

AreaInput

Description

An input type for specifying an area

Fields
Input Field Description
area - Float The area value
area_unit - String The unit of measurement for the area
Example
{"area": 123.45, "area_unit": "xyz789"}

Boolean

Description

The Boolean scalar type represents true or false

Bucket

Description

A type representing a bucket in a database

Fields
Field Name Description
database - String! The name of the database
bucket - String! The name of the bucket
Example
{
  "database": "abc123",
  "bucket": "abc123"
}

Capacity

Description

A type representing the capacity of an entity

Fields
Field Name Description
mid - Float! The mid capacity value
max - Float! The maximum capacity value
Example
{"mid": 123.45, "max": 987.65}

CapacityInput

Description

An input type for specifying a capacity

Fields
Input Field Description
capacity - Float The maximum capacity value
mid_capacity - Float The mid capacity value
Example
{"capacity": 987.65, "mid_capacity": 987.65}

Certificate

Description

A type representing a certificate with its CA, certificate, and key

Fields
Field Name Description
ca - String! The Certificate Authority (CA) for the certificate
certificate - String! The certificate
key - String! The private key associated with the certificate
Example
{
  "ca": "abc123",
  "certificate": "abc123",
  "key": "abc123"
}

Client

Description

A Client represents a registered client in the Butlr system with their associated client ID and database. INTERNAL_USE_ONLY

Fields
Field Name Description
client_id - String! The unique identifier for the client
database - String! The database associated with the client
Example
{
  "client_id": "xyz789",
  "database": "abc123"
}

Clients

Description

A wrapper for a list of Client objects

Fields
Field Name Description
data - [Client!] The list of Client objects
Example
{"data": [Client]}

ConnectionHealthCodeHive

Description

Represents a specific connection health code for a hive

Fields
Field Name Description
code - ConnectionHealthCodeStatusHive! The type of connection health code
description - String! A description of the connection health issue
last_timestamp - Int The timestamp of the last recorded event related to the code
compared_timestamp - Int! The timestamp of the last comparison for the code
is_error - Boolean! Indicates whether the code represents an error
Example
{
  "code": "NO_HIVE_STREAMING",
  "description": "abc123",
  "last_timestamp": 123,
  "compared_timestamp": 987,
  "is_error": false
}

ConnectionHealthCodeSensor

Description

Represents a specific connection health code for a sensor

Fields
Field Name Description
code - ConnectionHealthCodeStatusSensor! The type of connection health code
description - String! A description of the connection health issue
last_timestamp - Int The timestamp of the last recorded event related to the code
compared_timestamp - Int! The timestamp of the last comparison for the code
is_error - Boolean! Indicates whether the code represents an error
Example
{
  "code": "NO_HIVE_STREAMING",
  "description": "xyz789",
  "last_timestamp": 987,
  "compared_timestamp": 123,
  "is_error": true
}

ConnectionHealthCodeStatusHive

Description

The possible types of connection health codes for a hive

Values
Enum Value Description

NO_HIVE_STREAMING

The hive is not streaming data

NO_HIVE_HEARTBEAT

The hive has not sent a heartbeat recently

HIVE_STREAMING

The hive is streaming data

HIVE_HEARTBEAT

The hive has sent a heartbeat recently
Example
"NO_HIVE_STREAMING"

ConnectionHealthCodeStatusSensor

Description

The possible types of connection health codes for a sensor

Values
Enum Value Description

NO_HIVE_STREAMING

The hive is not streaming data

NO_HIVE_HEARTBEAT

The hive has not sent a heartbeat recently

NO_SENSOR_STREAMING

The sensor is not streaming data

NO_SENSOR_HEARTBEAT

The sensor has not sent a heartbeat recently

SENSOR_STREAMING

The sensor is streaming data

SENSOR_HEARTBEAT

The sensor has sent a heartbeat recently

HIVE_STREAMING

The hive is streaming data

HIVE_HEARTBEAT

The hive has sent a heartbeat recently
Example
"NO_HIVE_STREAMING"

ConnectionHealthHive

Description

Represents a hive that provides connection health data

Fields
Field Name Description
status - ConnectionHealthStatus! The overall health status of the hive's connection
codes - [ConnectionHealthCodeHive!]! A list of detailed connection health codes for the hive
Example
{
  "status": "NOT_CONNECTED",
  "codes": [ConnectionHealthCodeHive]
}

ConnectionHealthSensor

Description

Represents a sensor that provides connection health data

Fields
Field Name Description
status - ConnectionHealthStatus! The overall health status of the sensor's connection to the hive
codes - [ConnectionHealthCodeSensor!]! A list of detailed connection health codes for the sensor
Example
{
  "status": "NOT_CONNECTED",
  "codes": [ConnectionHealthCodeSensor]
}

ConnectionHealthStatus

Description

The overall health status of a connection

Values
Enum Value Description

NOT_CONNECTED

The connection is not connected

PARTIALLY_CONNECTED

The connection is partially connected, meaning it may be experiencing some issues

CONNECTED

The connection is fully connected and operational
Example
"NOT_CONNECTED"

CreateFixtureInput

Description

Input type for creating a new fixture

Fields
Input Field Description
floor_id - String! The identifier for the floor where the fixture will be located
center - [Float!] The center coordinates (x, y, z) of the new fixture
rotation - Float! The rotation of the new fixture in degrees
scale - [Float!] The scale dimensions (x, y, z) of the new fixture
type - String! The type of the new fixture
auto_calibrated_at - Int! The timestamp when the fixture was last auto-calibrated
fixture_type - String! The type of the new fixture
Example
{
  "floor_id": "xyz789",
  "center": [123.45],
  "rotation": 123.45,
  "scale": [987.65],
  "type": "xyz789",
  "auto_calibrated_at": 987,
  "fixture_type": "xyz789"
}

CreateFloorInput

Description

An input type for creating a new floor

Fields
Input Field Description
name - String! The name of the floor
address - AddressInput The address of the building
area - AreaInput The area information of the floor
capacity - CapacityInput The capacity information of the floor
installation_date - Int The installation date timestamp of the floor
timezone - String The timezone of the floor location
Example
{
  "name": "abc123",
  "address": AddressInput,
  "area": AreaInput,
  "capacity": CapacityInput,
  "installation_date": 987,
  "timezone": "xyz789"
}

CreateHiveInput

Description

Input for creating a new Hive entity

Fields
Input Field Description
serial_number - String! Serial number of the Hive
floor_id - String Floor ID where the Hive will be located
room_id - String Room ID where the Hive will be located
name - String Name of the Hive
model - String Model of the Hive
broker - HiveBrokerInput MQTT broker configuration for the Hive
topics - HiveTopicsInput MQTT topics configuration for the Hive
coordinates - [Float!] Coordinates of the Hive in the room
color - [Float!] Color of the Hive
config - HiveConfigInput Configuration settings for the Hive
hive_version - String Hive software version
hive_type - String Type of the Hive device
Example
{
  "serial_number": "xyz789",
  "floor_id": "abc123",
  "room_id": "abc123",
  "name": "xyz789",
  "model": "abc123",
  "broker": HiveBrokerInput,
  "topics": HiveTopicsInput,
  "coordinates": [123.45],
  "color": [987.65],
  "config": HiveConfigInput,
  "hive_version": "abc123",
  "hive_type": "abc123"
}

CreateRoomInput

Description

Input for creating a Room entity

Fields
Input Field Description
room_id - ID Provide your own ID for this room to make this operation idempotent. It will re-create the room if it already exists, overwriting any provided values
floor_id - String! The unique identifier of the associated floor
name - String! The display name of the room
room_type - String The type of room (e.g., 'office', 'conference')
coordinates - [Float!] The coordinates of the room's vertices
color - [Float!] The RGBA color associated with the room
area - AreaInput The area of the room
capacity - CapacityInput The room's capacity information
rotation - Float The new rotation of the room (in degrees)
Example
{
  "room_id": 4,
  "floor_id": "abc123",
  "name": "abc123",
  "room_type": "xyz789",
  "coordinates": [123.45],
  "color": [987.65],
  "area": AreaInput,
  "capacity": CapacityInput,
  "rotation": 123.45
}

CreateSensorInput

Description

The input object used for creating a new sensor with various attributes

Fields
Input Field Description
sensor_id - ID Provide your own ID for this room to make this operation idempotent. It will re-create the sensor if it already exists, overwriting any provided values
floor_id - String The unique identifier of the floor that will contain the sensor (optional)
room_id - String The unique identifier of the room that will contain the sensor (optional)
hive_id - String The unique identifier of the hive that the sensor will belong to (optional)
hive_serial - String The serial number of the hive that the sensor will belong to (optional)
name - String The name of the sensor (optional)
mac_address - String! The MAC address of the sensor
mode - String The operational mode of the sensor (optional)
model - String The model of the sensor (optional)
sensitivity - Float The sensitivity level of the sensor (optional)
center - [Float!] The center coordinates of the sensor's coverage area
height - Float The height of the sensor (optional)
is_entrance - Boolean Indicates if the sensor is located at an entrance (optional)
parallel_to_door - Boolean Indicates if the sensor is parallel to a door (optional)
active_hours - [Float!] The active hours for the sensor
calibration - SensorCalibrationInput The calibration information of the sensor (optional)
door_line - Float The door line distance value for the sensor (optional)
generation - Float The generation of the sensor (optional)
in_direction - Float The direction value for the sensor's detection area (optional)
orientation - [Float!] The orientation of the sensor (optional)
field_of_view - Float The field of view value for the sensor (optional)
color - [Float!] The color of the sensor (optional)
algo_config - AlgoConfigInput The algorithm configuration settings for the sensor (optional)
config - SensorConfigInput The configuration settings for the sensor (optional)
Example
{
  "sensor_id": 4,
  "floor_id": "xyz789",
  "room_id": "abc123",
  "hive_id": "xyz789",
  "hive_serial": "abc123",
  "name": "abc123",
  "mac_address": "abc123",
  "mode": "abc123",
  "model": "xyz789",
  "sensitivity": 123.45,
  "center": [123.45],
  "height": 123.45,
  "is_entrance": false,
  "parallel_to_door": false,
  "active_hours": [987.65],
  "calibration": SensorCalibrationInput,
  "door_line": 123.45,
  "generation": 987.65,
  "in_direction": 987.65,
  "orientation": [987.65],
  "field_of_view": 123.45,
  "color": [987.65],
  "algo_config": AlgoConfigInput,
  "config": SensorConfigInput
}

CreateZoneInput

Description

The input type required to create a new zone

Fields
Input Field Description
zone_id - ID Provide your own ID for this room to make this operation idempotent. It will re-create the room if it already exists, overwriting any provided values
floor_id - String! The unique identifier of the floor that will contain the zone
room_id - String The unique identifier of the room that will contain the zone (optional)
zone_type - String The type of the zone (e.g., 'office', 'conference room', etc.)
name - String! The name of the zone
coordinates - [Float!] The coordinates of the zone's location within the space
rotation - Float The new rotation of the zone (in degrees)
color - [Float!] The color of the zone
capacity - CapacityInput The capacity information of the zone
Example
{
  "zone_id": 4,
  "floor_id": "abc123",
  "room_id": "xyz789",
  "zone_type": "xyz789",
  "name": "abc123",
  "coordinates": [123.45],
  "rotation": 123.45,
  "color": [123.45],
  "capacity": CapacityInput
}

DEPLOYMENTSTATUS

Description

An enum representing the possible deployment statuses of a sensor device

Values
Enum Value Description

UNDEFINED

The deployment status is undefined

PENDING

The deployment of the sensor device is pending

IN_PROGRESS

The deployment of the sensor device is in progress

COMPLETED

The deployment of the sensor device has been completed successfully

FAILED

The deployment of the sensor device has failed

SENSOR_NOT_FOUND

The sensor device could not be found

KILLED

The deployment of the sensor device was terminated
Example
"UNDEFINED"

DeleteFloorPlanInput

Description

An input type for deleting the floor plan

Fields
Input Field Description
floor_id - String! The unique identifier of the floor
floor_plan_id - String! The unique identifier for the floor plan associated with the floor
Example
{
  "floor_id": "xyz789",
  "floor_plan_id": "abc123"
}

Fixture

Description

A Fixture represents a furniture or piece of equipment within a room, including its associated data and metadata

Fields
Field Name Description
client_id - String! The unique identifier for the client associated with the fixture
floor_id - String! The identifier for the floor where the fixture is located
room_id - String! The identifier for the room where the fixture is located
fixture_id - String! The unique identifier for the fixture
auto_calibrated_at - Int! The timestamp when the fixture was last auto-calibrated
center - [Float!] The center coordinates (x, y, z) of the fixture
scale - [Float!] The scale dimensions (x, y, z) of the fixture
fixture_type - String! The type of the fixture
rotation - Float! The rotation of the fixture in degrees
metadata - MetaData! The metadata associated with the fixture
Example
{
  "client_id": "xyz789",
  "floor_id": "xyz789",
  "room_id": "abc123",
  "fixture_id": "xyz789",
  "auto_calibrated_at": 987,
  "center": [123.45],
  "scale": [987.65],
  "fixture_type": "abc123",
  "rotation": 123.45,
  "metadata": MetaData
}

FixtureDetails

Description

A type representing the details of a specific fixture

Fields
Field Name Description
client_id - String! The unique identifier for the client associated with the fixture
metadata - MetaData! The metadata associated with the fixture
auto_calibrated_at - Int! The timestamp when the fixture was last auto-calibrated
fixture_type - String! The type of the fixture
fixture_id - ID! The unique identifier for the fixture
name - String! The name of the fixture
floor_id - String! The identifier for the floor where the fixture is located
center - [Float!] The center coordinates (x, y, z) of the fixture
rotation - Float! The rotation of the fixture in degrees
scale - [Float!] The scale dimensions (x, y, z) of the fixture
type - String! The type of the fixture
Example
{
  "client_id": "xyz789",
  "metadata": MetaData,
  "auto_calibrated_at": 123,
  "fixture_type": "xyz789",
  "fixture_id": "4",
  "name": "abc123",
  "floor_id": "abc123",
  "center": [123.45],
  "rotation": 987.65,
  "scale": [987.65],
  "type": "abc123"
}

Fixtures

Description

A wrapper for a list of Fixture objects

Fields
Field Name Description
data - [Fixture!] The list of Fixture objects
Example
{"data": [Fixture]}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754

Example
987.65

Floor

Description

A type representing a floor in a building

Fields
Field Name Description
client_id - String! The unique identifier for the client associated with the floor
floor_id - ID! The unique identifier for the floor
metadata - MetaData! The metadata associated with the floor
name - String! The name of the floor
address - String! The address of the building
timezone - String! The timezone of the floor location
occupancy_mode - String! The occupancy mode for the floor
area - Area! The area information of the floor
capacity - Capacity! The capacity information of the floor
installation_date - Int! The installation date timestamp of the floor
installation_status - InstallationStatus! The installation status of the floor
sensors - [Sensor!] The list of sensors associated with the floor
hives - [Hive!] The list of hives associated with the floor
rooms - [Room!] The list of rooms associated with the floor
Arguments
ids - [String!]

Optionally filter by room IDs

zones - [Zone!] The list of zones associated with the floor
Arguments
ids - [String!]

Optionally filter by zone IDs

fixtures - [Fixture!] The list of fixtures associated with the floor
Arguments
ids - [String!]

Optionally filter by fixture IDs

floor_plans - [FloorPlan!] The list of floor plans associated with the floor
floorNumber - Int The floor number of the floor. Floor numbers are unique among floors in one building
Example
{
  "client_id": "xyz789",
  "floor_id": "4",
  "metadata": MetaData,
  "name": "xyz789",
  "address": "xyz789",
  "timezone": "abc123",
  "occupancy_mode": "abc123",
  "area": Area,
  "capacity": Capacity,
  "installation_date": 123,
  "installation_status": "NOT_INSTALLED",
  "sensors": [Sensor],
  "hives": [Hive],
  "rooms": [Room],
  "zones": [Zone],
  "fixtures": [Fixture],
  "floor_plans": [FloorPlan],
  "floorNumber": 123
}

FloorDetails

Description

A type representing detailed information about a floor in a building

Fields
Field Name Description
metadata - MetaData! The metadata associated with the floor
client_id - String! The unique identifier for the client associated with the floor
floor_id - String! The unique identifier for the floor
name - String! The name of the floor
address - String! The address of the building
area - Area! The area information of the floor
capacity - Capacity! The capacity information of the floor
installation_date - Int! The installation date timestamp of the floor
occupancy_mode - String! The occupancy mode for the floor
timezone - String! The timezone of the floor location
installation_status - InstallationStatus! The installation status of the floor
Example
{
  "metadata": MetaData,
  "client_id": "abc123",
  "floor_id": "xyz789",
  "name": "xyz789",
  "address": "xyz789",
  "area": Area,
  "capacity": Capacity,
  "installation_date": 123,
  "occupancy_mode": "abc123",
  "timezone": "xyz789",
  "installation_status": "NOT_INSTALLED"
}

FloorPlan

Description

Type representing a floor plan

Fields
Field Name Description
floor_plan_id - String! The unique identifier of the floor plan
coordinates - [Float!] The coordinates for the floor plan
name - String! The name of the floor plan
url - String! The URL for accessing the floor plan
Example
{
  "floor_plan_id": "abc123",
  "coordinates": [987.65],
  "name": "abc123",
  "url": "xyz789"
}

FloorPlanIDs

Description

A type representing the floor plan associated with a floor

Fields
Field Name Description
floor_id - String! The unique identifier of the floor
floor_plan_id - String! The unique identifier for the floor plan associated with the floor
Example
{
  "floor_id": "abc123",
  "floor_plan_id": "xyz789"
}

Floors

Description

A wrapper for a list of floors

Fields
Field Name Description
data - [Floor!] The list of floors
Example
{"data": [Floor]}

Hive

Description

Hive entity that represents a device on the floor of a building

Fields
Field Name Description
client_id - String! Client ID associated with the Hive
floor_id - String! Floor ID where the Hive is located
floor - Floor Floor entity associated with the Hive
room_id - String! Room ID where the Hive is located
room - Room Room entity associated with the Hive
hive_id - ID! Unique identifier of the Hive
metadata - MetaData! MetaData associated with the Hive
serial_number - String! Serial number of the Hive
hive_version - String! Hive software version
hive_type - String! Type of the Hive device
last_heartbeat - Int Timestamp of the last heartbeat received from the Hive
last_raw_message - Int Timestamp of the last raw message received from the Hive
last_compressed_message - Int Timestamp of the last compressed message received from the Hive
last_occupancy_message - Int Timestamp of the last occupancy message received from the Hive
last_detection_message - Int Timestamp of the last detection message received from the Hive
last_network_id - Int Last network id received from the Hive
is_streaming - Boolean! Indicates if the sensor is streaming
broker - HiveBroker MQTT broker configuration for the Hive
topics - HiveTopics MQTT topics configuration for the Hive
activated_at - Int! Timestamp when the Hive was activated
is_online - Boolean! Hive online status
net_path_stability - Float! Network path stability of the Hive
coordinates - [Float!]! Coordinates of the Hive in the room
name - String! Name of the Hive
config - HiveConfig Configuration settings of the Hive
connection_health - ConnectionHealthHive! The connection health of the hive
sensors - [Sensor!] List of sensors associated with the Hive. Can be filtered by providing a list of sensor IDs
Arguments
ids - [String!]

List of sensor IDs to filter the sensors by

Example
{
  "client_id": "abc123",
  "floor_id": "abc123",
  "floor": Floor,
  "room_id": "xyz789",
  "room": Room,
  "hive_id": 4,
  "metadata": MetaData,
  "serial_number": "xyz789",
  "hive_version": "xyz789",
  "hive_type": "xyz789",
  "last_heartbeat": 123,
  "last_raw_message": 987,
  "last_compressed_message": 987,
  "last_occupancy_message": 123,
  "last_detection_message": 987,
  "last_network_id": 987,
  "is_streaming": true,
  "broker": HiveBroker,
  "topics": HiveTopics,
  "activated_at": 987,
  "is_online": true,
  "net_path_stability": 123.45,
  "coordinates": [987.65],
  "name": "xyz789",
  "config": HiveConfig,
  "connection_health": ConnectionHealthHive,
  "sensors": [Sensor]
}

HiveBroker

Description

Hive MQTT broker configuration settings

Fields
Field Name Description
hive_serial - String! Hive serial number
address - String! MQTT broker address
username - String! MQTT broker username
password - String! MQTT broker password
port - Int! MQTT broker port number
tls - Certificate TLS certificate for a secure MQTT connection
Example
{
  "hive_serial": "xyz789",
  "address": "abc123",
  "username": "xyz789",
  "password": "xyz789",
  "port": 123,
  "tls": Certificate
}

HiveBrokerInput

Description

Input for updating a Hive's MQTT broker configuration

Fields
Input Field Description
address - String MQTT broker address
username - String MQTT broker username
password - String MQTT broker password
port - Int MQTT broker port number
Example
{
  "address": "abc123",
  "username": "abc123",
  "password": "abc123",
  "port": 123
}

HiveCompressionConfig

Description

Represents the compression configuration settings for a Hive

Fields
Field Name Description
size - Int! The size of the compressed data
max_time_interval - Int! The maximum time interval for compression in seconds
Example
{"size": 987, "max_time_interval": 987}

HiveCompressionConfigInput

Description

Input type for updating Hive MQTT message compression configuration settings

Fields
Input Field Description
size - Int The size of the compression buffer (in bytes)
max_time_interval - Int The maximum time interval between compressed MQTT messages (in seconds)
Example
{"size": 987, "max_time_interval": 987}

HiveConfig

Description

Represents the configuration settings for a Hive

Fields
Field Name Description
hive_serial - String! The serial number of the Hive
heartbeat_interval - Int! The interval between heartbeats in seconds
on_change_interval - Int! The interval between changes in seconds
baudrate - Int! The baud rate for communication
modem_device - String! The modem device identifier
timezone - String! The timezone of the Hive
mqtt - HiveMQTTConfig! The MQTT configuration settings for the Hive
frame_rate - HiveFrameRateConfig! The frame rate configuration settings for the Hive
required_bandwidth - HiveRequiredBandwidthConfig! The required bandwidth configuration settings for the Hive
auto_sensor_fw_updates_enabled - Boolean! When enabled, a hive will be able to auto-update it's attached sensors during inactive hours. When disabled, a hive will not auto-update it's attached sensors
Example
{
  "hive_serial": "xyz789",
  "heartbeat_interval": 987,
  "on_change_interval": 123,
  "baudrate": 987,
  "modem_device": "abc123",
  "timezone": "xyz789",
  "mqtt": HiveMQTTConfig,
  "frame_rate": HiveFrameRateConfig,
  "required_bandwidth": HiveRequiredBandwidthConfig,
  "auto_sensor_fw_updates_enabled": false
}

HiveConfigInput

Description

Input type for updating Hive configuration settings

Fields
Input Field Description
heartbeat_interval - Int The interval between consecutive heartbeats sent by the Hive (in seconds)
on_change_interval - Int The interval between sending data updates to the server when there is a change (in seconds)
baudrate - Int The baud rate for the Hive's serial communication
modem_device - String The modem device identifier for the Hive
timezone - String The timezone string for the Hive
mqtt - HiveMQTTConfigInput The input object for updating Hive MQTT configuration settings
frame_rate - HiveFrameRateConfigInput The input object for updating Hive frame rate configuration settings
required_bandwidth - HiveRequiredBandwidthConfigInput The input object for updating Hive required bandwidth configuration settings
auto_sensor_fw_updates_enabled - Boolean When enabled, a hive will be able to auto-update it's attached sensors during inactive hours. When disabled, a hive will not auto-update it's attached sensors
Example
{
  "heartbeat_interval": 987,
  "on_change_interval": 123,
  "baudrate": 123,
  "modem_device": "xyz789",
  "timezone": "abc123",
  "mqtt": HiveMQTTConfigInput,
  "frame_rate": HiveFrameRateConfigInput,
  "required_bandwidth": HiveRequiredBandwidthConfigInput,
  "auto_sensor_fw_updates_enabled": false
}

HiveDetails

Description

Type representing detailed information about a Hive entity

Fields
Field Name Description
floor_id - String! Floor ID where the Hive is located
metadata - MetaData! Metadata associated with the Hive
client_id - String! Client ID associated with the Hive
hive_id - ID! Unique identifier of the Hive
serial_number - String! Serial number of the Hive
space_id - String! Space ID associated with the Hive
broker - HiveBroker! MQTT broker configuration for the Hive
topics - HiveTopics! MQTT topics configuration for the Hive
is_online - Boolean! Online status of the Hive
activated_at - Int! Activation timestamp of the Hive
net_path_stability - Float! Network path stability of the Hive
coordinates - [Float!] Coordinates of the Hive in the room
name - String! Name of the Hive
color - [Float!] Color of the Hive
sensor_ids - [String!] List of sensor IDs associated with the Hive
room_id - String! Room ID where the Hive is located
config - HiveConfig! Configuration settings for the Hive
hive_version - String! Hive software version
hive_type - String! Type of the Hive device
Example
{
  "floor_id": "xyz789",
  "metadata": MetaData,
  "client_id": "xyz789",
  "hive_id": 4,
  "serial_number": "xyz789",
  "space_id": "xyz789",
  "broker": HiveBroker,
  "topics": HiveTopics,
  "is_online": true,
  "activated_at": 123,
  "net_path_stability": 123.45,
  "coordinates": [123.45],
  "name": "xyz789",
  "color": [987.65],
  "sensor_ids": ["xyz789"],
  "room_id": "abc123",
  "config": HiveConfig,
  "hive_version": "abc123",
  "hive_type": "abc123"
}

HiveFrameRateConfig

Description

Represents the frame rate configuration settings for a Hive

Fields
Field Name Description
check_interval - Int! The interval between checks in seconds
monday - String! The frame rate for Monday
tuesday - String! The frame rate for Tuesday
wednesday - String! The frame rate for Wednesday
thursday - String! The frame rate for Thursday
friday - String! The frame rate for Friday
saturday - String! The frame rate for Saturday
sunday - String! The frame rate for Sunday
traffic - String! The frame rate for traffic mode
presence - String! The frame rate for presence mode
sleep - String! The frame rate for sleep mode
repeater - String! The frame rate for repeater mode
Example
{
  "check_interval": 987,
  "monday": "xyz789",
  "tuesday": "xyz789",
  "wednesday": "abc123",
  "thursday": "xyz789",
  "friday": "xyz789",
  "saturday": "xyz789",
  "sunday": "xyz789",
  "traffic": "abc123",
  "presence": "abc123",
  "sleep": "abc123",
  "repeater": "abc123"
}

HiveFrameRateConfigInput

Description

Input type for updating Hive frame rate configuration settings

Fields
Input Field Description
check_interval - Int The interval at which the frame rate check is performed (in seconds)
monday - String The frame rate configuration for Monday
tuesday - String The frame rate configuration for Tuesday
wednesday - String The frame rate configuration for Wednesday
thursday - String The frame rate configuration for Thursday
friday - String The frame rate configuration for Friday
saturday - String The frame rate configuration for Saturday
sunday - String The frame rate configuration for Sunday
traffic - String The frame rate configuration for traffic mode
presence - String The frame rate configuration for presence mode
sleep - String The frame rate configuration for sleep mode
repeater - String The frame rate configuration for repeater mode
Example
{
  "check_interval": 123,
  "monday": "xyz789",
  "tuesday": "abc123",
  "wednesday": "abc123",
  "thursday": "xyz789",
  "friday": "xyz789",
  "saturday": "xyz789",
  "sunday": "abc123",
  "traffic": "xyz789",
  "presence": "xyz789",
  "sleep": "xyz789",
  "repeater": "xyz789"
}

HiveMQTTConfig

Description

Represents the MQTT configuration settings for a Hive

Fields
Field Name Description
qos - Int! The Quality of Service (QoS) level for the MQTT connection
secured - Boolean! Indicates whether the connection is secured
max_inflight_messages - Int! The maximum number of inflight messages allowed
keep_alive - Int! The keep-alive interval in seconds
compression - Boolean! Indicates whether compression is enabled
compression_config - HiveCompressionConfig! The compression configuration settings for the Hive
Example
{
  "qos": 123,
  "secured": false,
  "max_inflight_messages": 123,
  "keep_alive": 987,
  "compression": false,
  "compression_config": HiveCompressionConfig
}

HiveMQTTConfigInput

Description

Input type for updating Hive MQTT configuration settings

Fields
Input Field Description
qos - Int The Quality of Service (QoS) level for MQTT messages (0, 1, or 2)
secured - Boolean A flag indicating whether the MQTT connection is secured (uses TLS)
max_inflight_messages - Int The maximum number of inflight messages allowed for the MQTT connection
keep_alive - Int The keep-alive interval for the MQTT connection (in seconds)
compression - Boolean A flag indicating whether MQTT message compression is enabled. (If enabled, QOS will be set to 2, otherwise QOS will be set to 1)
compression_config - HiveCompressionConfigInput The input object for updating Hive MQTT compression configuration settings
Example
{
  "qos": 123,
  "secured": false,
  "max_inflight_messages": 123,
  "keep_alive": 123,
  "compression": true,
  "compression_config": HiveCompressionConfigInput
}

HiveRequiredBandwidthConfig

Description

Represents the required bandwidth configuration settings for a Hive

Fields
Field Name Description
presence - Int! The required bandwidth for presence mode in milliseconds (ms)
traffic - Int! The required bandwidth for traffic mode in milliseconds (ms)
repeater - Int! The required bandwidth for repeater mode in milliseconds (ms)
sleep - Int! The required bandwidth for sleep mode in milliseconds (ms)
Example
{"presence": 987, "traffic": 987, "repeater": 123, "sleep": 123}

HiveRequiredBandwidthConfigInput

Description

Input type for updating Hive required bandwidth configuration settings

Fields
Input Field Description
presence - Int The required bandwidth for presence mode in milliseconds (ms)
traffic - Int The required bandwidth for traffic mode in milliseconds (ms)
repeater - Int The required bandwidth for repeater mode in milliseconds (ms)
sleep - Int The required bandwidth for sleep mode in milliseconds (ms)
Example
{"presence": 123, "traffic": 987, "repeater": 987, "sleep": 987}

HiveTopics

Description

Hive MQTT topics configuration settings

Fields
Field Name Description
command - String! MQTT command topic
detections - String! MQTT detections topic
raw - String! MQTT raw data topic
compressed - String! MQTT compressed data topic
Example
{
  "command": "xyz789",
  "detections": "abc123",
  "raw": "abc123",
  "compressed": "xyz789"
}

HiveTopicsInput

Description

Input for updating a Hive's MQTT topics configuration

Fields
Input Field Description
command - String MQTT command topic
detections - String MQTT detections topic
raw - String MQTT raw data topic
compressed - String MQTT compressed data topic
Example
{
  "command": "abc123",
  "detections": "xyz789",
  "raw": "xyz789",
  "compressed": "xyz789"
}

Hives

Description

A wrapper type for a list of Hive entities

Fields
Field Name Description
data - [Hive!] List of Hive entities
Example
{"data": [Hive]}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID

Example
"4"

InstallationStatus

Description

The installation status of a floor

Values
Enum Value Description

NOT_INSTALLED

The floor is yet to be installed

INSTALLATION_IN_PROGRESS

Installation of the floor is currently underway

QA_IN_PROGRESS

Quality Assurance (QA) checks are being carried out post-installation of the floor

INSTALLED

The floor has been successfully installed and has passed any necessary QA checks
Example
"NOT_INSTALLED"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1

Example
123

MetaData

Description

A type representing metadata information for various entities

Fields
Field Name Description
created_at - Int! The timestamp when the entity was created
updated_at - Int! The timestamp when the entity was last updated
deleted_at - Int! The timestamp when the entity was deleted
Example
{"created_at": 123, "updated_at": 987, "deleted_at": 123}

Room

Description

A Room entity represents a specific area within a Floor

Fields
Field Name Description
client_id - String! The unique identifier of the associated client
floor_id - String! The unique identifier of the associated floor
floor - Floor! The Floor entity associated with the Room
room_id - String! The unique identifier of the room
metadata - MetaData! The MetaData associated with the room
name - String! The display name of the room
area - Area! The area of the room
color - [Float!] The RGBA color associated with the room
coordinates - [Float!] The coordinates of the room's vertices
auto_calibrated_at - Int! The timestamp when the room was last auto-calibrated
capacity - Capacity! The room's capacity information
rotation - Float The room's clockwise rotation (in degrees)
room_type - String! The type of room (e.g., 'office', 'conference')
sensors - [Sensor!] A list of associated Sensor entities
Arguments
ids - [String!]

A list of sensor ids to filter by

Example
{
  "client_id": "abc123",
  "floor_id": "xyz789",
  "floor": Floor,
  "room_id": "xyz789",
  "metadata": MetaData,
  "name": "xyz789",
  "area": Area,
  "color": [987.65],
  "coordinates": [123.45],
  "auto_calibrated_at": 123,
  "capacity": Capacity,
  "rotation": 987.65,
  "room_type": "xyz789",
  "sensors": [Sensor]
}

RoomDetails

Description

The type representing detailed information about a room

Fields
Field Name Description
client_id - String! The unique identifier of the client that owns the room
floor_id - String! The unique identifier of the floor that contains the room
room_id - ID! The unique identifier of the room
metadata - MetaData! Metadata associated with the room
name - String! The name of the room
room_type - String! The type of the room
coordinates - [Float!] The coordinates of the room
rotation - Float The room's clockwise rotation (in degrees)
color - [Float!] The color of the room
area - Area! The area of the room
capacity - Capacity! The capacity of the room
tags - [String!] A list of tags associated with the room
auto_calibrated_at - Int! The timestamp of the last auto-calibration event
Example
{
  "client_id": "abc123",
  "floor_id": "xyz789",
  "room_id": 4,
  "metadata": MetaData,
  "name": "xyz789",
  "room_type": "abc123",
  "coordinates": [987.65],
  "rotation": 123.45,
  "color": [987.65],
  "area": Area,
  "capacity": Capacity,
  "tags": ["xyz789"],
  "auto_calibrated_at": 987
}

Rooms

Description

A wrapper for a list of Room entities

Fields
Field Name Description
data - [Room!] A list of Room entities
Example
{"data": [Room]}

Sensor

Description

The type representing detailed information about a sensor

Fields
Field Name Description
client_id - String! The unique identifier of the client that owns the sensor
floor_id - String! The unique identifier of the floor that contains the sensor
floor - Floor The floor object associated with the sensor
room_id - String! The unique identifier of the room that contains the sensor
room - Room The room object associated with the sensor
hive_id - String! The unique identifier of the hive that the sensor belongs to
hive - Hive The hive object associated with the sensor
hive_serial - String! The serial number of the hive that the sensor belongs to
zones - [Zone!] A list of zone objects associated with the sensor
zone_ids - [String!] A list of unique zone identifiers that the sensor is associated with
sensor_id - ID! The unique identifier of the sensor
metadata - MetaData! Metadata associated with the sensor
name - String! The name of the sensor
mac_address - String! The MAC address of the sensor
mode - String! The operational mode of the sensor
model - String! The model of the sensor
sensitivity - Float! The sensitivity level of the sensor
center - [Float!] The center coordinates of the sensor's coverage area
height - Float! The height of the sensor
is_entrance - Boolean! Indicates if the sensor is located at an entrance
is_online - Boolean! Indicates if the sensor is online
parallel_to_door - Boolean! Indicates if the sensor is parallel to a door
active_hours - [Float!] The active hours for the sensor
calibration - SensorCalibration! The calibration information of the sensor
door_line - Float! The door line distance value for the sensor
generation - Float! The generation of the sensor
in_direction - Float! The direction value for the sensor's detection area
last_heartbeat - Int The timestamp of the sensor's last heartbeat
last_raw_message - Int The timestamp of the sensor's last raw message
last_compressed_message - Int The timestamp of the sensor's last compressed message
last_occupancy_message - Int The timestamp of the sensor's last occupancy message
last_detection_message - Int The timestamp of the sensor's last detection message
messages_per_second - Float! The calculated messages received per second for the sensor, over the last 5 mins
is_streaming - Boolean! Indicates if the sensor is streaming
orientation - [Float!] The orientation of the sensor
effective_field_of_view - Float! The effective field of view value for the sensor
field_of_view - Float! The field of view value for the sensor
algo_config - AlgoConfig! The algorithm configuration settings for the sensor
connection_health - ConnectionHealthSensor! The connection health of the sensor
config - SensorConfig! The configuration settings for the sensor
last_battery_change_date - Time Last battery change date for the sensor
next_battery_change_date - Time Next battery change date for the sensor
Example
{
  "client_id": "abc123",
  "floor_id": "abc123",
  "floor": Floor,
  "room_id": "abc123",
  "room": Room,
  "hive_id": "xyz789",
  "hive": Hive,
  "hive_serial": "xyz789",
  "zones": [Zone],
  "zone_ids": ["xyz789"],
  "sensor_id": "4",
  "metadata": MetaData,
  "name": "abc123",
  "mac_address": "abc123",
  "mode": "xyz789",
  "model": "xyz789",
  "sensitivity": 123.45,
  "center": [123.45],
  "height": 123.45,
  "is_entrance": false,
  "is_online": true,
  "parallel_to_door": false,
  "active_hours": [123.45],
  "calibration": SensorCalibration,
  "door_line": 123.45,
  "generation": 987.65,
  "in_direction": 987.65,
  "last_heartbeat": 123,
  "last_raw_message": 987,
  "last_compressed_message": 123,
  "last_occupancy_message": 123,
  "last_detection_message": 123,
  "messages_per_second": 123.45,
  "is_streaming": true,
  "orientation": [987.65],
  "effective_field_of_view": 987.65,
  "field_of_view": 987.65,
  "algo_config": AlgoConfig,
  "connection_health": ConnectionHealthSensor,
  "config": SensorConfig,
  "last_battery_change_date": "10:15:30Z",
  "next_battery_change_date": "10:15:30Z"
}

SensorCalibration

Description

The type representing the calibration information of a sensor

Fields
Field Name Description
auto_calibrated_at - Int! The timestamp of the last auto-calibration event
auto_calibrate_start - Int! The start time of the auto-calibration process
auto_calibrate_end - Int! The end time of the auto-calibration process
auto_calibrate_person - Int! The number of people detected during the auto-calibration process
Example
{
  "auto_calibrated_at": 987,
  "auto_calibrate_start": 123,
  "auto_calibrate_end": 123,
  "auto_calibrate_person": 123
}

SensorCalibrationInput

Description

The input object used for updating sensor calibration attributes

Fields
Input Field Description
auto_calibrated_at - Int The timestamp of the last auto-calibration event (optional)
auto_calibrate_start - Int The start time of the auto-calibration process (optional)
auto_calibrate_end - Int The end time of the auto-calibration process (optional)
auto_calibrate_person - Int The number of people detected during the auto-calibration process (optional)
Example
{
  "auto_calibrated_at": 123,
  "auto_calibrate_start": 987,
  "auto_calibrate_end": 987,
  "auto_calibrate_person": 123
}

SensorConfig

Description

The SensorConfig type represents the configuration details of a sensor device

Fields
Field Name Description
deployment_config - SensorDeploymentConfig! The deployment configuration of the sensor device
current_firmware_version - String! The current version of firmware running on the sensor device
config_firmware_version - String! The version of firmware that this sensor configuration is compatible with
force_90_fov - Boolean! A flag indicating whether or not this is a Heatic 2 sensor that needs a software patch to tell it to publish the correct FOV value (90)
Example
{
  "deployment_config": SensorDeploymentConfig,
  "current_firmware_version": "abc123",
  "config_firmware_version": "abc123",
  "force_90_fov": false
}

SensorConfigInput

Description

The SensorConfigInput input type represents the input required to update the configuration details of a sensor device

Fields
Input Field Description
deployment_config - SensorDeploymentConfigInput The deployment configuration input of the sensor device
current_firmware_version - String The current version of firmware running on the sensor device
config_firmware_version - String The version of firmware that this sensor configuration is compatible with
force_90_fov - Boolean A flag indicating whether or not this is a Heatic 2 sensor that needs a software patch to tell it to publish the correct FOV value (90)
Example
{
  "deployment_config": SensorDeploymentConfigInput,
  "current_firmware_version": "xyz789",
  "config_firmware_version": "xyz789",
  "force_90_fov": true
}

SensorDeploymentConfig

Description

The SensorDeploymentConfig type represents the deployment configuration of a sensor device

Fields
Field Name Description
update_id - String! The update ID of the sensor deployment configuration
status - DEPLOYMENTSTATUS! The deployment status of the sensor device
target_firmware_version - String! The target version of firmware that the sensor device should be updated to
update_start_time - Int! The start time of the sensor device firmware update
update_stop_time - Int! The stop time of the sensor device firmware update
retries - Int! The number of times the firmware update has been attempted
Example
{
  "update_id": "abc123",
  "status": "UNDEFINED",
  "target_firmware_version": "xyz789",
  "update_start_time": 123,
  "update_stop_time": 987,
  "retries": 987
}

SensorDeploymentConfigInput

Description

The SensorDeploymentConfigInput input type represents the input required to update the deployment configuration details of a sensor device

Fields
Input Field Description
update_id - String The update ID of the sensor deployment configuration
status - DEPLOYMENTSTATUS The deployment status of the sensor device
target_firmware_version - String The target version of firmware that the sensor device should be updated to
update_start_time - Int The start time of the sensor device firmware update
update_stop_time - Int The stop time of the sensor device firmware update
retries - Int The number of times the firmware update has been attempted
Example
{
  "update_id": "xyz789",
  "status": "UNDEFINED",
  "target_firmware_version": "xyz789",
  "update_start_time": 123,
  "update_stop_time": 987,
  "retries": 123
}

SensorDetails

Description

The type representing detailed information about a sensor

Fields
Field Name Description
client_id - String! The unique identifier of the client associated with the sensor
floor_id - String! The unique identifier of the floor that contains the sensor
room_id - String! The unique identifier of the room that contains the sensor
hive_id - String! The unique identifier of the hive that the sensor belongs to
hive_serial - String! The serial number of the hive that the sensor belongs to
zone_ids - [String!] A list of unique zone identifiers that the sensor is associated with
sensor_id - ID! The unique identifier of the sensor
metadata - MetaData! The metadata associated with the sensor
name - String! The name of the sensor
mac_address - String! The MAC address of the sensor
mode - String! The operational mode of the sensor
model - String! The model of the sensor
sensitivity - Float! The sensitivity level of the sensor
center - [Float!] The center coordinates of the sensor's coverage area
height - Float! The height of the sensor
is_entrance - Boolean! Indicates if the sensor is located at an entrance
is_online - Boolean! Indicates if the sensor is online
parallel_to_door - Boolean! Indicates if the sensor is parallel to a door
active_hours - [Float!] The active hours for the sensor
calibration - SensorCalibration! The calibration information of the sensor
door_line - Float! The door line distance value for the sensor
generation - Float! The generation of the sensor
in_direction - Float! The direction value for the sensor's detection area
last_heartbeat - Int The timestamp of the last heartbeat event
orientation - [Float!] The orientation of the sensor
effective_field_of_view - Float! The effective field of view value for the sensor
field_of_view - Float! The field of view value for the sensor
coordinates - [Float!] The coordinates of the sensor's location within the space
color - [Float!] The color of the sensor
algo_config - AlgoConfig! The algorithm configuration settings for the sensor
config - SensorConfig! The configuration settings for the sensor
last_battery_change_date - Time Last battery change date for the sensor
next_battery_change_date - Time Next battery change date for the sensor
Example
{
  "client_id": "abc123",
  "floor_id": "abc123",
  "room_id": "xyz789",
  "hive_id": "xyz789",
  "hive_serial": "xyz789",
  "zone_ids": ["xyz789"],
  "sensor_id": 4,
  "metadata": MetaData,
  "name": "xyz789",
  "mac_address": "abc123",
  "mode": "abc123",
  "model": "xyz789",
  "sensitivity": 123.45,
  "center": [123.45],
  "height": 123.45,
  "is_entrance": true,
  "is_online": true,
  "parallel_to_door": false,
  "active_hours": [987.65],
  "calibration": SensorCalibration,
  "door_line": 123.45,
  "generation": 123.45,
  "in_direction": 987.65,
  "last_heartbeat": 987,
  "orientation": [123.45],
  "effective_field_of_view": 987.65,
  "field_of_view": 123.45,
  "coordinates": [123.45],
  "color": [987.65],
  "algo_config": AlgoConfig,
  "config": SensorConfig,
  "last_battery_change_date": "10:15:30Z",
  "next_battery_change_date": "10:15:30Z"
}

Sensors

Description

The type representing a collection of Sensor objects

Fields
Field Name Description
data - [Sensor!] A list of Sensor objects
Example
{"data": [Sensor]}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text

Example
"xyz789"

Time

Example
"10:15:30Z"

UpdateFixtureInput

Description

Input type for updating an existing fixture

Fields
Input Field Description
fixture_id - ID! The unique identifier for the fixture to be updated
floor_id - String! The identifier for the floor where the fixture is located
center - [Float!] The updated center coordinates (x, y, z) of the fixture
rotation - Float! The updated rotation of the fixture in degrees
scale - [Float!] The updated scale dimensions (x, y, z) of the fixture
type - String! The updated type of the fixture
auto_calibrated_at - Int! The updated timestamp when the fixture was last auto-calibrated
fixture_type - String! The updated type of the fixture
Example
{
  "fixture_id": 4,
  "floor_id": "abc123",
  "center": [123.45],
  "rotation": 123.45,
  "scale": [987.65],
  "type": "abc123",
  "auto_calibrated_at": 987,
  "fixture_type": "xyz789"
}

UpdateFloorInput

Description

An input type for updating an existing floor

Fields
Input Field Description
floor_id - ID! The unique identifier for the floor
name - String The name of the floor
address - String The address of the building
area - AreaInput The area information of the floor
capacity - CapacityInput The capacity information of the floor
installation_date - Int The installation date timestamp of the floor
occupancy_mode - String The occupancy mode for the floor
timezone - String The timezone of the floor location
installation_status - InstallationStatus The installation status of the floor
Example
{
  "floor_id": "4",
  "name": "abc123",
  "address": "abc123",
  "area": AreaInput,
  "capacity": CapacityInput,
  "installation_date": 123,
  "occupancy_mode": "abc123",
  "timezone": "abc123",
  "installation_status": "NOT_INSTALLED"
}

UpdateFloorPlanInput

Description

An input type for updating the floor plan metadata

Fields
Input Field Description
floor_id - String! The unique identifier of the floor
floor_plan_id - String! The unique identifier for the floor plan associated with the floor
name - String The name of the floor plan
coordinates - [Float!] Then coordinates of the floor plan
Example
{
  "floor_id": "abc123",
  "floor_plan_id": "abc123",
  "name": "xyz789",
  "coordinates": [123.45]
}

UpdateHiveHeartbeatInput

Description

Input for reporting a hive heartbeat

Fields
Input Field Description
hive_serial - String! Serial number of the Hive
heartbeat_payload - String JSON payload of the Hive heartbeat
Example
{
  "hive_serial": "xyz789",
  "heartbeat_payload": "xyz789"
}

UpdateHiveInput

Description

Input for updating an existing Hive entity

Fields
Input Field Description
floor_id - String New Floor ID where the Hive will be located
room_id - String New Room ID where the Hive will be located
serial_number - String! Serial number of the Hive to update
name - String New name of the Hive
broker - HiveBrokerInput New MQTT broker configuration for the Hive
coordinates - [Float!] New coordinates of the Hive in the room
color - [Float!] New color of the Hive
sensors - [UpdateHiveSensorInput!] New sensor configuration for the Hive
config - HiveConfigInput New configuration settings for the Hive
hive_version - String New Hive software version
hive_type - String New type of the Hive device
Example
{
  "floor_id": "xyz789",
  "room_id": "abc123",
  "serial_number": "xyz789",
  "name": "xyz789",
  "broker": HiveBrokerInput,
  "coordinates": [987.65],
  "color": [123.45],
  "sensors": [UpdateHiveSensorInput],
  "config": HiveConfigInput,
  "hive_version": "xyz789",
  "hive_type": "xyz789"
}

UpdateHiveSensorInput

Description

Input for updating a Hive's sensor configuration

Fields
Input Field Description
mac_address - String! MAC address of the sensor
mode - String! New mode for the sensor
Example
{
  "mac_address": "xyz789",
  "mode": "abc123"
}

UpdateRoomInput

Description

The input object used for updating room attributes

Fields
Input Field Description
room_id - ID! The unique identifier of the room to be updated
name - String The new name of the room (optional)
room_type - String The new room type (optional)
coordinates - [Float!] The new coordinates of the room (optional)
color - [Float!] The new color of the room (optional)
area - AreaInput The new area of the room (optional)
capacity - CapacityInput The new capacity of the room (optional)
rotation - Float The new rotation of the room (in degrees)
Example
{
  "room_id": "4",
  "name": "xyz789",
  "room_type": "xyz789",
  "coordinates": [123.45],
  "color": [987.65],
  "area": AreaInput,
  "capacity": CapacityInput,
  "rotation": 987.65
}

UpdateSensorInput

Description

The input object used for updating an existing sensor with various attributes

Fields
Input Field Description
sensor_id - ID The unique identifier of the sensor
floor_id - String The unique identifier of the floor that contains the sensor (optional)
room_id - String The unique identifier of the room that contains the sensor (optional)
hive_id - String The unique identifier of the hive that the sensor belongs to (optional)
hive_serial - String The serial number of the hive that the sensor belongs to (optional)
name - String The name of the sensor (optional)
mac_address - String The MAC address of the sensor (optional)
mode - String The operational mode of the sensor (optional)
model - String The model of the sensor (optional)
sensitivity - Float The sensitivity level of the sensor (optional)
center - [Float!] The center coordinates of the sensor's coverage area (optional)
height - Float The height of the sensor (optional)
is_entrance - Boolean Indicates if the sensor is located at an entrance (optional)
parallel_to_door - Boolean Indicates if the sensor is parallel to a door (optional)
active_hours - [Float!] The active hours for the sensor (optional)
calibration - SensorCalibrationInput The calibration information of the sensor (optional)
door_line - Float The door line distance value for the sensor (optional)
generation - Float The generation of the sensor (optional)
in_direction - Float The direction value for the sensor's detection area (optional)
orientation - [Float!] The orientation of the sensor (optional)
field_of_view - Float The field of view value for the sensor (optional)
color - [Float!] The color of the sensor (optional)
algo_config - AlgoConfigInput The algorithm configuration settings for the sensor (optional)
config - SensorConfigInput The configuration settings for the sensor (optional)
last_battery_change_date - Time Last battery change date for the sensor
next_battery_change_date - Time Next battery change date for the sensor
Example
{
  "sensor_id": "4",
  "floor_id": "xyz789",
  "room_id": "xyz789",
  "hive_id": "abc123",
  "hive_serial": "xyz789",
  "name": "xyz789",
  "mac_address": "abc123",
  "mode": "abc123",
  "model": "abc123",
  "sensitivity": 987.65,
  "center": [123.45],
  "height": 987.65,
  "is_entrance": true,
  "parallel_to_door": true,
  "active_hours": [123.45],
  "calibration": SensorCalibrationInput,
  "door_line": 987.65,
  "generation": 123.45,
  "in_direction": 987.65,
  "orientation": [987.65],
  "field_of_view": 123.45,
  "color": [123.45],
  "algo_config": AlgoConfigInput,
  "config": SensorConfigInput,
  "last_battery_change_date": "10:15:30Z",
  "next_battery_change_date": "10:15:30Z"
}

UpdateZoneInput

Description

The input type required to update an existing zone

Fields
Input Field Description
room_id - String The unique identifier of the room that will contain the zone (optional)
zone_id - ID! The unique identifier of the zone to update
zone_type - String The type of the zone (e.g., 'office', 'conference room', etc.)
name - String The name of the zone
coordinates - [Float!] The coordinates of the zone's location within the space
rotation - Float The clockwise rotation of the zone (in degrees)
color - [Float!] The color of the zone
area - AreaInput The area information of the zone
capacity - CapacityInput The capacity information of the zone
Example
{
  "room_id": "abc123",
  "zone_id": 4,
  "zone_type": "abc123",
  "name": "xyz789",
  "coordinates": [987.65],
  "rotation": 987.65,
  "color": [987.65],
  "area": AreaInput,
  "capacity": CapacityInput
}

Zone

Description

The type representing information about a specific zone within a space

Fields
Field Name Description
client_id - String! The unique identifier of the client associated with the zone
floor_id - String! The unique identifier of the floor that contains the zone
room_id - String! The unique identifier of the room that contains the zone
zone_id - String! The unique identifier of the zone
metadata - MetaData! The metadata associated with the zone
name - String! The name of the zone
area - Area! The area information of the zone
color - [Float!] The color of the zone
coordinates - [Float!] The coordinates of the zone's location within the space
rotation - Float The clockwise rotation of the zone (in degrees)
capacity - Capacity! The capacity information of the zone
zone_type - String! The type of the zone (e.g., 'office', 'conference room', etc.)
tags - [String!] A list of tags associated with the zone
sensors - [Sensor!] A list of sensors associated with the zone
Example
{
  "client_id": "abc123",
  "floor_id": "xyz789",
  "room_id": "xyz789",
  "zone_id": "xyz789",
  "metadata": MetaData,
  "name": "xyz789",
  "area": Area,
  "color": [123.45],
  "coordinates": [123.45],
  "rotation": 987.65,
  "capacity": Capacity,
  "zone_type": "abc123",
  "tags": ["abc123"],
  "sensors": [Sensor]
}

ZoneDetails

Description

The type representing detailed information about a specific zone

Fields
Field Name Description
client_id - String! The unique identifier of the client associated with the zone
metadata - MetaData! The metadata associated with the zone
zone_type - String! The type of the zone (e.g., 'office', 'conference room', etc.)
zone_id - String! The unique identifier of the zone
name - String! The name of the zone
floor_id - String! The unique identifier of the floor that contains the zone
room_id - String! The unique identifier of the room that contains the zone
coordinates - [Float!] The coordinates of the zone's location within the space
rotation - Float The clockwise rotation of the zone (in degrees)
color - [Float!] The color of the zone
area - Area! The area information of the zone
capacity - Capacity The capacity information of the zone (optional)
tags - [String!] A list of tags associated with the zone
type - String! The type of the zone
Example
{
  "client_id": "xyz789",
  "metadata": MetaData,
  "zone_type": "xyz789",
  "zone_id": "xyz789",
  "name": "xyz789",
  "floor_id": "abc123",
  "room_id": "abc123",
  "coordinates": [123.45],
  "rotation": 987.65,
  "color": [987.65],
  "area": Area,
  "capacity": Capacity,
  "tags": ["xyz789"],
  "type": "abc123"
}

Zones

Description

The type representing a list of Zone objects

Fields
Field Name Description
data - [Zone!]! The list of Zone objects
Example
{"data": [Zone]}