DNSFilter Organizations API

The Organizations API from DNSFilter — 7 operation(s) for organizations.

OpenAPI Specification

dnsfilter-organizations-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: DNSFilter Agent Local User Bulk Deletes Organizations 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: Organizations
  description: ''
paths:
  /v1/organizations:
    get:
      tags:
      - Organizations
      operationId: V1_Organizations-index
      parameters:
      - name: basic_info
        description: just return organizations basic info true/false, defaults to false
        required: false
        in: query
        schema:
          type: boolean
      - name: exclude_inherit_privacy_mode
        description: Exclude organizations that have inherit privacy mode
        required: false
        in: query
        schema:
          type: boolean
      - name: managed_by_msp_id
        description: MSPs sub-organizations whose MSP ID matches this value
        required: false
        in: query
        schema:
          type: integer
      - name: name
        description: Filter by organization name
        required: false
        in: query
        schema:
          type: string
      - name: owned_msp_id
        description: Parent organizations whose MSP ID matches this value
        required: false
        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: pii_grid_search
        description: Filter by organization name or privacy mode for pii grid search
        required: false
        in: query
        schema:
          type: string
      - name: type
        description: Filter by organization type
        required: false
        in: query
        schema:
          type: string
          enum:
          - normal
          - msp
          - sub_organization
      responses:
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '200':
          description: Organizations basic information
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/OrganizationSpec'
                  links:
                    $ref: '#/components/schemas/Links'
      description: Gets user's associated organizations basic information.
      summary: Get extant
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: index
    post:
      tags:
      - Organizations
      operationId: V1_Organizations-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'
        '422':
          description: Can not create organization with the specified data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '201':
          description: Created organization basic information
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/OrganizationSpec'
      description: Creates a new organization with the specified data.
      summary: Create
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: create
      requestBody:
        description: Organization information
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationCreateSpec'
  /v1/organizations/all:
    get:
      tags:
      - Organizations
      operationId: V1_Organizations-all
      parameters:
      - name: basic_info
        description: just return organizations basic info true/false, defaults to false
        required: false
        in: query
        schema:
          type: boolean
      - name: managed_by_msp_id
        description: MSPs sub-organizations whose MSP ID matches this value
        required: false
        in: query
        schema:
          type: integer
      - name: name
        description: Filter by organization name
        required: false
        in: query
        schema:
          type: string
      - name: owned_msp_id
        description: Parent organizations whose MSP ID matches this value
        required: false
        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: type
        description: Filter by organization type
        required: false
        in: query
        schema:
          type: string
          enum:
          - normal
          - msp
          - sub_organization
      responses:
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '200':
          description: Organizations basic information
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/OrganizationSpec'
                  links:
                    $ref: '#/components/schemas/Links'
      description: Gets all organizations basic information.
      summary: Get all
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: all
  /v1/organizations/{id}:
    get:
      tags:
      - Organizations
      operationId: V1_Organizations-show
      parameters:
      - name: id
        description: Organization ID
        required: true
        in: path
        schema:
          type: integer
      - name: include_current_mrr
        description: Optionally Include current MRR information
        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'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '200':
          description: Organization basic information
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/OrganizationSpec'
      description: Gets basic information of the specified organization.
      summary: Show organization
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: show
    patch:
      tags:
      - Organizations
      operationId: V1_Organizations-update
      parameters:
      - name: id
        description: Organization 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 organization with the specified data
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '200':
          description: Updated organization basic information
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/OrganizationSpec'
      description: Updates an organization with the specified data.
      summary: Update
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: update
      requestBody:
        description: Organization information
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationCreateSpec'
    delete:
      tags:
      - Organizations
      operationId: V1_Organizations-destroy
      parameters:
      - name: clear_subscription_info
        description: Clears subscription information tied to the customer, defaults to false
        required: false
        in: query
        schema:
          type: boolean
      - name: id
        description: MSP customer 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 delete the MSP customer or invalid customer ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '204':
          description: No Content
      description: Deletes an MSP customer.
      summary: Delete MSP
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: destroy
  /v1/organizations/settings:
    get:
      tags:
      - Organizations
      operationId: V1_Organizations-settings
      parameters:
      - name: msp_id
        description: MSP ID to set scope
        required: false
        in: query
        schema:
          type: integer
      - name: name
        description: Filter by organization name
        required: false
        in: query
        schema:
          type: string
      - name: organization_id
        description: Organization ID to set scope
        required: false
        in: query
        schema:
          type: integer
      - name: organization_ids
        description: Multiple organization IDs to set scope
        required: false
        in: query
        schema:
          type: string
      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: Organization basic information
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/OrganizationSpec'
      description: Gets basic information of the specified organization.
      summary: Get settings
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: settings
  /v1/organizations/bulk_update:
    patch:
      tags:
      - Organizations
      operationId: V1_Organizations-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 one or more organizations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '200':
          description: A +success+ flag indicating bulk update was successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
      description: Updates one or more organizations with the specified data.
      summary: Bulk update
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: bulk_update
      requestBody:
        description: Organization information
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationBulkUpdate'
  /v1/organizations/{id}/cancel:
    post:
      tags:
      - Organizations
      operationId: V1_Organizations-cancel
      parameters:
      - name: id
        description: Organization 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 cancel the organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '204':
          description: No Content
      description: Sets an organization as 'Canceled'.
      summary: Cancel
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: cancel
  /v1/organizations/promote_to_msp:
    post:
      tags:
      - Organizations
      operationId: V1_Organizations-promote_to_msp
      parameters:
      - name: plan
        description: 'Plan name, valid attributes: manual, tier1, tier2, tier3, friendly_wifi'
        required: false
        in: query
        schema:
          type: string
      - name: zapier_params
        description: 'info that are sent to zapier after promoting successfully a MSP. iex { querystring__org_id: 1111, querystring__user_id: 2222 }'
        required: false
        in: query
        schema:
          type: object
      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: User owned organization is cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '200':
          description: Organization info
          content:
            application/json:
              schema:
                type: object
      description: Promote an organization to a MSP.
      summary: Promote
      security:
      - header_authorization: []
      x-controller: v1/organizations
      x-action: promote_to_msp
components:
  schemas:
    Links:
      type: object
      properties:
        self:
          type: string
          description: Endpoint URL (may be null)
      description: JSON API links member representation
    OrganizationCreateSpec:
      type: object
      properties:
        organization:
          $ref: '#/components/schemas/OrganizationCreate'
      required:
      - organization
      description: Organization creation request parameters
    OrganizationBulkUpdate:
      type: object
      properties:
        organization_ids:
          type: array
          items:
            type: integer
          description: Organization IDs to update
        msp_id:
          type: integer
          description: MSP ID, scope update to all accessable sub-orgs (overrides organization_ids)
        exclude_organization_ids:
          type: array
          items:
            type: integer
          description: Organization IDs to exclude
        send_uninstall_notifications_to_admin_users:
          type: boolean
          description: True if uninstall notifications should be sent to admin users
        user_agent_uninstall_notification:
          type: boolean
          description: True if user agents uninstalls should trigger notification
        user_agent_uninstall_notification_recipient_emails:
          type: array
          items:
            type: string
          description: Recipients to receive uninstalled user agent notifications
        user_agents_auto_update:
          type: boolean
          description: True if user agents will auto update
        vpn_settings_organization_attributes:
          type: object
          properties:
            vpn_settings_state_type_id:
              type: integer
          description: Vpn organization settings
      description: Organization bulk update parameters
    OrganizationCreate:
      type: object
      properties:
        name:
          type: string
          description: Organization legal name
        billing_contact_name:
          type: string
          description: Contact name
        billing_contact_phone:
          type: string
          description: Contact phone
        billing_contact_email:
          type: string
          description: Contact email
        address:
          type: string
          description: Legal address
        managed_by_msp_id:
          type: integer
          description: Organization is managed by the specified MSP
        unique_id:
          type: string
          description: Used to determine custom login url for enterprise connections
        sku:
          type: string
          description: SKU for plan type selected
        quantity:
          type: integer
          description: Number of licenses to assign
        vpn_settings_organization_attributes:
          type: object
          properties:
            id:
              type: integer
            vpn_settings_state_type_id:
              type: integer
            _destroy:
              type: boolean
          description: Vpn organization settings
        privacy_mode:
          type: string
          enum:
          - inherit
          - standard
          - identify_devices
          - maximum
          description: Privacy mode for the organization, either
        enable_cybersight:
          type: boolean
          description: This will only enable access if the organization is entitled to CyberSight
      required:
      - name
      - managed_by_msp_id
      description: Organization creation request parameters
    Organization:
      type: object
      properties:
        id:
          type: integer
          description: ID
        address:
          type: string
          description: Organization legal address
        allow_create_network:
          type: boolean
          description: Current user can create new networks in the organization
        allowlist_updated_at:
          type: string
          format: date-time
          description: The datetime the allow list was last updated
        billing_address:
          type: string
          description: The organization's billing address
        billing_contact_email:
          type: string
          description: Contact email
        billing_contact_name:
          type: string
          description: Contact name
        billing_contact_phone:
          type: string
          description: Contact phone
        billing_manual:
          type: boolean
          description: Internal Use Only
        blocklist_updated_at:
          type: string
          format: date-time
          description: The datetime the block list was last updated
        canceled:
          type: boolean
          description: True if the organization has been canceled
        canceled_at:
          type: string
          format: date-time
          description: The datetime the organization was canceled
        external_id:
          type: string
          description: A unique identifier for external integrations
        feature_flags:
          type: array
          items:
            type: string
          description: Allowed features in APP
        fetched_onboard_details:
          type: boolean
          description: True if organization has provided onboarding details
        first_traffic_sent:
          type: string
          format: date-time
          description: The datetime the organizations first received DNS network traffic
        industry:
          type: string
          description: Internal Use Only
        managed_by_msp_id:
          type: integer
          description: Organization is managed by the specified MSP (may be null)
        metadata:
          type: string
          description: Internal Use Only
        msp_feature_flags:
          type: array
          items:
            type: string
          description: Allowed features in APP (defined for sub orgs only)
        name:
          type: string
          description: Organization legal name
        owned_msp_id:
          type: integer
          description: Organization is owned by an MSP (may be null)
        plan_details:
          type: string
          description: Internal Use Only
        release_channel:
          type: string
          description: Internal Use Only
        role:
          type: string
          description: Role
        send_uninstall_notifications_to_admin_users:
          type: boolean
          description: Notify admins of uninstall notifications
        sso_enabled:
          type: boolean
          description: Organization's SSO status
        stripe_customer_id:
          type: string
          description: Stripe ID
        summary_email_address:
          type: string
          description: The email to send the weekly summary of activity email
        summary_email_enabled:
          type: boolean
          description: True if the weekly summary of activity email should be sent
        sync_tools_auto_update:
          type: string
          description: Internal Use Only
        trial_days:
          type: integer
          description: Number of trial days (may be null)
        unbounce_data:
          type: string
          description: Internal Use Only
        unique_id:
          type: string
          description: A globally unique value among all organizations
        update_payment:
          type: boolean
          description: Organization has a valid payment method associated
        usage_alert_cents:
          type: string
          description: Internal Use Only
        user_agent_uninstall_notification:
          type: boolean
          description: Notify recipients when user agent is uninstalled
        user_agent_uninstall_notification_recipient_emails:
          type: array
          items:
            type: string
          description: Recipients to receive uninstalled user agent notifications
        user_agents_auto_update:
          type: boolean
          description: True if user agents will auto update
        will_cancel_at:
          type: string
          format: date-time
          description: The datetime the organization will be canceled
        active_psa_integration:
          type: boolean
          description: Organization has an active PSA integration
        segment:
          type: string
          description: Internal Use Only
        vpn_settings_organization:
          type: object
          properties:
            vpn_settings_state_type_id:
              type: integer
          description: Vpn organization settings
      description: Organization resource
    Error:
      type: object
      properties:
        error:
          type: string
          description: 'Error message (e.x.: Not Authorized)'
      description: Error basic representation
    OrganizationSpec:
      allOf:
      - $ref: '#/components/schemas/IdType'
      - type: object
        properties:
          attributes:
            $ref: '#/components/schemas/Organization'
          relationships:
            type: object
            properties:
              networks:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/IdType'
            description: Network associated resources
      description: Organization specification
    IdType:
      type: object
      properties:
        id:
          type: string
          description: Resource Id (integer or uuid)
        type:
          type: string
          description: Resource type name
        uuid:
          type: string
          description: Resource UUID (if applicable)
      description: JSON API resource ID and type attributes
  securitySchemes:
    header_authorization:
      type: apiKey
      name: Authorization
      in: header