A Python wrapper for Porkbun API with extra features and shortcuts
Project description
Porkbun API
This is an API wrapper for Porkbun written in Python with few extra features/shortcuts.
This project is subject to breaking changes as Porkbun API may change and/or become invalid. I do not guarantee anything.
Installing
You can install this through PyPi with pip:
pip install porkbun-api
Or you can grab a .whl or .tar.gz file from Codeberg releases.
Usage
This wrapper supports everything other than operations with ID's for now.
Available functions and arguments:
Please keep in mind every function requires an apikey
and secretapikey
arguments, but you can set APIKEY
and SECRETAPIKEY
variables with their respective values and not have to give keys as arguments at every function call.
- ping()
- Optional:
ipv4only
(takes True or False and returns IPv4 only if True and IPv6 if available otherwise. Default = True). - Returns IP address.
- Optional:
- nsupdate()
- Requires
domain
(takes a string of the domain you want to work on) andnslist
(a list containing nameservers). - Does not return anything, changes the authoritative nameservers for given domain.
- Requires
- create()
- Requires
domain
,rtype
(string of the record type such as A, AAAA, MX, etc), andcontent
(string value for said request type such as the IP address). - Optional:
subdomain
(string subdomain for said domain) andttl
(integer number for time to live, default and minimum for Porkbun is 600).prio
(integer priority for record types that support it) - Does not return anything. Creates a new DNS record with given arguments.
- Requires
- read()
- Requires
domain
,rtype
. - Optional:
subdomain
. - Returns a list of records.
- Requires
- update()
- Requires
domain
,rtype
, andcontent
. - Optional:
name
ttl
, andprio
. - Does not return anything. Updates the matching record with given
content
- Requires
- delete()
- Requires
domain
andrtype
. - Optional
subdomain
. - Does not return anything. Deletes the matching record.
- Requires
- ddns_update()
- Requires
domain
. - Optional:
ip
(the string IP address to update the record with. If not given, uses the return of ping() as IP),subdomain
, andipv4only
. - Does not return anything. Updates the
domain
orsubdomain
's A or AAAA record depending on the IP type given.
- Requires
Examples
import porkbun_api as pb
from time import sleep # only as an example, not required.
pb.APIKEY = "pk1_..."
pb.SECRETAPIKEY = "sk1_..."
pb.ping()
pb.create(domain = "m3r.one", rtype = "A", content = "23.94.123.251")
pb.delete(domain = "m3r.one", rtype = "A", subdomain = "bin", apikey = "pk1_overwrite-the-variable", secretapikey = "sk1_overwrite-the-variable")
while True:
pb.ddns_update(domain = "m3r.one")
sleep(86400)
Notes
It is recommended to use try
- except
blocks with every function because it raises a PorkbunError
exception if Porkbun returns an error for whatever reason. Plus, requests
library will raise exceptions itself if something goes wrong with the request.
Feel free to open issues or contact me in case you wish to see extra features added.
This project is not affiliated with Porkbun LLC.
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
Built Distribution
Hashes for porkbun_api-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66c37014ac333346f0ee731398e41670edaad0c6b671790bf2bd7682d6409b83 |
|
MD5 | 26afbd89f5b1db8c1e85778861daf843 |
|
BLAKE2b-256 | b7a953e241baad441a94e4be1c3bacd71bb6a34e1dd509c6e7595ecb08e09909 |