NetBox Endpoints Plugin
A NetBox plugin for managing wireless and wired endpoints (badges, phones, IoT devices) that don't fit the traditional Device model.
Overview
The Endpoints plugin provides dedicated models for mobile/endpoint devices that don't fit the traditional NetBox Device model:
- Vocera badges - Wireless communication badges
- Cisco IP phones - Desk phones, wireless phones
- IoT devices - Sensors, controllers, etc.
- Tablets/mobile devices - iPads, scanners, etc.
Unlike Devices, Endpoints:
- Don't require rack locations
- Have MAC address as primary identifier
- Support wireless (SSID) and wired (switch port) connections
- Track connection type and status independently
Features
- Endpoint Types - Define endpoint models (like DeviceType but for endpoints)
- Endpoints - Track individual endpoint devices with:
- MAC address (required, unique)
- Name, serial number, asset tag
- Site and location
- Primary IPv4/IPv6 (FK to IPAddress)
- Connection type (wireless/wired)
- SSID (wireless) or connected interface (wired)
- Tenant, contact, platform
- Status (active, offline, staged, decommissioned)
- Full tag and custom field support
- Plugin Integration - Other plugins can add tabs to endpoint detail pages
- REST API - Full API access at
/api/plugins/netbox-endpoints/ - Dashboard Widget - Endpoints summary with configurable grouping
Screenshots
Dashboard Widget
Endpoints summary widget with grouping by status, connection type, or endpoint type.
Requirements
- NetBox 4.0 or higher
- Python 3.10+
Installation
From PyPI (recommended)
pip install netbox-endpoints
From Source
git clone https://github.com/sieteunoseis/netbox-endpoints.git
cd netbox-endpoints
pip install -e .
Docker Installation
Add to your NetBox Docker requirements file:
# requirements-extra.txt
netbox-endpoints
Configuration
Add the plugin to your NetBox configuration:
# configuration.py or plugins.py
PLUGINS = [
'netbox_endpoints',
]
PLUGINS_CONFIG = {
'netbox_endpoints': {
# No configuration required - endpoints are stored in NetBox
}
}
Usage
Creating Endpoint Types
- Navigate to Plugins > Endpoints > Endpoint Types
- Click Add
- Select manufacturer and enter model name
- Optionally set default platform
Creating Endpoints
- Navigate to Plugins > Endpoints > Endpoints
- Click Add
- Enter MAC address (required)
- Select endpoint type, site, and other details
- Set connection type (wireless/wired)
- For wireless: enter SSID
- For wired: select connected interface
API Access
# List endpoints
curl -X GET "https://netbox.example.com/api/plugins/netbox-endpoints/endpoints/" \
-H "Authorization: Token $TOKEN"
# Create endpoint
curl -X POST "https://netbox.example.com/api/plugins/netbox-endpoints/endpoints/" \
-H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-d '{"mac_address": "00:11:22:33:44:55", "endpoint_type": 1, "site": 1}'
Plugin Integration
Other plugins (like netbox-catalyst-center) can register tabs on Endpoint detail pages using the standard NetBox @register_model_view decorator.
Development
Setup
git clone https://github.com/sieteunoseis/netbox-endpoints.git
cd netbox-endpoints
pip install -e ".[dev]"
Code Style
black netbox_endpoints/
isort netbox_endpoints/
flake8 netbox_endpoints/
Changelog
See CHANGELOG.md for release history.
Support
If you find this plugin helpful, consider supporting development:
License
Apache License 2.0 - See LICENSE for details.
Author
sieteunoseis
Release files for netbox-endpoints 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| netbox_endpoints-0.2.2.tar.gz | 20.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_endpoints-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.6 kB
Release files / netbox_endpoints-0.2.2.tar.gz
| Download URL | netbox_endpoints-0.2.2.tar.gz |
|---|---|
| Size | 20.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
21c9e65f4548a0729cb9157ee6582157cc9a3f4492598c2897cdfb38b99e5bdf
|
|
BLAKE2b-256 checksum How to use checksums |
7402f9844bd8ce660778f6a375e26b10ae7533558cf4716c2c41a5f0d318f974
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 12, 2026.
Transparency logRelease files / netbox_endpoints-0.2.2-py3-none-any.whl
| Download URL | netbox_endpoints-0.2.2-py3-none-any.whl |
|---|---|
| Size | 25.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8cb24ea57bb032d95df9d5d92825621f3c47e7d67b9cf013e831368e190ee43
|
|
BLAKE2b-256 checksum How to use checksums |
cfceb3b82b964feb7c32deb61fe2d1fd48128143911f9562a6e27db9d21ebe31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 12, 2026.
Transparency log