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
  • Graceful error management
  • Logically organized modules
  • Easily maintained

Installation

Install using pip:

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 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

Contributing

Please check CONTRIBUTING.md for contribution guidelines.

Changelog

See CHANGELOG.md for a list of changes.

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.2.1.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pihole6api-0.2.1-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pihole6api-0.2.1.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for pihole6api-0.2.1.tar.gz
Algorithm Hash digest
SHA256 cbf416bc868dce4076d26780c5495e4496d8960ad2e8a9794cc78e1ab93233f9
MD5 f961c14f2cac3f8d51d13bf928c6d8d9
BLAKE2b-256 57e91dd06bee9b41c1b0d83ca8b31330cf21e9cca38d655a97e83a70bef772dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pihole6api-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for pihole6api-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc8775932cff7cee73d41e4e2ecbebb7b5c92e1c4fed1eab4de1ffbfafecf277
MD5 eac2583d7bcf22826305dd39ebf3793f
BLAKE2b-256 cfa316803cf5cf9a62072ed198ceda811ba42bcd74ff8e6e67dced2936573941

See more details on using hashes here.

Supported by

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