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.
Safe search
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:
"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 underrpz.*.