{"library":"nautobot","title":"Nautobot Network Automation Platform","description":"Nautobot is an open source network source of truth and automation platform built on Django. It provides a highly extensible data model for network inventory, IP address management (IPAM), and device configuration, alongside a powerful framework for custom automation jobs and plugins. The current version is 3.1.0, with frequent patch releases across major versions (2.x, 3.x) and a new major version released approximately every 6-12 months.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install nautobot"],"cli":{"name":"nautobot-server","version":"Nautobot version: 3.1.2"}},"imports":["from nautobot.extras.jobs import Job","from nautobot.dcim.models import Device","from nautobot.ipam.models import IPAddress","from nautobot.extras.plugins import PluginConfig"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from nautobot.dcim.models import Device\nfrom nautobot.extras.jobs import Job\n\n# Example: A simple job to list devices\nclass MyFirstJob(Job):\n    name = \"My First Nautobot Job\"\n    description = \"A simple job to list devices and log their names.\"\n    task_queue = \"default\"\n\n    def run(self, data, commit):\n        self.log_info(message=\"Starting MyFirstJob...\")\n        devices = Device.objects.all()\n        self.log_info(f\"Found {devices.count()} devices in the database.\")\n        for device in devices:\n            self.log_info(f\"- Device: {device.name}, Status: {device.status}\")\n        self.log_success(\"Job completed successfully!\")\n        return \"Success\"\n\n# To make this job available in Nautobot:\n# 1. Save this code as 'my_job.py' (or similar) in a directory configured for Nautobot jobs.\n# 2. In the Nautobot UI, navigate to Jobs, find 'My First Nautobot Job', and click 'Run'.\n# This quickstart demonstrates how to define a Job that interacts with Nautobot models\n# and is executed by the Nautobot platform.","lang":"python","description":"This quickstart demonstrates defining a basic Nautobot Job, a common way to extend Nautobot's functionality using Python. The `Job` class provides methods for interacting with Nautobot models and logging. This code is designed to be saved within a Nautobot job directory and executed via the Nautobot UI or `nautobot-server runjob` command, making use of the library's internal context.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"2.4.19","pypi_latest":"3.1.2","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":21.5,"avg_import_s":null,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"433.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":21.6,"import_time_s":null,"mem_mb":null,"disk_size":"438M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"437.4M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":21.8,"import_time_s":null,"mem_mb":null,"disk_size":"441M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"422.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":20,"import_time_s":null,"mem_mb":null,"disk_size":"427M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"422.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":19.6,"import_time_s":null,"mem_mb":null,"disk_size":"426M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"379.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"nautobot","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":24.3,"import_time_s":null,"mem_mb":null,"disk_size":"383M"}]}}