pynautobot
Nautobot API client library
What it is and what it does
pynautobot is a Python client library that bridges your code to a Nautobot network infrastructure management platform via its REST API. It abstracts the HTTP layer, allowing you to query devices, sites, jobs, and other Nautobot objects as Python objects with familiar method calls like .get(), .filter(), and .all(). The library was originally forked from pynetbox and provides a structured way to read and manipulate network infrastructure data programmatically.
The package handles common REST API patterns—pagination, versioning, retry logic, and optional multithreading—so you don't have to. It exposes Nautobot's Apps and Models through an Endpoint abstraction, and includes a specialized JobsEndpoint class for executing Nautobot jobs with inputs and retrieving results. This makes it suitable for automation scripts, integration workflows, and tools that need to interact with a Nautobot instance.
Use it for:
- Query device inventory and network topology from Nautobot in automation scripts or monitoring tools.
- Execute Nautobot jobs programmatically with custom inputs and retrieve job results.
- Build integration layers between Nautobot and other network management or ticketing systems.
- Retrieve site, device, and tag data for reporting or compliance audits.
- Automate bulk operations on network infrastructure by querying and updating Nautobot objects.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pynautobot is a Python API client library for Nautobot, providing programmatic access to network infrastructure data stored in a Nautobot instance via REST API calls.
Yes. pynautobot is actively maintained, has low install friction, carries no known vulnerabilities, and is licensed permissively. Install it if you need to programmatically interact with a Nautobot instance; skip it if you don't have a Nautobot deployment or don't need API-level access to its data.
Install
pynautobot on PyPI
pip
pip install pynautobotuv
uv add pynautobotpoetry
poetry add pynautobotInstalling pynautobot
Before you install
Low install friction with a pure-wheel distribution and only three runtime dependencies (packaging, requests, urllib3). Active maintenance with a release 39 days ago and recent commits; supports modern Python versions from 3.10 through 3.14.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most production and internal projects.
Quickstart
pip install pynautobot
import pynautobot
nautobot = pynautobot.api(
url="http://localhost:8000",
token="d6f4e314a5b5fefd164995169f28ae32d987704f"
)
devices = nautobot.dcim.devices
switch = devices.get(name="hq-access-01")
Requires a running Nautobot instance with a valid API token; minimum Python 3.10.
Verify before relying
- Whether threading support for .filter() and .all() queries requires specific Nautobot MAX_PAGE_SIZE configuration beyond the documented recommendation.
- Performance characteristics and scalability limits for large-scale device or object queries.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4.0,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — packaging, requests, urllib3 |
| Maintenance | actively maintained — 39 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 125,753/month — #11,802 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pynautobot-3.1.1-py3-none-any.whl
Keywords: Nautobot
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
pynetboxPynetbox is a Python client library for…
permissive · top 5,000 on PyPI
jenkinsapiProvides a Python wrapper around Jenkins' REST…
permissive · top 5,000 on PyPI
iaqualinkAsynchronous Python library for monitoring and…
permissive · top 15,000 on PyPI
pynamodbPynamoDB provides a Pythonic ORM-like interface…
permissive · top 5,000 on PyPI
pipedreamProvides a Python client library for accessing…
unclear · top 15,000 on PyPI
vapi-server-sdkA Python SDK for the Vapi API, providing…
unclear · top 15,000 on PyPI
python-digitaloceanProvides Python bindings to the DigitalOcean…
copyleft · top 15,000 on PyPI
nv-ingest-clientPython client library for submitting and…
permissive · top 15,000 on PyPI
openshiftPython client library for interacting with…
permissive · top 15,000 on PyPI
retryhttpRetryhttp wraps HTTP client calls to…
permissive · top 5,000 on PyPI