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

Uploaded Source

Built Distribution

pihole6api-0.1.3-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pihole6api-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c8878652bb53ba08f16bb796e90aeafa61d644e47c5b1a3e3e7c67026026c4e4
MD5 b632bbace811685f62e57d87ca960e7d
BLAKE2b-256 3167f861d3abaa15b53ce8296383e93b6cbb63a247335a9fedcd9527f9e9533f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pihole6api-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e784a97649c3fd54d87ccb4f827885551a5d504864d1398b3e78bb3f1764f3a8
MD5 1c16ded2f042ba4b147d064575f5da14
BLAKE2b-256 a2f729d5aec03340aa80e09b83a7787b64b896cb89ac35a8a121c2cc81b47263

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