SECURITY · DEVELOPER
Profiles, blocklists, filtering settings and query logs on their own account.
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
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.
nextdns_delete_profiles_by_profileWRITEDelete profile via DELETE /profiles/{profile}
nextdns_delete_profiles_by_profile_denylist_by_idWRITEDelete denylist entry via DELETE /profiles/{profile}/denylist/{id}
nextdns_delete_profiles_by_profile_logsWRITEClear logs via DELETE /profiles/{profile}/logs
nextdns_delete_profiles_by_profile_privacy_blocklists_by_idWRITEDelete privacy blocklist via DELETE /profiles/{profile}/privacy/blocklists/{id}
nextdns_get_profiles_by_profileREADGet profile via GET /profiles/{profile}
nextdns_get_profiles_by_profile_analytics_destinationsREADGet analytics destinations via GET /profiles/{profile}/analytics/destinations
nextdns_get_profiles_by_profile_analytics_destinations_seriesREADGet analytics destinations series via GET /profiles/{profile}/analytics/destinations;series
nextdns_get_profiles_by_profile_analytics_devicesREADGet analytics devices via GET /profiles/{profile}/analytics/devices
nextdns_get_profiles_by_profile_analytics_devices_seriesREADGet analytics devices series via GET /profiles/{profile}/analytics/devices;series
nextdns_get_profiles_by_profile_analytics_dnssecREADGet analytics dnssec via GET /profiles/{profile}/analytics/dnssec
nextdns_get_profiles_by_profile_analytics_dnssec_seriesREADGet analytics dnssec series via GET /profiles/{profile}/analytics/dnssec;series
nextdns_get_profiles_by_profile_analytics_domainsREADGet analytics domains via GET /profiles/{profile}/analytics/domains
nextdns_get_profiles_by_profile_analytics_domains_seriesREADGet analytics domains series via GET /profiles/{profile}/analytics/domains;series
nextdns_get_profiles_by_profile_analytics_encryptionREADGet analytics encryption via GET /profiles/{profile}/analytics/encryption
nextdns_get_profiles_by_profile_analytics_encryption_seriesREADGet analytics encryption series via GET /profiles/{profile}/analytics/encryption;series
nextdns_get_profiles_by_profile_analytics_ipsREADGet analytics ips via GET /profiles/{profile}/analytics/ips
nextdns_get_profiles_by_profile_analytics_ips_seriesREADGet analytics ips series via GET /profiles/{profile}/analytics/ips;series
nextdns_get_profiles_by_profile_analytics_ipversionsREADGet analytics ip versions via GET /profiles/{profile}/analytics/ipVersions
nextdns_get_profiles_by_profile_analytics_ipversions_seriesREADGet analytics ip versions series via GET /profiles/{profile}/analytics/ipVersions;series
nextdns_get_profiles_by_profile_analytics_protocolsREADGet analytics protocols via GET /profiles/{profile}/analytics/protocols
nextdns_get_profiles_by_profile_analytics_protocols_seriesREADGet analytics protocols series via GET /profiles/{profile}/analytics/protocols;series
nextdns_get_profiles_by_profile_analytics_querytypesREADGet analytics query types via GET /profiles/{profile}/analytics/queryTypes
nextdns_get_profiles_by_profile_analytics_querytypes_seriesREADGet analytics query types series via GET /profiles/{profile}/analytics/queryTypes;series
nextdns_get_profiles_by_profile_analytics_reasonsREADGet analytics reasons via GET /profiles/{profile}/analytics/reasons
nextdns_get_profiles_by_profile_analytics_reasons_seriesREADGet analytics reasons series via GET /profiles/{profile}/analytics/reasons;series
nextdns_get_profiles_by_profile_analytics_statusREADGet analytics status via GET /profiles/{profile}/analytics/status
nextdns_get_profiles_by_profile_analytics_status_seriesREADGet analytics status series via GET /profiles/{profile}/analytics/status;series
nextdns_get_profiles_by_profile_denylistREADList denylist via GET /profiles/{profile}/denylist
nextdns_get_profiles_by_profile_logsREADList logs via GET /profiles/{profile}/logs
nextdns_get_profiles_by_profile_logs_downloadREADDownload logs via GET /profiles/{profile}/logs/download
nextdns_get_profiles_by_profile_privacyREADGet privacy settings via GET /profiles/{profile}/privacy
nextdns_get_profiles_by_profile_privacy_blocklistsREADList privacy blocklists via GET /profiles/{profile}/privacy/blocklists
nextdns_get_profiles_by_profile_settings_performanceREADGet performance settings via GET /profiles/{profile}/settings/performance
nextdns_patch_profiles_by_profileWRITEUpdate profile via PATCH /profiles/{profile}
nextdns_patch_profiles_by_profile_denylist_by_idWRITEUpdate denylist entry via PATCH /profiles/{profile}/denylist/{id}
nextdns_patch_profiles_by_profile_privacyWRITEUpdate privacy settings via PATCH /profiles/{profile}/privacy
nextdns_patch_profiles_by_profile_privacy_blocklists_by_idWRITEUpdate privacy blocklist via PATCH /profiles/{profile}/privacy/blocklists/{id}
nextdns_patch_profiles_by_profile_settings_performanceWRITEUpdate performance settings via PATCH /profiles/{profile}/settings/performance
nextdns_post_profilesWRITECreate profile via POST /profiles
nextdns_post_profiles_by_profile_denylistWRITEAdd denylist entry via POST /profiles/{profile}/denylist
nextdns_post_profiles_by_profile_privacy_blocklistsWRITEAdd privacy blocklist via POST /profiles/{profile}/privacy/blocklists
nextdns_put_profiles_by_profile_denylistWRITEReplace denylist via PUT /profiles/{profile}/denylist
nextdns_put_profiles_by_profile_privacy_blocklistsWRITEReplace privacy blocklists via PUT /profiles/{profile}/privacy/blocklists
Put NextDNS behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.