Control D
SECURITY · DEVELOPER
DNS profiles, filters, and resolver rules on the account they connected.
Connecting Control D in practice
Control D warns in its own getting-started page that the API has no versioning and that breaking changes can land without notice, and tokens come in exactly two strengths. Asking an agent to add one block rule means handing it a Write token, which is full read and write over every DNS profile, device and IP allow-list on the account.
Scopes that draw scrutiny
Write tokenControl D describes it as a "Full access token. Allows reads and writes" — the only level above Read, with no per-profile, per-device or per-endpoint narrowing.Read tokenView-only, but that still covers every profile, device and known-IP list on the organization, including the DNS analytics configuration.
Who has to approve
Token creation is an admin action: Control D documents the API section as the place where Organization admins and owners generate and manage API credentials. A token can additionally be pinned to an Allowed IPs list of comma-separated IPv4, IPv6 or CIDR entries, and both the type and that list can be edited afterwards.
Worth knowing
- The docs carry a standing usage warning: the API has no versioning, changes are usually non-breaking, and breaking changes can be introduced without warning.
- Every response is JSON with a success boolean; failures come back with success:false and an error object whose code repeats the HTTP status in its first three digits, so a client that inspects only one of the two can misread the other.
- Returned data lives under body.<controllerName>, not under a fixed key, so the response shape changes with the endpoint you called.
- Every object is addressed by a PK field rather than a conventional id, so identifiers have to be carried through from a list call.
Checked against Control D API getting started (2026-09-29), Control D API authentication (2026-09-29), Control D response conventions (2026-09-29), Control D organization API tokens (2026-09-29)
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
Often connected alongside
Put Control D behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.