NetBox is an open-source network infrastructure source of truth platform written in Python and released under the Apache 2 license. Since its debut in 2016, it has become the standard solution for modeling and documenting network infrastructure across thousands of organizations worldwide. The project functions as a successor to legacy IPAM and DCIM applications, providing a unified data model and interface for managing all networked components and resources.
The core purpose of NetBox is to serve as the central authority for network infrastructure state, defining and validating the intended state of network components without directly interacting with network nodes themselves. Instead, it makes infrastructure data programmatically accessible through APIs to purpose-built automation, monitoring, and assurance tools. This architectural separation enables organizations to construct flexible automation systems where individual tools can be swapped to meet changing needs while maintaining a predictable, modular workflow.
NetBox's comprehensive data model encompasses racks, devices, cables, IP addresses, VLANs, circuits, power systems, VPNs, and numerous other network primitives. The platform is built specifically for networks rather than as a general-purpose tool, providing natural and highly structured modeling capabilities that would be difficult to achieve with generic database solutions. The data model comes fully configured upon installation, eliminating the need for extensive initial setup and customization.
The platform emphasizes focused development on its core function of making network infrastructure programmatically accessible, deliberately avoiding the "all-in-one" approach that results in half-baked features. Users can extend NetBox's native data model with custom fields and tags to suit unique network requirements, and can write plugins to introduce entirely new objects and functionality. The permission system offers granular control, allowing administrators to restrict users to specific domains like cabling or IP address management, or to limit access by tenant.
NetBox includes custom validation and protection rules beyond its native validation, enabling administrators to define rules that ensure data integrity and prevent deletion of critical objects. The platform can render Jinja2 templates to generate device configurations from its own data, with templates uploadable individually or pulled from external sources like git repositories. Rendered configurations are retrievable via REST API for application to network devices through provisioning tools.
The project supports custom scripts for complex workflows, automated event rules that trigger scripts or webhooks in response to NetBox events, and comprehensive change logging that tracks creation, modification, and deletion of all managed objects with attribution to executing users. The platform supports 16 languages through Transifex translation.
According to GitGenius activity tracking across 3,688 issues and pull requests, the project demonstrates exceptional responsiveness with a median response latency of 0.0 hours and a mean of 1.9 hours. The most active labels are status: accepted with 1,822 items, netbox with 1,472 items, and type: bug with 1,398 items. Primary contributors include jeremystretch with 14,994 tracked events, arthanson with 3,910 events, and jnovinger with 2,636 events. The repository shares overlapping contributors with microsoft/vscode, microsoft/typescript, and rust-lang/rust, indicating cross-pollination with major open-source projects.