Inventory Device Name
Endpoints Summary
| Method | Path | Swagger |
|---|---|---|
GET |
/inventory_device_name/ |
Swagger ↗ |
POST |
/inventory_device_name/ |
Swagger ↗ |
GET |
/inventory_device_name/{name}/ |
Swagger ↗ |
PUT |
/inventory_device_name/{name}/ |
Swagger ↗ |
PATCH |
/inventory_device_name/{name}/ |
Swagger ↗ |
DELETE |
/inventory_device_name/{name}/ |
Swagger ↗ |
The Inventory Device Name API provides comprehensive management capabilities for network devices in the Zequenze Control platform. These endpoints enable full CRUD operations for device inventory management, including device registration, configuration, monitoring, and control operations like reboots and factory resets.
Base URL: https://control.zequenze.com/api/v1
Authentication: All endpoints require a Bearer token:
Authorization: Bearer <your-api-token>
Overview
The Inventory Device Name API is the core interface for managing network devices within the Zequenze Control system. This API category handles device lifecycle management, from initial registration through ongoing monitoring and maintenance operations.
Key capabilities include:
- Device Registration & Management: Add, update, and remove devices from your inventory
- Status Monitoring: Track device connectivity, configuration state, and operational status
- Remote Operations: Execute device operations like reboots, factory resets, and configuration synchronization
- Location & Organization: Organize devices by location and organization for better management
- Firmware Management: Handle firmware updates and version tracking
- CWMP/TR-069 Integration: Support for standard device management protocols
The API uses device names as the primary identifier for individual device operations, while supporting various filtering options for bulk operations. All device data includes both user-configurable fields (name, location, credentials) and system-generated information (status, connection history, hardware details).
Endpoints
GET /inventory_device_name/
Description: Retrieves a paginated list of all devices in your inventory. This endpoint supports extensive filtering options to help you find specific devices based on status, type, organization, or recent activity. It's the primary endpoint for building device dashboards, monitoring systems, and bulk operations.
Use Cases:
- Building device inventory dashboards
- Monitoring device status across your network
- Filtering devices by organization or location for management
- Finding devices that need attention (offline, pending updates)
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_name/?status=1&organization=123&limit=50&offset=0
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| type | integer | query | No | Filter devices by device profile/type ID |
| status | string | query | No | Filter by device status. Use '0', 'false', 'False' for Down devices; '1', 'true', 'True' for Up devices |
| last_status_change_from | string | query | No | Filter devices with status changes after specified datetime (ISO format: 2000-01-01 or 2000-01-01 00:01:00+00:00) |
| organization | integer | query | No | Filter devices by organization ID |
| limit | integer | query | No | Number of results per page (default pagination applies) |
| offset | integer | query | No | Starting index for pagination |
| pending | boolean | query | No | Include information about pending device settings |
| update_status | boolean | query | No | Refresh device status from configured helpers before returning data |
cURL Example:
curl -X GET "https://control.zequenze.com/api/v1/inventory_device_name/?status=1&limit=25&pending=true" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Example Response:
{
"count": 847,
"next": "https://control.zequenze.com/api/v1/inventory_device_name/?limit=25&offset=25",
"previous": null,
"results": [
{
"id": 1001,
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Router-Office-Main",
"customer_id": "CUST-12345",
"is_active": true,
"status": "Up",
"status_change": "2024-01-15T08:30:00Z",
"type": 5,
"type_short_name": "CPE-Router",
"software_version": "1.4.2",
"hardware_version": "Rev C",
"manufacturer": "TechCorp",
"unique_identifier": "MAC:00:1B:44:11:3A:B7",
"product_class": "InternetGatewayDevice",
"serial_number": "TC240115001",
"serial_number_alt": "ALT-240115-001",
"description": "Main office internet router",
"organization_id": 123,
"firmware_image": 89,
"firmware_image_is_pending": false,
"location_name": "Corporate Headquarters",
"location": 45,
"location_short_name": "HQ-Main",
"latitude": "40.7128",
"longitude": "-74.0060",
"username": "device_001",
"update_frequency": 300,
"address": "192.168.1.1",
"last_connection": "2024-01-15T14:22:33Z",
"last_configuration": "2024-01-15T09:15:20Z",
"last_change": "2024-01-15T09:15:20Z",
"created": "2024-01-10T10:00:00Z",
"debug": false,
"reboot": false,
"factory": false,
"device_factory": false,
"sync": false,
"reconf": false,
"pending_settings": "None"
}
]
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Returns paginated device list |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 400 | Bad Request - Invalid filter parameters |
POST /inventory_device_name/
Description: Creates a new device in your inventory. This endpoint registers a new device with the system, allowing you to set initial configuration, assign it to an organization and location, and configure management credentials. The device will be available for management operations once created.
Use Cases:
- Adding newly purchased devices to inventory
- Bulk device registration during network rollouts
- Pre-configuring devices before deployment
- Setting up device management credentials
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_name/
cURL Example:
curl -X POST "https://control.zequenze.com/api/v1/inventory_device_name/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Router-Branch-Office-A",
"customer_id": "CUST-67890",
"is_active": true,
"type": 5,
"serial_number": "TC240116002",
"description": "Branch office A primary router",
"organization_id": 124,
"location": 46,
"latitude": "34.0522",
"longitude": "-118.2437",
"username": "branch_router_a",
"password": "secure_password_123",
"update_frequency": 300
}'
Example Response:
{
"id": 1002,
"uuid": "660e8400-e29b-41d4-a716-446655440001",
"name": "Router-Branch-Office-A",
"customer_id": "CUST-67890",
"is_active": true,
"status": null,
"status_change": null,
"type": 5,
"type_short_name": "CPE-Router",
"software_version": null,
"hardware_version": null,
"manufacturer": null,
"unique_identifier": null,
"product_class": null,
"serial_number": "TC240116002",
"serial_number_alt": null,
"description": "Branch office A primary router",
"organization_id": 124,
"firmware_image": null,
"firmware_image_is_pending": false,
"location_name": null,
"location": 46,
"location_short_name": "Branch-A",
"latitude": "34.0522",
"longitude": "-118.2437",
"username": "branch_router_a",
"password": "secure_password_123",
"update_frequency": 300,
"address": null,
"last_connection": null,
"last_configuration": null,
"last_change": null,
"created": "2024-01-16T10:30:00Z",
"debug": false,
"reboot": false,
"factory": false,
"device_factory": false,
"sync": false,
"reconf": false,
"pending_settings": "None"
}
Response Codes:
| Status | Description |
|---|---|
| 201 | Created - Device successfully added to inventory |
| 400 | Bad Request - Invalid device data or missing required fields |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 409 | Conflict - Device name already exists |
GET /inventory_device_name/{name}/
Description: Retrieves detailed information for a specific device identified by its name. This endpoint provides complete device information including current status, configuration, hardware details, and connection history. Use this for device-specific monitoring and troubleshooting.
Use Cases:
- Displaying device details in management interfaces
- Checking device status and connectivity
- Retrieving device configuration before making changes
- Troubleshooting device connectivity issues
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_name/Router-Office-Main/?pending=true&update_status=true
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| name | string | path | Yes | Device name (URL encoded if contains special characters) |
| pending | boolean | query | No | Include pending settings information in response |
| update_status | boolean | query | No | Update device status from helpers before returning data |
cURL Example:
curl -X GET "https://control.zequenze.com/api/v1/inventory_device_name/Router-Office-Main/?pending=true" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Example Response:
{
"id": 1001,
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Router-Office-Main",
"customer_id": "CUST-12345",
"is_active": true,
"status": "Up",
"status_change": "2024-01-15T08:30:00Z",
"type": 5,
"type_short_name": "CPE-Router",
"software_version": "1.4.2",
"hardware_version": "Rev C",
"manufacturer": "TechCorp",
"unique_identifier": "MAC:00:1B:44:11:3A:B7",
"product_class": "InternetGatewayDevice",
"serial_number": "TC240115001",
"serial_number_alt": "ALT-240115-001",
"description": "Main office internet router",
"organization_id": 123,
"firmware_image": 89,
"firmware_image_is_pending": false,
"location_name": "Corporate Headquarters",
"location": 45,
"location_short_name": "HQ-Main",
"latitude": "40.7128",
"longitude": "-74.0060",
"username": "device_001",
"update_frequency": 300,
"address": "192.168.1.1",
"last_connection": "2024-01-16T14:22:33Z",
"last_configuration": "2024-01-15T09:15:20Z",
"last_change": "2024-01-15T09:15:20Z",
"created": "2024-01-10T10:00:00Z",
"debug": false,
"reboot": false,
"factory": false,
"device_factory": false,
"sync": false,
"reconf": false,
"pending_settings": "WiFi password update, Firmware upgrade to v1.4.3"
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Returns device details |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Device with specified name does not exist |
PUT /inventory_device_name/{name}/
Description: Completely updates a device's configuration by replacing all editable fields. This endpoint requires all writable fields to be provided and will overwrite the existing device configuration. Use for complete device reconfiguration or when you need to ensure all fields are set to specific values.
Use Cases:
- Complete device reconfiguration
- Standardizing device configurations across deployments
- Migrating device settings to new templates
- Bulk configuration updates with complete field control
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_name/Router-Office-Main/
cURL Example:
curl -X PUT "https://control.zequenze.com/api/v1/inventory_device_name/Router-Office-Main/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Router-Office-Main",
"customer_id": "CUST-12345-UPDATED",
"is_active": true,
"type": 5,
"serial_number": "TC240115001",
"serial_number_alt": "ALT-240115-001-UPD",
"description": "Main office internet router - Updated configuration",
"organization_id": 123,
"firmware_image": 92,
"firmware_image_is_pending": true,
"location_name": "Corporate Headquarters - Building A",
"location": 45,
"latitude": "40.7128",
"longitude": "-74.0060",
"username": "device_001_updated",
"password": "new_secure_password_456",
"update_frequency": 600,
"debug": false,
"reboot": false,
"factory": false,
"device_factory": false,
"sync": true,
"reconf": false
}'
Example Response:
{
"id": 1001,
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Router-Office-Main",
"customer_id": "CUST-12345-UPDATED",
"is_active": true,
"status": "Up",
"status_change": "2024-01-15T08:30:00Z",
"type": 5,
"type_short_name": "CPE-Router",
"software_version": "1.4.2",
"hardware_version": "Rev C",
"manufacturer": "TechCorp",
"unique_identifier": "MAC:00:1B:44:11:3A:B7",
"product_class": "InternetGatewayDevice",
"serial_number": "TC240115001",
"serial_number_alt": "ALT-240115-001-UPD",
"description": "Main office internet router - Updated configuration",
"organization_id": 123,
"firmware_image": 92,
"firmware_image_is_pending": true,
"location_name": "Corporate Headquarters - Building A",
"location": 45,
"location_short_name": "HQ-Main",
"latitude": "40.7128",
"longitude": "-74.0060",
"username": "device_001_updated",
"update_frequency": 600,
"address": "192.168.1.1",
"last_connection": "2024-01-16T14:22:33Z",
"last_configuration": "2024-01-16T15:45:12Z",
"last_change": "2024-01-16T15:45:12Z",
"created": "2024-01-10T10:00:00Z",
"debug": false,
"reboot": false,
"factory": false,
"device_factory": false,
"sync": true,
"reconf": false,
"pending_settings": "Sync requested, Firmware upgrade to v1.4.5 pending"
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Device configuration updated |
| 400 | Bad Request - Invalid data or missing required fields |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Device with specified name does not exist |
PATCH /inventory_device_name/{name}/
Description: Partially updates a device's configuration by modifying only the specified fields. This endpoint allows you to update individual device properties without affecting other settings. It's ideal for making targeted changes like updating credentials, triggering operations, or modifying specific configuration parameters.
Use Cases:
- Updating device credentials without changing other settings
- Triggering device operations (reboot, sync, factory reset)
- Modifying location or organizational assignments
- Updating firmware assignments and triggering upgrades
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_name/Router-Office-Main/
cURL Example:
curl -X PATCH "https://control.zequenze.com/api/v1/inventory_device_name/Router-Office-Main/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated description for main office router",
"firmware_image": 95,
"firmware_image_is_pending": true,
"reboot": true,
"sync": true
}'
Example Response:
{
"id": 1001,
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Router-Office-Main",
"customer_id": "CUST-12345-UPDATED",
"is_active": true,
"status": "Up",
"status_change": "2024-01-15T08:30:00Z",
"type": 5,
"type_short_name": "CPE-Router",
"software_version": "1.4.2",
"hardware_version": "Rev C",
"manufacturer": "TechCorp",
"unique_identifier": "MAC:00:1B:44:11:3A:B7",
"product_class": "InternetGatewayDevice",
"serial_number": "TC240115001",
"serial_number_alt": "ALT-240115-001-UPD",
"description": "Updated description for main office router",
"organization_id": 123,
"firmware_image": 95,
"firmware_image_is_pending": true,
"location_name": "Corporate Headquarters - Building A",
"location": 45,
"location_short_name": "HQ-Main",
"latitude": "40.7128",
"longitude": "-74.0060",
"username": "device_001_updated",
"update_frequency": 600,
"address": "192.168.1.1",
"last_connection": "2024-01-16T14:22:33Z",
"last_configuration": "2024-01-16T15:45:12Z",
"last_change": "2024-01-16T16:20:30Z",
"created": "2024-01-10T10:00:00Z",
"debug": false,
"reboot": true,
"factory": false,
"device_factory": false,
"sync": true,
"reconf": false,
"pending_settings": "Reboot requested, Sync requested, Firmware upgrade to v1.4.7 pending"
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Device partially updated |
| 400 | Bad Request - Invalid field values |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Device with specified name does not exist |
DELETE /inventory_device_name/{name}/
Description: Permanently removes a device from your inventory. This operation cannot be undone and will delete all associated device configuration, history, and settings. Use with caution and ensure the device is no longer needed in your management system.
Use Cases:
- Removing decommissioned devices from inventory
- Cleaning up test devices after development
- Removing devices that have been physically replaced
- Bulk cleanup of obsolete device entries
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_name/Router-Office-Main/
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| name | string | path | Yes | Device name to delete (URL encoded if contains special characters) |
cURL Example:
curl -X DELETE "https://control.zequenze.com/api/v1/inventory_device_name/Router-Old-Decommissioned/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Response Codes:
| Status | Description |
|---|---|
| 204 | No Content - Device successfully deleted |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions to delete device |
| 404 | Not Found - Device with specified name does not exist |
| 409 | Conflict - Device cannot be deleted (may have active connections or dependencies) |
Common Use Cases
Device Status Dashboard
Build a real-time dashboard showing device health across your network by using the GET list endpoint with status filtering and regular polling.
# Get all online devices
https://control.zequenze.com/api/v1/inventory_device_name/?status=1&update_status=true
# Get devices that recently went offline
https://control.zequenze.com/api/v1/inventory_device_name/?status=0&last_status_change_from=2024-01-15T00:00:00
Bulk Firmware Management
Manage firmware updates across multiple devices by filtering by device type and organization, then using PATCH to assign firmware images.
# Find all CPE routers in organization 123
https://control.zequenze.com/api/v1/inventory_device_name/?type=5&organization=123
# Update firmware for specific devices using PATCH with firmware_image and firmware_image_is_pending
Device Provisioning Workflow
Automate device deployment by creating devices with POST, configuring initial settings, then using device operations to sync and activate.
# 1. Create device with POST
# 2. Use PATCH to set sync=true to synchronize initial configuration
# 3. Monitor device status until it comes online
Remote Device Operations
Execute remote operations on devices using PATCH with operation flags like reboot, sync, factory reset.
# Reboot a device
PATCH /inventory_device_name/device-name/ with {"reboot": true}
# Factory reset and reconfigure
PATCH /inventory_device_name/device-name/ with {"factory": true, "reconf": true}
Location-Based Device Management
Organize and manage devices by geographic location using location fields and filtering for field technician workflows.
# Get all devices at a specific location
https://control.zequenze.com/api/v1/inventory_device_name/?location=45
# Update device location
PATCH /inventory_device_name/device-name/ with {"location": 46, "latitude": "34.0522", "longitude": "-118.2437"}
Best Practices
-
Use Pagination: Always implement pagination for list requests to avoid timeouts with large device inventories. Start with reasonable limits (25-100 devices).
-
Device Naming Strategy: Use consistent, meaningful device names that include location or function identifiers. Device names are the primary lookup mechanism.
-
Status Monitoring: Use the
update_status=trueparameter judiciously as it triggers real-time status checks which can impact performance. Consider caching status data for dashboard applications. -
Bulk Operations: For bulk updates, retrieve device lists first, then use PATCH for individual devices rather than PUT to avoid overwriting unrelated settings.
-
Error Handling: Implement proper retry logic for 5xx errors and respect rate limits. Device operations may take time to complete, so poll for status changes rather than assuming immediate completion.
-
Security: Never log or store device passwords in plain text. Use the password field only for setting new credentials, not for retrieval.
-
Operation Flags: When using operation flags (reboot, sync, factory), set them to
trueto trigger the operation. The system will handle resetting the flags after execution. -
Firmware Management: Always verify firmware compatibility before setting
firmware_image_is_pending=true. Monitor the device after firmware updates to ensure successful deployment.
No comments to display
No comments to display