Skip to content

Get MSP hardware inventory

MSP only. Every hardware unit under the MSP's PARTNER control with the org it is currently registered in, its device, license state and whether it is bound to an access-controlled door.

POST/api/partner/hardware/getInventory

Authorizations

x-auth-apikeystringheaderrequired

Your Rhombus API key. Must be accompanied by the x-auth-scheme header set to api-token (or partner-api-token for partner endpoints).

Authorizationstringheader

Instead of an API key, an OAuth access token: Bearer <token>, with the read scope.

OAuth explains tokens and scopes.

Headers

x-auth-schemeenum<string>headerdefault: partner-api-token

Authentication scheme identifier. Use api-token or partner-api-token with the x-auth-apikey header, api or partner-api with x-auth-apikey plus a client certificate, api-oauth-token or partner-api-oauth-token with x-auth-access-token, and federated-token with x-auth-ft. A request with Authorization: Bearer <token> and no x-auth-scheme is treated as OAuth, and federated-token may also be sent as the x-auth-scheme and x-auth-ft query parameters.

Available options: api-token, api, api-oauth-token, federated-token, partner-api-token, partner-api, partner-api-oauth-token

x-auth-orgstring<RUUID>header

Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry Deprecation and Sunset: Tue, 05 Jan 2027 00:00:00 GMT). A malformed value returns 400 INVALID_AUTH_ORG; a client organization the partner cannot access returns 403 PARTNER_CLIENT_ACCESS_DENIED.

Length: 22 to 22

Body

application/json · object

Request for the MSP's controlled hardware (no fields).

Response

200 OK

application/json · object

The MSP's controlled hardware across all clients.

errorboolean | null
errorCodestring | null

Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.

errorMsgstring | null
unitsobject[] | null
Show child attributes
currentOrgNamestring | null
currentOrgUuidstring<RUUID> | null

base 64 (url-safe) uuid string

Example: "AAAAAAAAAAAAAAAAAAAAAA"

deviceUuidstring<RUUID> | null

base 64 (url-safe) uuid string

Example: "AAAAAAAAAAAAAAAAAAAAAA"

doorBoundboolean | null

True when a DC20 / DR40 / DR20 unit is bound to an access-controlled door.

hardwareTypeenum<string>

Available options: BLE_TRACKER, CAMERA, DOOR_SENSOR, ENVIRONMENTAL_SENSOR, OCCUPANCY_SENSOR, AUDIO_GATEWAY, EXECUTABLE, BADGE_READER, DOOR_CONTROLLER, BLE_BUTTON, IO_BOARD, ENVIRONMENTAL_GATEWAY, NVR, ROBOT, UNKNOWN

hwUuidstring<RUUID> | null

base 64 (url-safe) uuid string

Example: "AAAAAAAAAAAAAAAAAAAAAA"

licenseStatestring | null

Device license state (CLAIMED, RENEWED, ...) or UNLICENSED; null when unregistered.

modelenum<string>

Available options: RASPBERRY_PI_3, CAMERA_R1, CAMERA_R2, CAMERA_R2_LONG_RANGE, CAMERA_R2_180, CAMERA_R3, CAMERA_R4, CAMERA_R100, CAMERA_R120, CAMERA_R170, CAMERA_R200, CAMERA_R500, CAMERA_R510, CAMERA_R520, CAMERA_R600, SENSOR_ASSET_TAG_T1, SENSOR_DOOR_D1, SENSOR_DOOR_D20, SENSOR_ENVIRONMENTAL_E1, SENSOR_ENVIRONMENTAL_E15, SENSOR_ENVIRONMENTAL_E2, SENSOR_MOTION_M1, SENSOR_MOTION_M15, GATEWAY_A1, GATEWAY_A100, GATEWAY_ENVIRONMENTAL_E50, CAMERA_R220, CAMERA_R230, CAMERA_R36S, CAMERA_R410, CAMERA_R540, CAMERA_R545, BADGE_READER_DR1, BADGE_READER_DR40, BADGE_READER_DR20, DOOR_CONTROLLER_DC1, DOOR_CONTROLLER_DC20, DOOR_CONTROLLER_DC10, ETHERNET_TESTER_ET1, IO_BOARD_TB1, BLE_BUTTON_B10, BLE_BUTTON_B15, CAMERA_THIRD_PARTY_RELAY, CAMERA_THIRD_PARTY_NVR, CAMERA_THIRD_PARTY_NVR_MULTISENSOR, NVR_N100, CAMERA_R130, NVR_N500, CAMERA_R150, ROBOT_RC1, CAMERA_R210, CAMERA_R650, NVR_N550, NVR_N551, ROBOT_RC2, UNSPECIFIED

registeredboolean | null
serialstring | null
warningMsgstring | null

Errors

Like every operation, this one can also answer with the standard error body (errorCode, errorMsg). Errors explains each status and how to retry.

  • 400 Bad Request. errorCode is one of: BAD_REQUEST, VALIDATION_FAILED, MISSING_REQUIRED_FIELD, INVALID_JSON, INVALID_REQUEST_BODY, FEATURE_NOT_ENABLED, INVALID_AUTH_ORG, LOCATION_NOT_FOUND.
  • 401 Unauthorized. errorCode is one of: UNAUTHENTICATED, INVALID_CREDENTIAL, CREDENTIAL_EXPIRED, CREDENTIAL_REVOKED, CERTIFICATE_MISMATCH.
  • 403 Forbidden. errorCode is one of: FORBIDDEN, DOMAIN_NOT_ALLOWED, DEVICE_SCOPE_MISMATCH, ROLE_NOT_PERMITTED, FUNCTIONALITY_REQUIRED, PARTNER_FUNCTIONALITY_REQUIRED, PERMISSION_REQUIRED, PARTNER_CLIENT_ACCESS_DENIED, HARDWARE_NOT_AVAILABLE, HARDWARE_ALREADY_REGISTERED, PARTNER_PORTAL_NOT_ENABLED, MANAGED_BY_MSP, SUPER_ADMIN_RESTRICTED_BY_MSP, MSP_DESIGNATION_INVALID, NOT_MANAGED_CLIENT.
  • 429 Too Many Requests. errorCode is one of: RATE_LIMITED.
  • 500 Internal Server Error. errorCode is one of: INTERNAL_ERROR.
  • 503 Service Unavailable. errorCode is one of: SERVICE_UNAVAILABLE.