REST API reference
User data methods
Initialize user data database (batch data creation)
- Type: POST
- URL:
<domain>/init/ - Data:
{ 'profiles': [ { 'cat_ids': [<cat_id>,], 'app_ids': [<app_id>,], 'profile': { 'page_id': <page_id>, 'id': <id> } }, ... ], 'nets': [{'ip': <ipv4>, 'profile_id': <profile_id>, 'prefix_len': <prefix_len4>}, ...], 'nets6': [{'ip': <ipv6>, 'profile_id': <profile_id>, 'prefix_len': <prefix_len6>}, ...], 'blockpages': [{'id': <page_id>, 'type': <blockpage_type>}, ...], 'napts': [ { 'ip': <ipv4>, "profile_id": <profile_id>, "lower_port_bound": <lower_port_bound>, "upper_port_bound": <upper_port_bound> }, ] } - Result: 204 No body
Profile methods
Fetch all profiles
- Type: GET
- URL:
<domain>/profiles - Result: 200 OK
Add a profile
- Type: POST
- URL:
<domain>/profiles - Data:
{ "profile": { "id": int, "page_id": int }, "cat_ids": [int, ], "app_ids": [int, ], } - Result: 201 Created
Fetch a specific profile
- Type: GET
- URL:
<domain>/profiles/<id> - Result: 200 OK
Update a specific profile
- Type: PATCH
- URL:
<domain>/profiles - Data:
{ "app_ids": [int, ], "cat_ids": [int, ], "profile": { "plan_id": int, "provider_id": int, "white_list_only": bool, "hide_block_reason": bool, "empty_dns_answer": bool, "page_id": int, "tls": bool } } - Result: 200 OK
Blockpage methods
Get all blockpages
- Type: GET
- URL:
<domain>/blockpage - Result: 200 OK
Create a blockpage
- Type: POST
- URL:
<domain>/blockpage - Data:
{ "type": int, "id": int } - Result: 200 OK
Get a specific blockpage
- Type: GET
- URL:
<domain>/blockpage/<page_id> - Result: 200 OK
Update a blockpage
- Type: PATCH
- URL:
<domain>/blockpage/<page_id> - Data:
{ "type": int } - Result: 200 OK
Delete a blockpage
- Type: DELETE
- URL:
<domain>/blockpage/<page_id> - Result: 204 No Content, no body
Lists methods
Create an allow- or denylist
- Type: POST
- URL:
<domain>/profile/<profile_id>/bw_list - Data:
{ "type": "string", //"allow" or "deny" only "domains": ["string", "string", ] } - Result: 201 Created
Create an allow- or denylist with multiple entries
- Type: POST
- URL:
<domain>/profile/<profile_id>/bw_list/batch - Data:
{ "type": "string", //"allow" or "deny" only "domains": ["string", "string", ] } - Result: 201 Created
Update a domain in an allow- or denylist
- Type: PATCH
- URL:
<domain>/profile/<profile_id>/bw_list/<domain> - Data:
{ "type": "string", //"allow" or "deny" only "domain": "string", "profile_id": int } - Result: 200 OK
Delete a domain from an allow- or denylist:
- Type: DELETE
- URL:
<domain>/profile/<profile_id>/bw_list/<domain> - Result: 204 No Content, no body
IPv4 network methods
Create an IPv4 address entry
- Type: POST
- URL:
<domain>/net - Data:
{ "ip": "string", //IPv4 address in canonical form "profile_id": int, "prefix_len": int } - Result: 201 Created
Get an IPv4 address entry
- Type: GET
- URL:
<domain>/net/<int_ip> - Result: 200 OK
Update an IPv4 address entry
- Type: PATCH
- URL:
<domain>/net/<int_ip> - Data:
{ "ip": "string", //IPv4 address in canonical form "profile_id": int, "prefix_len": int } - Result: 200 OK
Delete an IPv4 address
- Type: DELETE
- URL:
<domain>/net/<int_ip> - Result: 204 No Content, no body
IPv6 network methods
Create an IPv6 address entry
- Type: POST
- URL:
<domain>/net6 - Data:
{ "ip": "string", //IPv6 address in canonical form "prefix_len": int, "profile_id": int } - Result: 201 Created
Get an IPv6 address entry
- Type: GET
- URL:
<domain>/net6/<ipv6> - Result: Dictionary with IPv6 and profile_id data
Update an IPv6 address entry
- Type: PATCH
- URL:
<domain>/net6/<ipv6> - Data:
{ "ip": "string", //IPv6 address in canonical form "prefix_len": int, "profile_id": int } - Result: 200 OK
Delete an IPv6 address
- Type: DELETE
- URL:
<domain>/net6/<ipv6> - Result: 204 No Content, no body
IPv4 NAT methods
Create an IPv4 NAT entry
- Type: POST
- URL:
<domain>/napt/ - Data:
{ "ip": "string", //IPv4 address in canonical form "lower_port_bound": int, "upper_port_bound": int, "profile_id": int } - Result: 201 Created
Create multiple IPv4 NAT entries
- Type: POST
- URL:
<domain>/napt/batch - Data:
[ { "ip": "string", //IPv4 address in canonical form "lower_port_bound": int, "upper_port_bound": int, "profile_id": int }, ] - Result: 201 Created
Get all IPv4 NAT entries by IP
- Type: GET
- URL:
<domain>/napt/<int_ip> - Result: 200 OK
Get a specific IPv4 NAT entry
- Type: GET
- URL:
<domain>/napt/<int_ip>/<lower_port_bound>/<upper_port_bound> - Result: 200 OK
Update an IPv4 NAT entry
- Type: PATCH
- URL:
<domain>/napt/<int_ip>/<lower_port_bound>/<upper_port_bound> - Data:
{ "ip": "string", //IPv4 address in canonical form "lower_port_bound": int, "upper_port_bound": int, "profile_id": int } - Result: 200 OK
Delete an IPv4 NAT entry
- Type: DELETE
- URL:
<domain>/napt/<int_ip>/<lower_port_bound>/<upper_port_bound> - Result: 204 No Content, no body
Delete multiple IPv4 NAT entries
- Type: DELETE
- URL:
<domain>/napt/batch - Data:
[ { "ip": "string", //IPv4 address in canonical form "lower_port_bound": int, "upper_port_bound": int, "profile_id": int }, ] - Result: 204 No Content, no body
AppBlocker methods
Get a list of all available AppBlocker categories
- Type: GET
- URL:
<domain>/app_aware/application/ - Result: 200 OK