Skip to content

NextDNS Parental Control

NextDNS Blocker integrates with NextDNS Parental Control API to block entire categories (gambling, porn, etc.) and services (TikTok, Netflix, Fortnite, etc.) with schedule-based control.

Instead of manually blocking individual domains, NextDNS Parental Control:

  • Blocks all domains associated with a service (e.g., all TikTok CDNs, APIs, etc.)
  • Stays up-to-date as NextDNS maintains the domain lists
  • Reduces configuration - no need to find and block each domain yourself
  • Works with schedules - same schedule format as blocklist domains

Add a nextdns section to your config.json:

{
"nextdns": {
"parental_control": {
"safe_search": true,
"youtube_restricted_mode": false,
"block_bypass": true
},
"categories": [
{
"id": "gambling",
"description": "Betting sites - always blocked",
"unblock_delay": "never"
}
],
"services": [
{
"id": "tiktok",
"description": "TikTok - evenings only",
"unblock_delay": "4h",
"schedule": {
"available_hours": [
{
"days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
"time_ranges": [{"start": "18:00", "end": "22:00"}]
}
]
}
}
]
}
}

The parental_control object configures global NextDNS settings:

SettingTypeDescription
safe_searchbooleanForce SafeSearch on Google, Bing, DuckDuckGo, YouTube
youtube_restricted_modebooleanEnable YouTube Restricted Mode
block_bypassbooleanBlock VPNs, proxies, and alternative DNS services

NextDNS supports 7 native categories:

Category IDDescription
pornAdult/pornographic content
gamblingBetting and gambling sites
datingDating apps and websites
piracyPiracy and torrent sites
social-networksSocial networking platforms
gamingGaming platforms and services
video-streamingVideo streaming services

NextDNS supports 43 services across multiple categories:

facebook, instagram, twitter, tiktok, snapchat, whatsapp, telegram, messenger, discord, signal, skype, mastodon, bereal, vk, tumblr, pinterest, reddit, 9gag, imgur, google-chat

youtube, netflix, disneyplus, hbomax, primevideo, hulu, twitch, vimeo, dailymotion

fortnite, minecraft, roblox, leagueoflegends, steam, blizzard, xboxlive, playstation-network

tinder

spotify, amazon, ebay, zoom, chatgpt

Categories and services support the same schedule format as blocklist domains:

{
"id": "netflix",
"schedule": {
"available_hours": [
{
"days": ["saturday", "sunday"],
"time_ranges": [
{"start": "10:00", "end": "22:00"}
]
}
]
}
}

When outside the available hours, the service/category is blocked.

Terminal window
# Show from config.json
nextdns-blocker nextdns list
# Show live status from NextDNS API
nextdns-blocker nextdns list --remote
Terminal window
# Activate (start blocking)
nextdns-blocker nextdns add-category gambling
# Deactivate (stop blocking)
nextdns-blocker nextdns remove-category gambling
Terminal window
# Activate (start blocking)
nextdns-blocker nextdns add-service tiktok
# Deactivate (stop blocking)
nextdns-blocker nextdns remove-service tiktok
Terminal window
# Show all valid category IDs
nextdns-blocker nextdns categories
# Show all valid service IDs (grouped by type)
nextdns-blocker nextdns services
Terminal window
nextdns-blocker nextdns status

When you run nextdns-blocker config push (or the watchdog runs it automatically):

  1. Categories are activated/deactivated based on their schedule
  2. Services are activated/deactivated based on their schedule
  3. Global settings (safe_search, etc.) are applied

During panic mode:

  • Activations continue (blocks are maintained)
  • Deactivations are skipped (prevents removing blocks)
{
"nextdns": {
"parental_control": {
"safe_search": true,
"youtube_restricted_mode": false,
"block_bypass": true
},
"categories": [
{
"id": "gambling",
"description": "Always blocked",
"unblock_delay": "never"
},
{
"id": "porn",
"description": "Always blocked",
"unblock_delay": "never"
}
],
"services": [
{
"id": "tiktok",
"description": "Evenings and weekends",
"unblock_delay": "4h",
"schedule": {
"available_hours": [
{
"days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
"time_ranges": [{"start": "18:00", "end": "22:00"}]
},
{
"days": ["saturday", "sunday"],
"time_ranges": [{"start": "10:00", "end": "23:00"}]
}
]
}
},
{
"id": "fortnite",
"description": "Weekends only",
"unblock_delay": "1h",
"schedule": {
"available_hours": [
{
"days": ["saturday", "sunday"],
"time_ranges": [{"start": "10:00", "end": "22:00"}]
}
]
}
},
{
"id": "netflix",
"description": "After 7pm only",
"unblock_delay": "2h",
"schedule": {
"available_hours": [
{
"days": ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"],
"time_ranges": [{"start": "19:00", "end": "23:00"}]
}
]
}
}
]
}
}

Difference from Categories (blocklist grouping)

Section titled “Difference from Categories (blocklist grouping)”

Don’t confuse nextdns.categories with the top-level categories in config.json:

Featurenextdns.categoriesTop-level categories
SourceNextDNS Parental Control APIYour custom groups
DomainsManaged by NextDNSYou define the domains
IDsFixed (7 options)Any custom ID
Use caseBlock entire content typesGroup your domains

You can use both together for maximum control.