DNSFilter Networks API
The Networks API from DNSFilter — 15 operation(s) for networks.
The Networks API from DNSFilter — 15 operation(s) for networks.
openapi: 3.0.0
info:
title: DNSFilter Agent Local User Bulk Deletes Networks API
description: "\n**Note:** If you are a distributor integrating with DNSFilter, please check\n out our [Distributors Development Guide](/docs/distributors).\n\n### Authentication\n\n- Authentication is required for most, but not all, endpoints.\n\n- Authentication is done by setting the `Authorization` request header.\n The header value is the API key itself.\n For example: `Authorization: eyJ...`\n\n- An API key can be obtained through the DNSFilter dashboard under\n Account Settings. For additional information see\n [this KB article](https://help.dnsfilter.com/hc/en-us/articles/21169189058323-API-Tokens).\n\n### Rate Limiting\n\n- All endpoints are rate limited.\n\n- The limits may vary by endpoint, but are generally consistent.\n\n- When the rate limit is exceeded the API will return the standard `429` HTTP status.\n\n- The following headers will also be provided in the response:\n `Retry-After`, `RateLimit-Policy`, `RateLimit`, `RateLimit-Limit`, `RateLimit-Remaining`, `RateLimit-Reset`.\n For details on the values of these headers, see the following articles\n [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After),\n [here](https://www.ietf.org/archive/id/draft-ietf-httpapi-ratelimit-headers-08.html),\n and [here](https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-05.html).\n\n- For additional information see [this KB article](https://help.dnsfilter.com/hc/en-us/articles/38202811088403-API-Rate-Limits).\n\n### Error Handling\n\n- The API uses standard HTTP status codes to indicate success or failure.\n\n- For _V1_ endpoints the response format is:\n ```json\n { \"error\": \"string\", \"type\": \"string(optional)\" }\n ```\n- For _V2_ endpoints the response format is:\n ```json\n { \"error\": { \"message\": \"string\", \"type\": \"string(optional)\" } }\n ```\n\n### Pagination\n\nFor the _V1_ endpoints, the pagination parameters are nested. That is to say,\nif passed as JSON they look like this: `{\"page[number]\": 1, \"page[size]\": 10}`.\n\nTo pass this information in the URL query string, it would be formatted like\nthis: `...?page%5Bnumber%5D=1&page%5Bsize%5D=10`.\n\nIn this guide, the UI will indicate that `page` is an `object` and if you\nwant to set values when trying the request, you must enter it as if it was\nthe JSON above.\n\n### A Quick Example\n\nThe following will return information about the currently\nauthenticated user.\n\n```bash\n% curl -H 'Authorization: ***' https://api.dnsfilter.com/v1/users/self\n\n{ \"data\": {\n \"id\": \"12345\",\n \"type\": \"users\",\n \"attributes\": {\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\",\n ...additional fields...\n}}}\n```\n"
version: '2026-07-13'
servers:
- url: https://api.dnsfilter.com
description: Production
tags:
- name: Networks
description: ''
paths:
/v1/networks:
get:
tags:
- Networks
operationId: V1_Networks-index
parameters:
- name: basic_info
description: Return most basic Network Info only. Defaults to False
required: false
in: query
schema:
type: boolean
- name: count_network_ips
description: Return count of IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: force_truncate_ips
description: Return Network info without IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: page
description: Page number and size
required: false
in: query
schema:
type: object
properties:
number:
type: integer
size:
type: integer
- name: protected
description: Filter networks with assigned policy
required: false
in: query
schema:
type: boolean
- name: search
description: Search for the given value among the network name, hostname, ip address, etc.
required: false
in: query
schema:
type: string
- name: unprotected
description: Filter networks without assigned policy
required: false
in: query
schema:
type: boolean
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Networks basic information
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NetworkSpec'
included:
type: array
items:
$ref: '#/components/schemas/IpAddressSpec'
links:
$ref: '#/components/schemas/Links'
description: Gets user's associated networks with basic information.
summary: Get extant
security:
- header_authorization: []
x-controller: v1/networks
x-action: index
post:
tags:
- Networks
operationId: V1_Networks-create
parameters: []
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Can not create network with the specified data
content:
application/json:
schema:
type: array
items:
type: string
'201':
description: Created network basic information
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/NetworkSpec'
description: Creates a new network with the specified data.
summary: Create
security:
- header_authorization: []
x-controller: v1/networks
x-action: create
requestBody:
description: Network information
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkCreateSpec'
/v1/networks/all:
get:
tags:
- Networks
operationId: V1_Networks-all
parameters:
- name: basic_info
description: Return most basic Network Info only. Defaults to False
required: false
in: query
schema:
type: boolean
- name: count_network_ips
description: Return count of IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: force_truncate_ips
description: Return Network info without IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: page
description: Page number and size
required: false
in: query
schema:
type: object
properties:
number:
type: integer
size:
type: integer
- name: protected
description: Filter networks with assigned policy
required: false
in: query
schema:
type: boolean
- name: search
description: Search for the given value among the network name, hostname, ip address, etc.
required: false
in: query
schema:
type: string
- name: unprotected
description: Filter networks without assigned policy
required: false
in: query
schema:
type: boolean
responses:
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Networks basic information
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NetworkSpec'
included:
type: array
items:
$ref: '#/components/schemas/IpAddressSpec'
links:
$ref: '#/components/schemas/Links'
description: Gets ALL networks associated to the user with its basic information.
summary: Get all
security:
- header_authorization: []
x-controller: v1/networks
x-action: all
/v1/networks/counts:
get:
tags:
- Networks
operationId: V1_Networks-counts
parameters:
- name: msp_id
description: MSP ID, will get info for all suborgs
required: false
in: query
schema:
type: integer
- name: organization_ids
description: Organization IDs, defaults to user organization ID
required: false
in: query
schema:
type: array
items:
type: integer
explode: true
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Network counts information
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkCounts'
description: Gets counts of networks for each network status.
summary: Counts
security:
- header_authorization: []
x-controller: v1/networks
x-action: counts
/v1/networks/msp:
get:
tags:
- Networks
operationId: V1_Networks-msp
parameters:
- name: basic_info
description: Return most basic Network Info only. Defaults to False
required: false
in: query
schema:
type: boolean
- name: count_network_ips
description: Return count of IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: force_truncate_ips
description: Return Network info without IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: organization_id
description: Organization ID
required: true
in: query
schema:
type: integer
- name: page
description: Page number and size
required: false
in: query
schema:
type: object
properties:
number:
type: integer
size:
type: integer
- name: protected
description: Filter networks with assigned policy
required: false
in: query
schema:
type: boolean
- name: unprotected
description: Filter networks without assigned policy
required: false
in: query
schema:
type: boolean
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Networks basic information
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NetworkSpec'
included:
type: array
items:
$ref: '#/components/schemas/IpAddressSpec'
links:
$ref: '#/components/schemas/Links'
description: Gets MSP user associated networks with basic information.
summary: Get extant MSP
security:
- header_authorization: []
x-controller: v1/networks
x-action: msp
/v1/networks/msp/all:
get:
tags:
- Networks
operationId: V1_Networks-msp_all
parameters:
- name: count_network_ips
description: Return count of IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: force_truncate_ips
description: Return Network info without IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: organization_id
description: Organization ID
required: true
in: query
schema:
type: integer
- name: page
description: Page number and size
required: false
in: query
schema:
type: object
properties:
number:
type: integer
size:
type: integer
- name: protected
description: Filter networks with assigned policy
required: false
in: query
schema:
type: boolean
- name: unprotected
description: Filter networks without assigned policy
required: false
in: query
schema:
type: boolean
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Networks basic information
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NetworkSpec'
included:
type: array
items:
$ref: '#/components/schemas/IpAddressSpec'
links:
$ref: '#/components/schemas/Links'
description: Gets ALL networks associated to the MSP user with its basic information.
summary: Get all MSP
security:
- header_authorization: []
x-controller: v1/networks
x-action: msp_all
/v1/networks/geo:
get:
tags:
- Networks
operationId: V1_Networks-geo
parameters: []
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Networks geo information
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NetworkGeo'
description: Gets user's associated networks with geo information only.
summary: Get Geo
security:
- header_authorization: []
x-controller: v1/networks
x-action: geo
/v1/networks/lookup:
get:
tags:
- Networks
operationId: V1_Networks-lookup
parameters:
- name: requesting_ip_address
description: IP address to lookup
required: true
in: query
schema:
type: string
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Lookup network basic information
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkLookup'
description: Gets basic information of a network based on its associated IP addresses.
summary: Get by IP
security: []
x-controller: v1/networks
x-action: lookup
/v1/networks/{id}:
get:
tags:
- Networks
operationId: V1_Networks-show
parameters:
- name: count_network_ips
description: Return count of IP Addresses. Defaults to False
required: false
in: query
schema:
type: boolean
- name: id
description: Network ID
required: true
in: path
schema:
type: integer
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: Networks basic information
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/NetworkSpec'
description: Gets basic information of the specified network.
summary: Show network
security:
- header_authorization: []
x-controller: v1/networks
x-action: show
patch:
tags:
- Networks
operationId: V1_Networks-update
parameters:
- name: id
description: Network ID
required: true
in: path
schema:
type: integer
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Can not update network with the specified data
content:
application/json:
schema:
type: array
items:
type: string
'200':
description: Updated network basic information
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/NetworkSpec'
description: Updates a network with the specified data.
summary: Update
security:
- header_authorization: []
x-controller: v1/networks
x-action: update
requestBody:
description: Network information
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkUpdateSpec'
delete:
tags:
- Networks
operationId: V1_Networks-destroy
parameters:
- name: id
description: Network ID
required: true
in: path
schema:
type: integer
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Network has active user agents or LAN proxies associated and cannot be deleted
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Can not delete network
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'204':
description: No Content
description: Deletes a network.
summary: Delete
security:
- header_authorization: []
x-controller: v1/networks
x-action: destroy
/v1/networks/bulk_create:
post:
tags:
- Networks
operationId: V1_Networks-bulk_create
parameters:
- name: Network
description: information
required: false
in: query
schema:
type: object
properties:
networks:
type: array
items:
$ref: '#/components/schemas/NetworkCreateSpec'
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Failed to create networks
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Bulk create multiple networks with the specified data.
summary: Bulk create
security:
- header_authorization: []
x-controller: v1/networks
x-action: bulk_create
/v1/networks/bulk_create/{id}:
get:
tags:
- Networks
operationId: V1_Networks-bulk_create_status
parameters:
- name: id
description: The ID of the bulk create job to check status on
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
total:
type: integer
successful:
type: integer
failed:
type: integer
skipped:
type: integer
failed_ids:
type: string
skipped_ids:
type: string
done:
type: boolean
description: Bulk create status.
summary: Bulk create status
security:
- header_authorization: []
x-controller: v1/networks
x-action: bulk_create_status
/v1/networks/bulk_update:
post:
tags:
- Networks
operationId: V1_Networks-bulk_update
parameters: []
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Failed to update networks
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Bulk update multiple networks with the specified data.
summary: Bulk update
security:
- header_authorization: []
x-controller: v1/networks
x-action: bulk_update
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkBulkUpdateSpec'
/v1/networks/bulk_update/{id}:
get:
tags:
- Networks
operationId: V1_Networks-bulk_update_status
parameters:
- name: id
description: The ID of the bulk update job to check status on
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
total:
type: integer
successful:
type: integer
failed:
type: integer
skipped:
type: integer
failed_ids:
type: string
skipped_ids:
type: string
done:
type: boolean
summary: Bulk update status
security:
- header_authorization: []
x-controller: v1/networks
x-action: bulk_update_status
/v1/networks/bulk_destroy:
delete:
tags:
- Networks
operationId: V1_Networks-bulk_destroy
parameters: []
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Bulk destroy multiple networks.
summary: Bulk Delete
security:
- header_authorization: []
x-controller: v1/networks
x-action: bulk_destroy
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkBulkDestroySpec'
/v1/networks/bulk_destroy/{id}:
get:
tags:
- Networks
operationId: V1_Networks-bulk_destroy_status
parameters:
- name: id
description: The ID of the bulk update job to check status on
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
total:
type: integer
successful:
type: integer
failed:
type: integer
skipped:
type: integer
failed_ids:
type: string
skipped_ids:
type: string
done:
type: boolean
description: Bulk destroy status.
summary: Bulk delete status
security:
- header_authorization: []
x-controller: v1/networks
x-action: bulk_destroy_status
/v1/networks/{id}/secret_key:
post:
tags:
- Networks
operationId: V1_Networks-generate_secret_key
parameters:
- name: id
description: Network ID
required: true
in: path
schema:
type: integer
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Can not create secret key
content:
application/json:
schema:
type: array
items:
type: string
'200':
description: Updated network basic information
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/NetworkSpec'
description: Creates a new network secret key to be used by agents.
summary: Create Key
security:
- header_authorization: []
x-controller: v1/networks
x-action: generate_secret_key
delete:
tags:
- Networks
operationId: V1_Networks-revoke_secret_key
parameters:
- name: id
description: Network ID
required: true
in: path
schema:
type: integer
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Can not revoke secret key
content:
application/json:
schema:
type: array
items:
type: string
'200':
description: Updated network basic information
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/NetworkSpec'
description: Revokes a network secret key.
summary: Delete Key
security:
- header_authorization: []
x-controller: v1/networks
x-action: revoke_secret_key
patch:
tags:
- Networks
operationId: V1_Networks-rotate_secret_key
parameters:
- name: id
description: Network ID
required: true
in: path
schema:
type: integer
responses:
'400':
description: Bad Request
content:
application/json:
schema:
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dnsfilter/refs/heads/main/openapi/dnsfilter-networks-api-openapi.yml