pynautobot
Nautobot API client library
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a running Nautobot instance with a valid API token; minimum Python 3.10.
- 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 · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most production and internal projects.
last release 2026-07-06 (39 days) · last repo commit 2026-08-07 · 55 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 125,753 downloads/mo, #11,802 on PyPI
Alternatives
Verify before relying
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")- 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.
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 on it.
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
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.
Requires a running Nautobot instance with a valid API token; minimum Python 3.10.
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")
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 packagespackagingrequestsurllib3 |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: pynautobot-3.1.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “nautobot api client”
- pynautobotpynautobot is a Python API client library for Nautobot, providing…
- codewords-clientA Python client library for the Codewords API with built-in FastAPI…
- twentyc.rpcA client library for consuming 20c's RESTful API, built on top of the…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also pynetbox · jenkinsapi · iaqualink · pynamodb · pipedream · vapi-server-sdk · python-digitalocean · nv-ingest-client · openshift · retryhttp