Rooms
You can use Butlr's GraphQL API to create, update, and retrieve information about rooms.
Last updated
You can use Butlr's GraphQL API to create, update, and retrieve information about rooms.
Last updated
A room is typically enclosed by walls that serve a specific purpose, such as an office, conference room, or bedroom. A can have one or many enclosed rooms.
This page provides guidance on how to , , and within a floor, enabling precise management of room-specific data.
First, obtain an access token to get started .
query allRooms {
rooms {
data {
id
floor {
id
name
...FloorFragment
}
metadata {
...MetaDataFragment
}
name
area {
...AreaFragment
}
coordinates
capacity {
max
mid
...CapacityFragment
}
rotation
tags {
id
name
...TagFragment
}
sensors {
id
name
...SensorFragment
}
note
room_id
client_id
floor_id
}
}
}
curl --location 'https://api.butlr.io/api/v3/graphql' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjJwTC04ZGRDNlhMaDNEblVHa2ptWiJ9.eyJodHRwOi8vYnV0bHIuaW8vY2xpZW50X2lkIjoiY2xpZW50XzJDbFlBYVY1Z0FISlJjUDdsd3JoTUU5ejR1WSIsImh0dHA6Ly9idXRsci5pby9lbWFpbCI6ImV2YWxfMjUxMzMzQGJ1dGxyLnRlY2giLCJodHRwOi8vYnV0bHIuaW8vcm9sZXMiOltdLCJpc3MiOiJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8dXNlcl8yQ2xZQVpTZjZlMzJVUFRrVVBSUUplTWhLbkciLCJhdWQiOlsiaHR0cHM6Ly91c2Vycy5idXRsci5pby8iLCJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzI2NTExNTA4LCJleHAiOjE3MjY1MTI1MDgsInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MiLCJndHkiOiJwYXNzd29yZCIsImF6cCI6Imw0bHh3MUsySjlQdUJ2UEZlNXlidkoyejhUNjBNc0pJIiwicGVybWlzc2lvbnMiOltdfQ.k15h6wL5qz6zZrLLLdJ7_dsBrDvtO1J0veqUPzQjzKQ73fHDfidKf3MFNBq694z-NWQA-5Usf-Ck62EJ0POyE4PcZ7ptN42NgyeGD0EB40aDMEmYW_kxXvf8iewpbtBMVjqsIwHOR5YG8pE4VMXDrhPmRdSaurg0ic8kLRhqXGSHAzVqVtGXkVMmy9TXsVsDw-e3GymiJzLgm8S0zhzfBNLbffTgL4h3v4-nQC8hmUraNi3aQLQa4sYBvREV9IKECwNWfAXFWlckn3YC3s_90UOlWL4aFAc-tGTrUJyPDtytrunlegulFEeVDANe71nXnh1yBqLiHuiBNDryD2BqWQ' \
--data '{"query":"query allRooms{\n rooms {\n data {\n id\n name\n floor {\n id\n name\n }\n capacity {\n max\n mid\n }\n rotation\n roomType\n sensors {\n sensor_id\n name\n }\n }\n }\n}","variables":{}}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.butlr.io/api/v3/graphql"
method := "POST"
payload := strings.NewReader("{\"query\":\"query allRooms{\\n rooms {\\n data {\\n id\\n name\\n floor {\\n id\\n name\\n }\\n capacity {\\n max\\n mid\\n }\\n rotation\\n roomType\\n sensors {\\n sensor_id\\n name\\n }\\n }\\n }\\n}\",\"variables\":{}}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjJwTC04ZGRDNlhMaDNEblVHa2ptWiJ9.eyJodHRwOi8vYnV0bHIuaW8vY2xpZW50X2lkIjoiY2xpZW50XzJDbFlBYVY1Z0FISlJjUDdsd3JoTUU5ejR1WSIsImh0dHA6Ly9idXRsci5pby9lbWFpbCI6ImV2YWxfMjUxMzMzQGJ1dGxyLnRlY2giLCJodHRwOi8vYnV0bHIuaW8vcm9sZXMiOltdLCJpc3MiOiJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8dXNlcl8yQ2xZQVpTZjZlMzJVUFRrVVBSUUplTWhLbkciLCJhdWQiOlsiaHR0cHM6Ly91c2Vycy5idXRsci5pby8iLCJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzI2NTExNTA4LCJleHAiOjE3MjY1MTI1MDgsInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MiLCJndHkiOiJwYXNzd29yZCIsImF6cCI6Imw0bHh3MUsySjlQdUJ2UEZlNXlidkoyejhUNjBNc0pJIiwicGVybWlzc2lvbnMiOltdfQ.k15h6wL5qz6zZrLLLdJ7_dsBrDvtO1J0veqUPzQjzKQ73fHDfidKf3MFNBq694z-NWQA-5Usf-Ck62EJ0POyE4PcZ7ptN42NgyeGD0EB40aDMEmYW_kxXvf8iewpbtBMVjqsIwHOR5YG8pE4VMXDrhPmRdSaurg0ic8kLRhqXGSHAzVqVtGXkVMmy9TXsVsDw-e3GymiJzLgm8S0zhzfBNLbffTgL4h3v4-nQC8hmUraNi3aQLQa4sYBvREV9IKECwNWfAXFWlckn3YC3s_90UOlWL4aFAc-tGTrUJyPDtytrunlegulFEeVDANe71nXnh1yBqLiHuiBNDryD2BqWQ")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
import requests
import json
url = "https://api.butlr.io/api/v3/graphql"
payload = "{\"query\":\"query allRooms{\\n rooms {\\n data {\\n id\\n name\\n floor {\\n id\\n name\\n }\\n capacity {\\n max\\n mid\\n }\\n rotation\\n roomType\\n sensors {\\n sensor_id\\n name\\n }\\n }\\n }\\n}\",\"variables\":{}}"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjJwTC04ZGRDNlhMaDNEblVHa2ptWiJ9.eyJodHRwOi8vYnV0bHIuaW8vY2xpZW50X2lkIjoiY2xpZW50XzJDbFlBYVY1Z0FISlJjUDdsd3JoTUU5ejR1WSIsImh0dHA6Ly9idXRsci5pby9lbWFpbCI6ImV2YWxfMjUxMzMzQGJ1dGxyLnRlY2giLCJodHRwOi8vYnV0bHIuaW8vcm9sZXMiOltdLCJpc3MiOiJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8dXNlcl8yQ2xZQVpTZjZlMzJVUFRrVVBSUUplTWhLbkciLCJhdWQiOlsiaHR0cHM6Ly91c2Vycy5idXRsci5pby8iLCJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzI2NTExNTA4LCJleHAiOjE3MjY1MTI1MDgsInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MiLCJndHkiOiJwYXNzd29yZCIsImF6cCI6Imw0bHh3MUsySjlQdUJ2UEZlNXlidkoyejhUNjBNc0pJIiwicGVybWlzc2lvbnMiOltdfQ.k15h6wL5qz6zZrLLLdJ7_dsBrDvtO1J0veqUPzQjzKQ73fHDfidKf3MFNBq694z-NWQA-5Usf-Ck62EJ0POyE4PcZ7ptN42NgyeGD0EB40aDMEmYW_kxXvf8iewpbtBMVjqsIwHOR5YG8pE4VMXDrhPmRdSaurg0ic8kLRhqXGSHAzVqVtGXkVMmy9TXsVsDw-e3GymiJzLgm8S0zhzfBNLbffTgL4h3v4-nQC8hmUraNi3aQLQa4sYBvREV9IKECwNWfAXFWlckn3YC3s_90UOlWL4aFAc-tGTrUJyPDtytrunlegulFEeVDANe71nXnh1yBqLiHuiBNDryD2BqWQ'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
mutation updateRooms($rooms: [UpdateRoomInput!]!) {
updateRooms(rooms: $rooms) {
id
name
}
}
# Variables
{
"rooms" : {
"name": "example_room_updated_name",
"room_id": "room_2mAHXfuKNfloAEUJdZa4n0NBPCv"
}
}
curl --location 'https://api.butlr.io/api/v3/graphql' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjJwTC04ZGRDNlhMaDNEblVHa2ptWiJ9.eyJodHRwOi8vYnV0bHIuaW8vY2xpZW50X2lkIjoiY2xpZW50XzJDbFlBYVY1Z0FISlJjUDdsd3JoTUU5ejR1WSIsImh0dHA6Ly9idXRsci5pby9lbWFpbCI6ImV2YWxfMjUxMzMzQGJ1dGxyLnRlY2giLCJodHRwOi8vYnV0bHIuaW8vcm9sZXMiOltdLCJpc3MiOiJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8dXNlcl8yQ2xZQVpTZjZlMzJVUFRrVVBSUUplTWhLbkciLCJhdWQiOlsiaHR0cHM6Ly91c2Vycy5idXRsci5pby8iLCJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzI2NTEyNjM0LCJleHAiOjE3MjY1MTM2MzQsInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MiLCJndHkiOiJwYXNzd29yZCIsImF6cCI6Imw0bHh3MUsySjlQdUJ2UEZlNXlidkoyejhUNjBNc0pJIiwicGVybWlzc2lvbnMiOltdfQ.gPk9VXEar8FwM9zy1LcAqPv-lShB6wG3SuAIWwiwbW2d1I6_S7nhyrnvd_ZKn0umwju370dPqdO-qZPPVpYjrvclVNJnEPWjJfywCtPIbu4Rg9uwY1ip5YLpLg_eBWDkF0luMkOjUHi27gO4w030Y5oVbuzBh5ZnSGP5FVxcV6YyG9XWZ48U-oqzuGR3aGwTQV75TmF45WwqYFmff3Rr0MQB5SyZyZc-QuBGat6-jk2-R8QJihtbDvIXGmB7tWGdWLVFAIdRVk6EUKvL6IE0V56kCo7NDv-2NVjq56WJrOIUUH6YvXQLEEUk2oBkFgQuLANdsK23kbVCpV9qA_0_Kw' \
--data '{"query":"mutation updateRooms($rooms: [UpdateRoomInput!]!) {\n updateRooms(rooms: $rooms) {\n id\n name \n }\n}","variables":{"rooms":{"name":"example_room_updated_name","room_id":"room_2mAHXfuKNfloAEUJdZa4n0NBPCv"}}}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.butlr.io/api/v3/graphql"
method := "POST"
payload := strings.NewReader("{\"query\":\"mutation updateRooms($rooms: [UpdateRoomInput!]!) {\\n updateRooms(rooms: $rooms) {\\n id\\n name \\n }\\n}\",\"variables\":{\"rooms\":{\"name\":\"example_room_updated_name\",\"room_id\":\"room_2mAHXfuKNfloAEUJdZa4n0NBPCv\"}}}")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjJwTC04ZGRDNlhMaDNEblVHa2ptWiJ9.eyJodHRwOi8vYnV0bHIuaW8vY2xpZW50X2lkIjoiY2xpZW50XzJDbFlBYVY1Z0FISlJjUDdsd3JoTUU5ejR1WSIsImh0dHA6Ly9idXRsci5pby9lbWFpbCI6ImV2YWxfMjUxMzMzQGJ1dGxyLnRlY2giLCJodHRwOi8vYnV0bHIuaW8vcm9sZXMiOltdLCJpc3MiOiJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8dXNlcl8yQ2xZQVpTZjZlMzJVUFRrVVBSUUplTWhLbkciLCJhdWQiOlsiaHR0cHM6Ly91c2Vycy5idXRsci5pby8iLCJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzI2NTEyNjM0LCJleHAiOjE3MjY1MTM2MzQsInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MiLCJndHkiOiJwYXNzd29yZCIsImF6cCI6Imw0bHh3MUsySjlQdUJ2UEZlNXlidkoyejhUNjBNc0pJIiwicGVybWlzc2lvbnMiOltdfQ.gPk9VXEar8FwM9zy1LcAqPv-lShB6wG3SuAIWwiwbW2d1I6_S7nhyrnvd_ZKn0umwju370dPqdO-qZPPVpYjrvclVNJnEPWjJfywCtPIbu4Rg9uwY1ip5YLpLg_eBWDkF0luMkOjUHi27gO4w030Y5oVbuzBh5ZnSGP5FVxcV6YyG9XWZ48U-oqzuGR3aGwTQV75TmF45WwqYFmff3Rr0MQB5SyZyZc-QuBGat6-jk2-R8QJihtbDvIXGmB7tWGdWLVFAIdRVk6EUKvL6IE0V56kCo7NDv-2NVjq56WJrOIUUH6YvXQLEEUk2oBkFgQuLANdsK23kbVCpV9qA_0_Kw")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
import requests
import json
url = "https://api.butlr.io/api/v3/graphql"
payload = "{\"query\":\"mutation updateRooms($rooms: [UpdateRoomInput!]!) {\\n updateRooms(rooms: $rooms) {\\n id\\n name \\n }\\n}\",\"variables\":{\"rooms\":{\"name\":\"example_room_updated_name\",\"room_id\":\"room_2mAHXfuKNfloAEUJdZa4n0NBPCv\"}}}"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjJwTC04ZGRDNlhMaDNEblVHa2ptWiJ9.eyJodHRwOi8vYnV0bHIuaW8vY2xpZW50X2lkIjoiY2xpZW50XzJDbFlBYVY1Z0FISlJjUDdsd3JoTUU5ejR1WSIsImh0dHA6Ly9idXRsci5pby9lbWFpbCI6ImV2YWxfMjUxMzMzQGJ1dGxyLnRlY2giLCJodHRwOi8vYnV0bHIuaW8vcm9sZXMiOltdLCJpc3MiOiJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8dXNlcl8yQ2xZQVpTZjZlMzJVUFRrVVBSUUplTWhLbkciLCJhdWQiOlsiaHR0cHM6Ly91c2Vycy5idXRsci5pby8iLCJodHRwczovL2J1dGxydGVjaC51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzI2NTEyNjM0LCJleHAiOjE3MjY1MTM2MzQsInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MiLCJndHkiOiJwYXNzd29yZCIsImF6cCI6Imw0bHh3MUsySjlQdUJ2UEZlNXlidkoyejhUNjBNc0pJIiwicGVybWlzc2lvbnMiOltdfQ.gPk9VXEar8FwM9zy1LcAqPv-lShB6wG3SuAIWwiwbW2d1I6_S7nhyrnvd_ZKn0umwju370dPqdO-qZPPVpYjrvclVNJnEPWjJfywCtPIbu4Rg9uwY1ip5YLpLg_eBWDkF0luMkOjUHi27gO4w030Y5oVbuzBh5ZnSGP5FVxcV6YyG9XWZ48U-oqzuGR3aGwTQV75TmF45WwqYFmff3Rr0MQB5SyZyZc-QuBGat6-jk2-R8QJihtbDvIXGmB7tWGdWLVFAIdRVk6EUKvL6IE0V56kCo7NDv-2NVjq56WJrOIUUH6YvXQLEEUk2oBkFgQuLANdsK23kbVCpV9qA_0_Kw'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)