Jobs API Reference
API endpoints for managing jobs.
Lock Jobs
Bridge Proxied Jobs send commands to smart locks through a Bridge device. The Bridge acts as an intermediary that communicates with locks via Bluetooth while your application communicates with the Bridge via the API.
Send these jobs with Create a Bridge Proxied Job.
Job Creation
Create a job by making a POST request to:
/devices/{deviceId}/jobs/bridges/{bridgeId}
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| jobType | number | Command type identifier (see Job Types) |
| jobData | object | Command-specific parameters |
Response
Job Types
| Job Type | ID |
|---|---|
| Lock | 1 |
| Unlock | 2 |
| Create Custom PIN code | 4 |
| Delete PIN code | 5 |
| Get Battery Level | 9 |
| Get Device Status | 10 |
| Get Activity Logs | 15 |
Command Details
Lock
Locks the device and optionally synchronizes its internal clock.
| Parameter | Type | Description | Required |
|---|---|---|---|
| lockTime | ISO_DATE | Synchronize the lock's clock | No |
Unlock
Unlocks the device and optionally synchronizes its internal clock.
| Parameter | Type | Description | Required |
|---|---|---|---|
| lockTime | ISO_DATE | Synchronize the lock's clock | No |
Create Custom PIN Code
Creates a PIN code with specific access permissions and time restrictions.
Devices/locks supporting PIN are listed in Supported Devices.
| Parameter | Type | Description | Required |
|---|---|---|---|
| accessName | string | Display name for the PIN code, up to 60 characters | Yes |
| pin | string | 4-6 digit PIN code | Yes |
| pinType | number | PIN type (see table below) | Yes |
| startDate | string | When PIN becomes active (ISO_DATE format) | Yes |
| endDate | string | When PIN expires (ISO_DATE format) | Duration only |
PIN Types
| Type | ID | Description |
|---|---|---|
| One-Time | 1 | Valid for 24 hours from start date |
| Permanent | 2 | Valid indefinitely from start date |
| Duration | 4 | Valid between start and end dates |
One-Time PIN (24-hour validity):
Delete PIN Code
Removes a PIN code from the lock. An unactivated AlgoPIN with a start date more than 256 hours after its creation cannot be deleted.
| Parameter | Type | Description | Required |
|---|---|---|---|
| pin | string | PIN code to be deleted, 4-9 digits | Yes |
Get Battery Level
Retrieves the lock's current battery level as a percentage.
Get Device Status
Queries the lock's current operational status.
Get Activity Logs
Downloads activity logs from the lock. Optionally synchronizes the lock's clock. Activity logs are deleted from the lock after retrieval.
| Parameter | Type | Description | Required |
|---|---|---|---|
| lockTime | ISO_DATE | Synchronize the lock's clock | No |
Error Status Codes
| Status Code | Description | Applies To |
|---|---|---|
| 400 | Request validation failed, e.g. job type not supported. see documentation for supported job type(s) or pin type not supported. see documentation for supported pin type(s) |
All |
| 401 | Missing, invalid or expired access token | All |
| 402 | The igloohome API trial has ended, or the billing grace period has expired | All |
| 403 | The token lacks the scope for this job type | All |
| 404 | Bridge or device not found | All |
| 406 | PIN (123456) is already taken. Please try a different pin |
Create Custom PIN code |
| 406 | Lock is not linked to bridge |
All |
| 406 | Unable to contact bridge as it appears to be offline |
All |
| 415 | Missing Content-Type: application/json |
All |
| 500 | Unexpected server error | All |
Bridge Jobs
These jobs target the Bridge device itself, not a lock.
Send these jobs with Create a Bridge Targeted Job.
Job Creation
Create a job by making a POST request to:
/devices/{bridgeId}/jobs
bridgeId is the Bridge's device ID.
| Parameter | Type |
|---|---|
| jobType | integer, see Job Types for a full list |
Response
Job Types
| Job Type | Number |
|---|---|
| Get Device Status | 10 |
Job Details
Get Device Status (Bridge Diagnostic)
Once the job completes, you receive a webhook with the result. See Get Device Status for the payload.
Rate limit: one Get Device Status job per bridge every 5 minutes per user. Further requests return 429 with a Retry-After header (seconds).
Error Status Codes
| Status Code | Message (API Response) | Description | Applies To |
|---|---|---|---|
| 400 | Bad Request | The request was unacceptable, often due to a missing or invalid parameter (e.g., <field> is required). |
All |
| 401 | Unauthorized | No valid API key or access token was provided in the request header. | All |
| 402 | Payment Required (Various Messages) | The API trial has ended or the payment method was declined. Please verify billing details. | All |
| 403 | Forbidden | The authenticated user does not have the necessary permissions (scopes) for this resource. | All |
| 404 | Not Found | The requested resource does not exist or the endpoint URL is incorrect. | All |
| 405 | Method Not Allowed | The HTTP method used is not supported by this endpoint. | All |
| 406 | Unable to contact bridge as it appears to be offline | Unable to contact the bridge. Ensure the physical hardware is powered on and connected. | All |
| 415 | Unsupported Media Type | The Content-Type header must be set to application/json. | N/A |
| 429 | Too many requests. Please try again after X seconds. | Rate limit exceeded: one job per bridge every 5 minutes per user. Wait for the Retry-After seconds. |
All |
| 500 | Internal Server Error | An unexpected error occurred on our end. Please retry later or contact support. | All |
Create a Bridge Targeted Job
https://api.igloohome.co/home/devices/{bridgeId}/jobsCreates a job that targets a Bridge device directly, not a lock via
a bridge. Supports only jobType 10 (Get Device Status).
Rate limit: one GET_DEVICE_STATUS job per bridge every 5 minutes
per user (except for internal igloohome accounts).
Path Parameters
| Parameter | Type | Required |
|---|---|---|
| bridgeId | string | Yes |
Body Parameters
jobTypeinteger required
10 = Get Device Status. The only supported value.- Allowed values:
10
- Allowed values:
Request Example
Responses
OK
Bad Request
Unauthorized, invalid or expired authorization token
Response
Forbidden, accessToken scope must contain 'igloohomeapi/get-device-status-bridge-proxied-job'
Bridge Not Found
'{ error: 'Unable to contact bridge as it appears to be offline' }'
Unsupported Media Type
Too Many Requests. '{ error: 'Too many requests. Please try again after N seconds.' }'. The response includes a 'Retry-After' header (seconds).
Internal Server Error
Response body
jobIdstring
Response body
errorstring
Response body
errorstring
Response body
errorstring
Response body
errorstring
No example response recorded for this status code.
Create a Bridge Proxied Job
https://api.igloohome.co/home/devices/{deviceId}/jobs/bridges/{bridgeId}Creates a job for a lock via a Bridge device.
Supported Job Types
| Job Type | Number |
|---|---|
| Lock | 1 |
| Unlock | 2 |
| Create Custom PIN code (duration) | 4 |
| Delete PIN code | 5 |
| Get Battery Level | 9 |
| Get Device Status | 10 |
| Get Activity Logs | 15 |
jobData is only required for jobType 4 (Create Custom PIN code) and 5
(Delete PIN code).
| jobType | Required jobData fields |
|---|---|
| 4 (Create Custom PIN code) | accessName, pin, pinType, startDate, and endDate (only when pinType is 4/DURATION) |
| 5 (Delete PIN code) | pin only |
Path Parameters
| Parameter | Type | Required |
|---|---|---|
| deviceId | string | Yes |
| bridgeId | string | Yes |
Body Parameters
jobTypeinteger required
See the job type table above- Allowed values:
1,2,4,5,9,10,15
- Allowed values:
jobDataobject
Shape depends onjobType. See the table above. Omit for jobTypes other than 4 and 5.accessNamestring
Required whenjobTypeis 4 (Create Custom PIN code).pinTypeinteger
1 = One-Time, 2 = Permanent, 4 = Duration. Required whenjobTypeis 4.- Allowed values:
1,2,4
- Allowed values:
pinstring
4-6 digits whenjobTypeis 4 (Create Custom PIN code); 4-9 digits whenjobTypeis 5 (Delete PIN code).startDatestring<date-time>
Required whenjobTypeis 4. Must be in formatYYYY-MM-DDTHH:mm:ss+hh:mm.endDatestring<date-time>
Required whenjobTypeis 4 andpinTypeis 4 (Duration). Must be in formatYYYY-MM-DDTHH:mm:ss+hh:mmand afterstartDate.
Request Example
Responses
Job Created
Bad Request
Unauthorized, invalid or expired authorization token
Response
Forbidden, accessToken scope must contain the scope for the given 'jobType' (see table below)
Bridge or Device Not Found
Not Acceptable
Unsupported Media Type
Internal Server Error
Response body
jobIdstring
Response body
errorstring
Response body
errorstring
Response body
errorstring
No example response recorded for this status code.
Get Job Status
https://api.igloohome.co/home/jobs/{jobId}Returns the status of a job you created earlier.
Path Parameters
| Parameter | Type | Required |
|---|---|---|
| jobId | string | Yes |
Request Example
Responses
OK
Unauthorized, invalid or expired authorization token
Response
Forbidden, accessToken scope must contain 'igloohomeapi/get-job-status'
Not Found
'jobId' is not a valid job ID (24-character hex)
Internal Server Error
Response body
jobIdstringexpiryDatestringcompletedbooleanjobTypestringjobResponseobjectjobStatusinteger
0 = completed, 1 = pending, 2 = expired- Allowed values:
0,1,2
- Allowed values:
opResultobjectresultinteger
Response body
errorstring
No example response recorded for this status code.