Skip to main content
Filtering endpoints need a signed-in session, not an API token. The permissions are the same as in the dashboard: a superadmin for the server-wide scope (division_id absent or null), and Manage blocklists (filtering.manage) in a division for that division’s scope. Response policy zones are server-wide only, so they always need a superadmin. For how the pieces work together, see Filtering and Response policy zones.

Endpoints

GET /api/filtering returns clients, schedules, safe_search, server_safe_search, categories (the parental control categories) and the timezone schedules run in, next to the lists and rules.

Limiting to clients and a schedule

Lists, rules and safe search take two more fields:
string[]
Addresses, networks or client group names, e.g. ["Kids tablets", "10.0.5.0/24"]. Empty: every client of the scope.
integer
A schedule of the scope (or a server-wide one). null: always.

Client groups

PATCH /api/filtering/clients/{id} takes any of name, addresses (replaces them all) and comment. A group can’t be deleted while a list or rule still uses it.

Schedules

days takes mon … sun, ranges (mon-fri, fri-mon), weekdays, weekend or daily. An end before the start runs past midnight. PATCH /api/filtering/schedules/{id} takes any of name, days, start and end. A schedule can’t be deleted while a list or rule still uses it. PUT /api/filtering/safe-search:
youtube is off, moderate or strict. A division’s settings replace the server-wide ones for its devices; DELETE /api/filtering/safe-search?division_id=3 removes them again.

Response policy zones

All superadmin. Subscribe by zone transfer:
or by URL, with "source": "url", "url": "https://…" instead of primaries. policy is given (the zone’s actions), disabled (count only), nxdomain, nodata, passthru or drop. refresh_secs runs from 60 seconds to 7 days.

Audit log

Every change to lists, rules, networks, client groups, schedules, safe search and response policy zones is in the audit log. RPZ changes are under rpz.*.