igloo
Docs / igloohome / API Reference / Iglookey

Iglookey API Reference

Enterprise API endpoints for managing iglookey.

POST/pass

Body Parameters

Content-Type:application/json
Parameter Type Required
activationWindowSeconds string Optional
deviceIds string Optional
endsAt string Optional
label string Optional
offlineAccessSeconds string Optional
startsAt string Optional

Request Example

curl -X POST "https://api.igloohome.co/home/pass" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
  }'
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.igloohome.co/home/pass"
	payload := []byte(`{
		"activationWindowSeconds": "value",
		"deviceIds": "value",
		"endsAt": "value",
		"label": "value",
		"offlineAccessSeconds": "value",
		"startsAt": "value"
	}`)

	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
	req.Header.Set("Accept", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()

	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
const res = await fetch("https://api.igloohome.co/home/pass", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
  })
});

const data = await res.json();
console.log(data);
import requests

url = "https://api.igloohome.co/home/pass"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json"
}
payload = {
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.igloohome.co/home/pass",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Accept: application/json",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "activationWindowSeconds" => "value",
        "deviceIds" => "value",
        "endsAt" => "value",
        "label" => "value",
        "offlineAccessSeconds" => "value",
        "startsAt" => "value"
    ])
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
val client = OkHttpClient()

val mediaType = "application/json".toMediaType()
val body = """
    {
        "activationWindowSeconds": "value",
        "deviceIds": "value",
        "endsAt": "value",
        "label": "value",
        "offlineAccessSeconds": "value",
        "startsAt": "value"
    }
""".trimIndent().toRequestBody(mediaType)

val request = Request.Builder()
    .url("https://api.igloohome.co/home/pass")
    .method("POST", body)
    .addHeader("Authorization", "Bearer YOUR_API_KEY")
    .addHeader("Accept", "application/json")
    .addHeader("Content-Type", "application/json")
    .build()

val response = client.newCall(request).execute()
println(response.body?.string())
import Foundation

var request = URLRequest(url: URL(string: "https://api.igloohome.co/home/pass")!)
request.httpMethod = "POST"
request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()

Responses

201400401402403404415422500502503

Created

Create iglooKey Token (Offline capable)

POST/pass/offline

Same as Create iglooKey Token; offline access is supported.

Body Parameters

Content-Type:application/json
Parameter Type Required
activationWindowSeconds string Optional
deviceIds string Optional
endsAt string Optional
label string Optional
offlineAccessSeconds string Optional
startsAt string Optional

Request Example

curl -X POST "https://api.igloohome.co/home/pass/offline" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
  }'
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.igloohome.co/home/pass/offline"
	payload := []byte(`{
		"activationWindowSeconds": "value",
		"deviceIds": "value",
		"endsAt": "value",
		"label": "value",
		"offlineAccessSeconds": "value",
		"startsAt": "value"
	}`)

	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
	req.Header.Set("Accept", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()

	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
const res = await fetch("https://api.igloohome.co/home/pass/offline", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
  })
});

const data = await res.json();
console.log(data);
import requests

url = "https://api.igloohome.co/home/pass/offline"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json"
}
payload = {
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.igloohome.co/home/pass/offline",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Accept: application/json",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "activationWindowSeconds" => "value",
        "deviceIds" => "value",
        "endsAt" => "value",
        "label" => "value",
        "offlineAccessSeconds" => "value",
        "startsAt" => "value"
    ])
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
val client = OkHttpClient()

val mediaType = "application/json".toMediaType()
val body = """
    {
        "activationWindowSeconds": "value",
        "deviceIds": "value",
        "endsAt": "value",
        "label": "value",
        "offlineAccessSeconds": "value",
        "startsAt": "value"
    }
""".trimIndent().toRequestBody(mediaType)

val request = Request.Builder()
    .url("https://api.igloohome.co/home/pass/offline")
    .method("POST", body)
    .addHeader("Authorization", "Bearer YOUR_API_KEY")
    .addHeader("Accept", "application/json")
    .addHeader("Content-Type", "application/json")
    .build()

val response = client.newCall(request).execute()
println(response.body?.string())
import Foundation

var request = URLRequest(url: URL(string: "https://api.igloohome.co/home/pass/offline")!)
request.httpMethod = "POST"
request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "offlineAccessSeconds": "value",
    "startsAt": "value"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()

Responses

201400401402403404415422500502503

Created

Create iglooKey Token (Online only)

POST/pass/online

Same as Create iglooKey Token but the resulting token does not support offline access; offlineAccessSeconds is rejected.

Body Parameters

Content-Type:application/json
Parameter Type Required
activationWindowSeconds string Optional
deviceIds string Optional
endsAt string Optional
label string Optional
startsAt string Optional

Request Example

curl -X POST "https://api.igloohome.co/home/pass/online" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "startsAt": "value"
  }'
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.igloohome.co/home/pass/online"
	payload := []byte(`{
		"activationWindowSeconds": "value",
		"deviceIds": "value",
		"endsAt": "value",
		"label": "value",
		"startsAt": "value"
	}`)

	req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
	req.Header.Set("Accept", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()

	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
const res = await fetch("https://api.igloohome.co/home/pass/online", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "startsAt": "value"
  })
});

const data = await res.json();
console.log(data);
import requests

url = "https://api.igloohome.co/home/pass/online"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json"
}
payload = {
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "startsAt": "value"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.igloohome.co/home/pass/online",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Accept: application/json",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "activationWindowSeconds" => "value",
        "deviceIds" => "value",
        "endsAt" => "value",
        "label" => "value",
        "startsAt" => "value"
    ])
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
val client = OkHttpClient()

val mediaType = "application/json".toMediaType()
val body = """
    {
        "activationWindowSeconds": "value",
        "deviceIds": "value",
        "endsAt": "value",
        "label": "value",
        "startsAt": "value"
    }
""".trimIndent().toRequestBody(mediaType)

val request = Request.Builder()
    .url("https://api.igloohome.co/home/pass/online")
    .method("POST", body)
    .addHeader("Authorization", "Bearer YOUR_API_KEY")
    .addHeader("Accept", "application/json")
    .addHeader("Content-Type", "application/json")
    .build()

val response = client.newCall(request).execute()
println(response.body?.string())
import Foundation

var request = URLRequest(url: URL(string: "https://api.igloohome.co/home/pass/online")!)
request.httpMethod = "POST"
request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
    "activationWindowSeconds": "value",
    "deviceIds": "value",
    "endsAt": "value",
    "label": "value",
    "startsAt": "value"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()

Responses

201400401402403404415422500502503

Created

Update iglooKey Token

PATCH/pass/{id}

Updates the validity window (startsAt/endsAt) of an existing iglooKey token.

Path Parameters

Parameter Type Required
id string Yes

Body Parameters

Content-Type:application/json
Parameter Type Required
endsAt string Optional
startsAt string Optional

Request Example

curl -X PATCH "https://api.igloohome.co/home/pass/{id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "endsAt": "value",
    "startsAt": "value"
  }'
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.igloohome.co/home/pass/{id}"
	payload := []byte(`{
		"endsAt": "value",
		"startsAt": "value"
	}`)

	req, _ := http.NewRequest("PATCH", url, bytes.NewBuffer(payload))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
	req.Header.Set("Accept", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()

	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
const res = await fetch("https://api.igloohome.co/home/pass/{id}", {
  method: "PATCH",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "endsAt": "value",
    "startsAt": "value"
  })
});

const data = await res.json();
console.log(data);
import requests

url = "https://api.igloohome.co/home/pass/{id}"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json"
}
payload = {
    "endsAt": "value",
    "startsAt": "value"
}
response = requests.patch(url, headers=headers, json=payload)
print(response.json())
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.igloohome.co/home/pass/{id}",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "PATCH",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Accept: application/json",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "endsAt" => "value",
        "startsAt" => "value"
    ])
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
val client = OkHttpClient()

val mediaType = "application/json".toMediaType()
val body = """
    {
        "endsAt": "value",
        "startsAt": "value"
    }
""".trimIndent().toRequestBody(mediaType)

val request = Request.Builder()
    .url("https://api.igloohome.co/home/pass/{id}")
    .method("PATCH", body)
    .addHeader("Authorization", "Bearer YOUR_API_KEY")
    .addHeader("Accept", "application/json")
    .addHeader("Content-Type", "application/json")
    .build()

val response = client.newCall(request).execute()
println(response.body?.string())
import Foundation

var request = URLRequest(url: URL(string: "https://api.igloohome.co/home/pass/{id}")!)
request.httpMethod = "PATCH"
request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
    "endsAt": "value",
    "startsAt": "value"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()

Responses

200400401402403404415500502503

OK

Revoke iglooKey Token

DELETE/pass/{id}

Revokes an existing iglooKey token. No request body.

Path Parameters

Parameter Type Required
id string Yes

Request Example

curl -X DELETE "https://api.igloohome.co/home/pass/{id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.igloohome.co/home/pass/{id}"
	req, _ := http.NewRequest("DELETE", url, nil)
	req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
	req.Header.Set("Accept", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()

	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
const res = await fetch("https://api.igloohome.co/home/pass/{id}", {
  method: "DELETE",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json"
  }
});

const data = await res.json();
console.log(data);
import requests

url = "https://api.igloohome.co/home/pass/{id}"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json"
}
response = requests.delete(url, headers=headers)
print(response.json())
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.igloohome.co/home/pass/{id}",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Accept: application/json"
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
val client = OkHttpClient()

val request = Request.Builder()
    .url("https://api.igloohome.co/home/pass/{id}")
    .method("DELETE", null)
    .addHeader("Authorization", "Bearer YOUR_API_KEY")
    .addHeader("Accept", "application/json")
    .build()

val response = client.newCall(request).execute()
println(response.body?.string())
import Foundation

var request = URLRequest(url: URL(string: "https://api.igloohome.co/home/pass/{id}")!)
request.httpMethod = "DELETE"
request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Accept")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()

Responses

204400401402403404500502503

No Content