Inventory Device Serial
The
Inventoryinventory_device_serialDeviceendpointsSerial API providesprovide comprehensive device management capabilitiesthroughforserialinventorynumber-basedsystems,operations. These endpoints enableallowing you tomanage network devices, monitor their status in real-time, andperformfullCRUD operations onyour device inventorydevices using their serial numbers asuniqueidentifiers.identifiers.These endpoints are essential for device lifecycle management, status monitoring, and remote device operations in enterprise environments.
Base URL: https://control.zequenze.com/api/v1
Authentication: All endpoints require a Bearer token:
Authorization: Bearer <your-api-token>
Overview
The Inventory Device Serialinventory_device_serial API category isprovides designeda complete set of endpoints for managing network devices and equipment through their serial numbers, providing a robust interface for device inventory management, status monitoring, and configuration tracking.numbers. This API is particularly usefuldesigned for network administrators, IT teams, and organizations that need to maintaintrack, comprehensivemonitor, deviceand inventories.control devices across their infrastructure.
Key Features:Capabilities:
-
Device
LifecycleDiscovery & Registration: Create and register new devices in your inventory
Common UseIntegration Cases:Scenarios:
- Network
inventoryoperationsmanagementcentersandmonitoringauditingdevice health DeviceFieldstatusservicemonitoringapplicationsandtrackingalertingequipmentsystemsdeployments- Automated device provisioning
workflowsand configuration management ComplianceAssetreportingmanagement systems requiring real-time device status
The serial number serves as the primary identifier for individual device operations, making it ideal for hardware-based device management where serial numbers provide reliable unique identification.
Endpoints
GET /inventory_device_serial/
Description: Retrieves a paginated list of all devices in your inventory devices with extensivepowerful filtering capabilities. This endpoint supportsis real-timethe statusprimary updatesway to discover and comprehensivemonitor filtering options for efficient device discovery and monitoringdevices across your infrastructure.organization, providing comprehensive device information including status, location, and configuration details.
Use Cases:
GenerateDashboarddevice inventory reports filtered by organization or device type
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_serial/?status=true&organization=123&status=true&limit=50&offset=0
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| type | integer | query | No | Filter devices by device type ID ( |
| status | string | query | No | Filter by device status. Use '0' |
| last_status_change_from | string | query | No | Filter devices with status changes after |
| organization | integer | query | No | Filter devices by organization ID |
| limit | integer | query | No | Number of results per page ( |
| offset | integer | query | No | Starting index for pagination ( |
| pending | boolean | query | No | Include pending |
| update_status | boolean | query | No |
cURL Example:
curl -X GET "https://control.zequenze.com/api/v1/inventory_device_serial/?status=true&organization=123&status=true&pending=true&limit=25"20" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Example Response:
{
"count": 247,245,
"next": "https://control.zequenze.com/api/v1/inventory_device_serial/?limit=2520&offset=2520&organization=123&status=true&pending=true",
"previous": null,
"results": [
{
"serial_number"id": 1001,
"uuid": "SN123456789"550e8400-e29b-41d4-a716-446655440000",
"name": "Core-Switch-Router-Branch-Office-01",
"customer_id": "CUST-001-RTR",
"is_active": true,
"status": "Up",
"status_change": "2024-01-15T08:30:00Z",
"type": {5,
"id": 3,
"name"type_short_name": "Network Switch"enterprise-router",
"model"software_version": "15.1.4",
"hardware_version": "2.1",
"manufacturer": "Cisco Catalyst 9300"
}Systems",
"organization"unique_identifier": {"cisco-2921-router",
"id"product_class": "Router",
"serial_number": "FCZ1234567890",
"serial_number_alt": "ALT-FCZ1234567890",
"description": "Main router for branch office network infrastructure",
"organization_id": 123,
"name"firmware_image": 42,
"firmware_image_is_pending": false,
"location_name": "AcmeBranch CorpOffice IT"- }Network Room",
"status"location": true,15,
"last_status_change"location_short_name": "branch-01-netroom",
"latitude": "40.7128",
"longitude": "-74.0060",
"username": "device_agent_001",
"update_frequency": 300,
"address": "192.168.1.1",
"last_connection": "2024-01-15T14:30:22Z"22:00Z",
"ip_address": "192.168.1.10",
"location": "Data Center A - Rack 15",
"pending_changes": true,
"created_at"last_configuration": "2024-01-01T09:00:15T09:15:00Z",
"updated_at"last_change": "2024-01-15T14:30:22Z"15T09:15:00Z",
"created": "2024-01-10T16:45:00Z",
"debug": 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 for requested organization |
POST /inventory_device_serial/
Description: Creates a new device record in theyour inventory system. This endpoint allowsis used during device onboarding, allowing you to register new devices with completetheir configurationconfiguration, details,location, automaticallyand generatingmanagement trackingsettings recordsbefore forthey lifecyclecome management.online.
Use Cases:
RegisterBulknewlydevicepurchasedprovisioningorduringdeployednetworkdevicesdeploymentsBulk importPre-registering devicesfrombeforeprocurementfieldsystemsinstallation- Automated device discovery and registration
during provisioningworkflows - Integration with
asset managementprocurement systems adding new equipment
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_serial/
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| data | object | body | Yes | Complete device |
Request Body Example:
{
"name": "Switch-Floor-2-East",
"customer_id": "CUST-002-SW",
"is_active": true,
"type": 3,
"serial_number": "SN-SW-987654321",
"serial_number_alt": "ALT-987654321",
"description": "48-port access switch for second floor east wing",
"organization_id": 123,
"location_name": "Building A - Floor 2 - Network Closet",
"location": 22,
"latitude": "40.7589",
"longitude": "-73.9851",
"username": "switch_agent_002",
"password": "SecurePassword123!",
"update_frequency": 600
}
cURL Example:
curl -X POST "https://control.zequenze.com/api/v1/inventory_device_serial/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"serial_number": "SN987654321",
"name": "Edge-Router-05"Switch-Floor-2-East",
"customer_id": "CUST-002-SW",
"is_active": true,
"type": 1,3,
"organization": 123,
"ip_address"serial_number": "192.168.2.5"SN-SW-987654321",
"location": "Branch Office B",
"status": true,
"description": "Primary48-port edgeaccess routerswitch for branchsecond connectivity"floor east wing",
"organization_id": 123,
"location": 22,
"username": "switch_agent_002",
"password": "SecurePassword123!",
"update_frequency": 600
}'
Example Response:
{
"serial_number"id": 1002,
"uuid": "SN987654321"660f9511-f3ac-52e5-b827-557766551111",
"name": "Edge-Router-05"Switch-Floor-2-East",
"customer_id": "CUST-002-SW",
"is_active": true,
"status": "Down",
"status_change": null,
"type": {3,
"id": 1,
"name"type_short_name": "Router"access-switch",
"model"serial_number": "Cisco ISR 4331"
}SN-SW-987654321",
"organization": {
"id": 123,
"name"serial_number_alt": "Acme Corp IT"
}ALT-987654321",
"ip_address": "192.168.2.5",
"location": "Branch Office B",
"status": true,
"description": "Primary48-port edgeaccess routerswitch for branchsecond connectivity"floor east wing",
"pending_changes"organization_id": 123,
"location": 22,
"location_short_name": "bldg-a-floor-2",
"latitude": "40.7589",
"longitude": "-73.9851",
"username": "switch_agent_002",
"update_frequency": 600,
"created": "2024-01-15T15:30:00Z",
"debug": false,
"created_at"pending_settings": "2024-01-16T10:15:30Z",
"updated_at": "2024-01-16T10:15:30Z"None"
}
Response Codes:
| Status | Description |
|---|---|
| 201 | Created - Device successfully registered |
| 400 | Bad Request - Invalid |
GET /inventory_device_serial/{serial_number}/
Description: Retrieves detailed information for a specific device identified byusing its serial number.number Supportsas optionalthe real-timeidentifier. statusThis updatesendpoint provides complete device details including current status, configuration, and pendingoperational configuration reporting for comprehensive device monitoring.data.
Use Cases:
GetDevicecompletedetail pages in management interfaces
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/?update_status=true&pending=true
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| serial_number | string | path | Yes | |
| pending | boolean | query | No | Include |
| update_status | boolean | query | No |
cURL Example:
curl -X GET "https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/?update_status=true&pending=true" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Example Response:
{
"serial_number"id": 1001,
"uuid": "SN123456789"550e8400-e29b-41d4-a716-446655440000",
"name": "Core-Switch-Router-Branch-Office-01",
"customer_id": "CUST-001-RTR",
"is_active": true,
"status": "Up",
"status_change": "2024-01-15T08:30:00Z",
"type": {5,
"id": 3,
"name"type_short_name": "Network Switch"enterprise-router",
"model"software_version": "Cisco15.1.4",
Catalyst"hardware_version": 9300""2.1",
"manufacturer": "Cisco"Cisco }Systems",
"organization": {
"id": 123,
"name"unique_identifier": "Acme Corp IT"cisco-2921-router",
"code"product_class": "ACME-IT"
}Router",
"status": true,
"last_status_change"serial_number": "2024-01-15T14:30:22Z",
"ip_address": "192.168.1.10",
"mac_address": "00:1B:44:11:3A:B7",
"location": "Data Center A - Rack 15"FCZ1234567890",
"description": "PrimaryMain core switchrouter for databranch centeroffice connectivity"network infrastructure",
"firmware_version"organization_id": "16.12.05",123,
"pending_changes"firmware_image": true,42,
"pending_details": {
"configuration_updates": 3,
"firmware_update"firmware_image_is_pending": false,
"last_pending_change"location_name": "Branch Office - Network Room",
"location": 15,
"location_short_name": "branch-01-netroom",
"latitude": "40.7128",
"longitude": "-74.0060",
"username": "device_agent_001",
"update_frequency": 300,
"address": "192.168.1.1",
"last_connection": "2024-01-16T08:45:15T14:22:00Z"
},
"created_at"last_configuration": "2024-01-01T09:00:15T09:15:00Z",
"updated_at"last_change": "2024-01-16T08:15T09:15:00Z",
"created": "2024-01-10T16:45:00Z",
"debug": false,
"reboot": false,
"factory": false,
"device_factory": false,
"sync": false,
"reconf": false,
"pending_settings": "firmware_upgrade, location_update"
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Returns |
PUT /inventory_device_serial/{serial_number}/
Description: Performs a complete update of a device record, replacing all modifiable fields with the provided data. This endpoint is idealused for comprehensive device updates during major configuration changesreconfiguration or assetwhen managementsynchronizing updates.device data from external systems.
Use Cases:
- Complete device reconfiguration
afterduringhardwarenetwork changes AssetSynchronizingmanagementdeviceupdatesdatawhenfromdevicesexternalareinventoryrelocated or repurposedsystems- Bulk updates
fromwhenexternaldeviceinventoryprofilesmanagementorsystemslocations change MajorCorrectingconfigurationmultiplechangesdevicerequiringfieldsfullafterrecorddiscovery updates
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| serial_number | string | path | Yes | |
| data | object | body | Yes | Complete device |
Request Body Example:
{
"name": "Router-Branch-Office-01-Updated",
"customer_id": "CUST-001-RTR-NEW",
"is_active": true,
"type": 6,
"description": "Updated main router with enhanced security features",
"organization_id": 123,
"firmware_image": 45,
"firmware_image_is_pending": true,
"location_name": "Branch Office - Updated Network Room",
"location": 16,
"latitude": "40.7130",
"longitude": "-74.0062",
"username": "updated_device_agent_001",
"password": "NewSecurePassword456!",
"update_frequency": 180,
"debug": true,
"reboot": true
}
cURL Example:
curl -X PUT "https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Core-Switch-Router-Branch-Office-01-Updated",
"is_active": true,
"type": 3,
"organization": 123,
"ip_address": "192.168.1.15",
"location": "Data Center A - Rack 16",
"status": true,6,
"description": "Updated primarymain core switchrouter with newenhanced configuration"security features",
"firmware_version"organization_id": 123,
"16.12.06"firmware_image": 45,
"firmware_image_is_pending": true,
"location": 16,
"update_frequency": 180,
"reboot": true
}'
Example Response:
{
"serial_number"id": 1001,
"uuid": "SN123456789"550e8400-e29b-41d4-a716-446655440000",
"name": "Core-Switch-Router-Branch-Office-01-Updated",
"customer_id": "CUST-001-RTR-NEW",
"is_active": true,
"status": "Up",
"type": {6,
"id": 3,
"name"type_short_name": "Network Switch"enhanced-enterprise-router",
"model"serial_number": "Cisco Catalyst 9300"
}FCZ1234567890",
"organization": {
"id": 123,
"name": "Acme Corp IT"
},
"ip_address": "192.168.1.15",
"location": "Data Center A - Rack 16",
"status": true,
"description": "Updated primarymain core switchrouter with newenhanced configuration"security features",
"firmware_version"organization_id": 123,
"firmware_image": 45,
"firmware_image_is_pending": true,
"location": 16,
"location_short_name": "16.12.06"branch-01-updated-netroom",
"pending_changes"latitude": false,"40.7130",
"updated_at"longitude": "-74.0062",
"username": "updated_device_agent_001",
"update_frequency": 180,
"last_change": "2024-01-16T11:20:15Z"15T16:45:00Z",
"debug": true,
"reboot": true,
"pending_settings": "firmware_upgrade, reboot_scheduled"
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Device |
| 400 | Bad Request - Invalid data or validation errors |
PATCH /inventory_device_serial/{serial_number}/
Description: Performs a partial update of a device record, modifying only the specified fields while leaving other attributesothers unchanged. This endpoint is perfectideal for targeted updates like statuschanging changes,device locationstatus, updates,triggering operations, or individualupdating fieldspecific modifications.configuration parameters.
Use Cases:
UpdateTriggering device operations (reboot, factory reset, sync)
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| serial_number | string | path | Yes | |
| data | object | body | Yes | Object containing only the fields to |
Request Body Examples:
Trigger a device reboot:
{
"reboot": true,
"debug": true
}
Update location and firmware:
{
"location": 20,
"location_name": "New Data Center - Rack 15",
"firmware_image": 47,
"firmware_image_is_pending": true
}
Synchronize device configuration:
{
"sync": true,
"reconf": true
}
cURL Example:
curl -X PATCH "https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status"location": false,20,
"description"location_name": "DeviceNew offlineData forCenter scheduled- maintenance"Rack 15",
"firmware_image": 47,
"firmware_image_is_pending": true
}'
Example Response:
{
"serial_number"id": 1001,
"uuid": "SN123456789"550e8400-e29b-41d4-a716-446655440000",
"name": "Core-Switch-01-Updated"Router-Branch-Office-01",
"type": {
"id": 3,
"name"customer_id": "Network Switch"CUST-001-RTR",
"model"is_active": true,
"status": "Cisco Catalyst 9300"
}Up",
"organization"serial_number": {"FCZ1234567890",
"id"description": "Main router for branch office network infrastructure",
"organization_id": 123,
"name"firmware_image": 47,
"firmware_image_is_pending": true,
"location_name": "AcmeNew CorpData IT"Center },- "ip_address":Rack "192.168.1.15",
"location": 20,
"Datalocation_short_name": Center A - Rack 16""datacenter-rack-15",
"status": false,
"description": "Device offline for scheduled maintenance",
"firmware_version": "16.12.06",
"pending_changes": false,
"last_status_change"last_change": "2024-01-16T12:05:33Z"15T17:20:00Z",
"updated_at"pending_settings": "2024-01-16T12:05:33Z"location_update, firmware_upgrade"
}
Response Codes:
| Status | Description |
|---|---|
| 200 | Success - Device partially updated |
| 400 | Bad Request - Invalid |
DELETE /inventory_device_serial/{serial_number}/
Description: Permanently removes a device record from the inventory system. This operation is irreversible and should be used when devices are decommissioned, disposed of,replaced, or no longer part of theyour managed infrastructure.
Use Cases:
RemoveDecommissioningdecommissionedold equipment during hardware refreshes
Full URL Example:
https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/
Parameters:
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
| serial_number | string | path | Yes |
cURL Example:
curl -X DELETE "https://control.zequenze.com/api/v1/inventory_device_serial/SN123456789/FCZ1234567890/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Response Codes:
| Status | Description |
|---|---|
| 204 | No Content - Device successfully deleted |
| 401 |
Common Use Cases
Use Case 1: Real-timeDevice InfrastructureHealth Monitoring Dashboard
MonitorBuild a real-time dashboard showing device status across your network infrastructure by combining the list endpoint with status filtering and live updates.organization. Use GET /inventory_device_serial/ with ?status=false&status and organization filters, combined with update_status=true to identifyget offlinecurrent devicesdevice health. Implement pagination for large device fleets and triggeruse automatedlast_status_change_from alertsto oridentify maintenancerecently workflows.changed devices.
Use Case 2: Multi-tenantAutomated Device ManagementProvisioning
ManageImplement deviceszero-touch acrossdevice multiple organizationsprovisioning by leveraging organization filtering. Useusing to GETPOST /inventory_device_serial/?organization={org_id}segmentpre-register devicedevices managementwith fortheir differentserial clientsnumbers, orlocation, businessand unitsconfiguration whiletemplates. maintainingOnce centralizeddevices control.come online, use PATCH operations to trigger initial configuration sync and firmware updates.
Use Case 3: AutomatedRemote Device ProvisioningMaintenance
IntegratePerform maintenance operations across your device registration into your provisioning workflowfleet using POSTtargeted operationsPATCH torequests. automaticallySet registerreboot: newtruedevicesfor asdevice they'rerestarts, deployed,sync: followedtrueby PATCH operations to update status andfor configuration assynchronization, provisioningor progresses.firmware_image_is_pending: true with a specific firmware_image for scheduled upgrades.
Use Case 4: MaintenanceAsset WindowTracking and Location Management
Track device movements and locations by updating location, latitude, and longitude fields using PATCH operations. Use the PATCHlocation endpointfiltering in GET requests to updategenerate location-based reports and verify device status and descriptions during maintenance windows, providing clear visibility into which devices are offline for scheduled maintenance versus unexpected outages.placement.
Use Case 5: ConfigurationBulk ChangeDevice TrackingOperations
LeverageProcess large device inventories efficiently using the filtering capabilities of the list endpoint combined with bulk update operations. Filter by pending=truetypeparameteror organization to monitoridentify devicesdevice withgroups, pendingthen use individual PATCH requests to apply configuration changes,changes enablingor proactiveoperational management of configuration deployment and validation workflows.commands.
Best Practices
Pagination
Pagination:Strategy: Always use appropriate limit valuesand offset parameters when dealing with large device inventories. Start with reasonable page sizes (recommended:50-100 25-100)devices) forand listimplement operationsproper pagination logic to ensureavoid optimal performancetimeouts and preventmemory timeoutsissues.
Real-timeStatus Updates: Use the update_status=true parameter judiciously, as it can significantlymay increase response times forbut largeensures you get real-time device lists
Error Handling: Implement robust error handling for 404device responsesoperations. whenMany workingoperations with(reboot, serialfirmware numbers,updates) asare devicesasynchronous may- beuse removedthe pending_settings field to track operation status and implement polling or serialwebhook numbersstrategies mayfor becompletion mistypednotifications.
Security Considerations:
Performance Optimization:
Caching:Operational Safety:
debug: text,true flag during troubleshooting, but remember to disable it afterward
Monitor the pending_settings field to track ongoing operations and