Skip to main content

Python API Client for Pi-hole 6

Project description

pihole6api

This package provides a simple, modular SDK for the PiHole 6 REST API.

Features

  • Automatically handles authentication and renewal
  • Gracefully error management
  • Logically organized modules
  • Easily maintained

Installation

Install using pip or pipx:

pip install pihole6api

Install from source:

git clone https://github.com/sbarbett/pihole6api.git
cd pihole6api
pip install -e .

Quick Start

Initialize the Client

from pihole6api.client import PiHole6Client
client = PiHole6Client("https://your-pihole.local/", "your-password")

Example Usage

Get Pi-Hole Metrics

history = client.metrics.get_history()
print(history)  # {'history': [{'timestamp': 1740120900, 'total': 0, 'cached': 0 ...}]}
queries = client.metrics.get_queries()
print(queries)

Enable/Disable Blocking

client.dns_control.set_blocking_status(False, 60)
print(client.dns_control.get_blocking_status()) # {'blocking': 'disabled', 'timer': 60 ...}

Manage Groups

client.group_management.add_group("Custom Group", comment="For testing")
client.group_management.delete_group("Custom Group")

Manage Domains

client.domain_management.add_domain("ads.example.com", "deny", "exact")
client.domain_management.delete_domain("ads.example.com", "deny", "exact")

Manage Links

client.list_management.add_list("https://example.com/blocklist.txt", "block")
client.list_management.delete_list("https://example.com/blocklist.txt", "block")

Export/Import PiHole Settings

# Export settings and save as a .zip file
with open("pihole-settings.zip", "wb") as f:
    f.write(client.config.export_settings())

client.config.import_settings("pihole-settings.zip", {"config": True, "gravity": {"group": True}})

Flush Logs & Restart DNS

client.actions.flush_logs()
client.actions.restart_dns()

API Modules

Module Description
metrics Query history, top clients/domains, DNS stats
dns_control Enable/disable blocking
group_management Create, update, and delete groups
domain_management Allow/block domains (exact & regex)
client_management Manage client-specific rules
list_management Manage blocklists (Adlists)
config Modify Pi-hole configuration
ftl_info Get Pi-hole core process (FTL) info
dhcp Manage DHCP leases
network_info View network devices, interfaces, routes
actions Flush logs, restart services
padd Fetch summarized data for PADD

License

This project is license under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pihole6api-0.1.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

pihole6api-0.1.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file pihole6api-0.1.0.tar.gz.

File metadata

  • Download URL: pihole6api-0.1.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pihole6api-0.1.0.tar.gz
Algorithm Hash digest
SHA256 31c51ccaac424ea4a9bcb858081ced866f3424295aafff6657afe41f19c443c0
MD5 2faea1b884e2b23c13c337172b795a85
BLAKE2b-256 e82a71afcf9f0bfc92b76348a6b708736196f18d420e95db4a43cdcb7b8b2214

See more details on using hashes here.

File details

Details for the file pihole6api-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pihole6api-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pihole6api-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b02b770d81d66149b19aa05c964b40c90a37a96f4a7ee553beb57fe601d8bb82
MD5 147388187f69f8c58a6b974475e0c2c1
BLAKE2b-256 c1b8010be57ff6d692ae0c67cde7d6e147dfaa8bd5f67bcc1625c31c3c2b7767

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page