Socket
Socket
Sign inDemoInstall

pycfdns

Package Overview
Dependencies
1
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    pycfdns

Cloudflare DNS API Python Wrapper


Maintainers
1

Readme

Manage DNS Records hosted by Cloudflare

Cloudflare DNS API Python Wrapper.

Quick start

Installation

python3 -m pip install pycfdns

Example usage

...
import aiohttp
from pycfdns import Client
...
    async with aiohttp.ClientSession() as client_session:
        client = Client(api_token="abc123", client_session=client_session)
        zones = await client.list_zones()
        print(zones)
...

API

Below is a quick overview of the classes and methods that are available in this package.

This package uses mypy to ensure it is strictly typed, and all API modesl are created as TypedDict objects.

Anything that is not exported in the base of the module (in the __init__.py file) are considered internal to this package and will change wihtout any notice, yoo should consider not using anything not found there.

Client

The Client class is your entrypoint to this package, this is what's providing the methods described below.

This method accepts the folowing arguments:

ArgumentType Description
api_tokenstr This is your personal API token to interface with the Cloudflare API, you can generate this token here: https://developers.cloudflare.com/api/tokens/create
client_sessionClientSession This neesd to be an instance of ClientSession from the aiohttp pacakge.
timeoutint | None This determines how long an API call can use (in seconds) before it times out, the default is 10 seconds.
List Zones

The Client.list_zones method can be used to list all zones available with the api_token passed to the Client object.

This method takes no arguments.

...
client = Client(session=session, api_token="abc123")
zones = await client.list_zones()
...

The zones variable in this example will be a list of ZoneModel objects.

List Records

The Client.list_dns_records method can be used to list all records within a zone.

This method accepts the folowing arguments:

ArgumentType Description
zone_idstr The ID of the zone to list records for.
namestr | None If this is passed in it will only match record matching the name.
typestr | None If this is passed in it will only match record matching the type.
...
client = Client(api_token="abc123", client_session=client_session)
records = await client.list_dns_records()
...

The records variable in this example will be a list of RecordModel objects.

Update Record

The Client.update_dns_record method can be used to update a record in a zone.

This method accepts the folowing arguments:

ArgumentType Description
zone_idstr The ID of the zone the record exist in.
record_idstr The ID of the record to list records for.
record_namestr The name of the record.
record_typestr The type of the record.
record_contentstr The content of the record.
record_commentstr | None The comment of the record.
record_proxiedbool | None The proxied state of the record.
record_tagslist[str] | None The tags of the record.
record_ttlint | None The TTL value of the record.
...
client = Client(api_token="abc123", client_session=client_session)
record = await client.update_dns_record(zone_id="abc123", record_id="abc123", record_name="abc", record_content="1.1.1.1", record_type="A")
...

The record variable in this example will be a RecordModel object representing the updated record.

Exceptions

This package have 2 defined exceptions:

Versioning

This package follows the SemVer framework to determine how to set the version.

Publishing

This package is published to PyPI when a new GitHub release is made.

The publishing itself is handled in GitHub actions with this workflow.

A history of release actions can be found here.

There is no fixed schedule for when a new version is published.

Disclaimer

This Python wrapper for the Cloudflare API is an independent project and is not endorsed, sponsored, or affiliated with Cloudflare, Inc. The use of Cloudflare's name, trademarks, and other intellectual property is for descriptive purposes only. All rights to Cloudflare's name, trademarks, and other intellectual property belong to Cloudflare, Inc. Use this wrapper at your own risk and ensure that you abide by Cloudflare's terms of service and API usage guidelines.

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc