pfSense website screenshot

pfSense

pfSense is an open-source firewall and router operating system based on FreeBSD, developed and maintained by Netgate, providing stateful firewall, routing, VPN (IPsec, OpenVPN, WireGuard), captive portal, traffic shaping, and IDS/IPS capabilities for home and enterprise networks. It is available as pfSense Community Edition (CE) and pfSense Plus, both managed via a web UI. The unofficial pfSense-pkg-RESTAPI package adds a REST and GraphQL API with 200+ endpoints under /api/v2 for automating firewall management, authenticated via local users, API keys, or JWT.

1 APIs 0 Features
FirewallNetwork SecurityRouterVPNOpen SourceFreeBSDNetgate

APIs

pfSense REST API (pfSense-pkg-RESTAPI)

Community-maintained REST and GraphQL API package for pfSense CE and pfSense Plus exposing 200+ endpoints under /api/v2 for firewall, interface, service, user, and system manage...

Collections

GraphQL

pfSense GraphQL API

Community-maintained REST and GraphQL API package for pfSense CE and pfSense Plus exposing 200+ endpoints under /api/v2 for firewall, interface, service, user, and system manage...

GRAPHQL

Resources

🔗
VulnerabilityDisclosure
VulnerabilityDisclosure
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
Website
Website
🔗
Documentation
Documentation
💰
Pricing
Pricing
🔗
Download
Download
👥
GitHubOrganization
GitHubOrganization
🔗
Vendor
Vendor
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: pfSense REST API (pfSense-pkg-RESTAPI)
  version: 2.0.0
request:
  auth:
    type: basic
    username: '{{username}}'
    password: '{{password}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Obtain a JWT bearer token
      type: http
    http:
      method: POST
      url: https://{pfSenseHost}/api/v2/auth/jwt
      auth:
        type: basic
        username: '{{username}}'
        password: '{{password}}'
    docs: 'Authenticate as a local database user to obtain a signed JWT bearer

      token. Tokens default to one hour of validity; renew by calling this

      endpoint again.

      '
- info:
    name: Firewall Aliases
    type: folder
  items:
  - info:
      name: List firewall aliases
      type: http
    http:
      method: GET
      url: https://{pfSenseHost}/api/v2/firewall/aliases
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of results.
      - name: offset
        value: ''
        type: query
        description: Skip the first N results.
      - name: sort_by
        value: ''
        type: query
        description: Field name to sort by.
      - name: sort_order
        value: ''
        type: query
    docs: List firewall aliases
  - info:
      name: Get a single firewall alias
      type: http
    http:
      method: GET
      url: https://{pfSenseHost}/api/v2/firewall/alias
      params:
      - name: id
        value: ''
        type: query
    docs: Get a single firewall alias
  - info:
      name: Create a firewall alias
      type: http
    http:
      method: POST
      url: https://{pfSenseHost}/api/v2/firewall/alias
      body:
        type: json
        data: '{}'
    docs: Create a firewall alias
  - info:
      name: Update a firewall alias
      type: http
    http:
      method: PATCH
      url: https://{pfSenseHost}/api/v2/firewall/alias
      body:
        type: json
        data: '{}'
    docs: Update a firewall alias
  - info:
      name: Delete a firewall alias
      type: http
    http:
      method: DELETE
      url: https://{pfSenseHost}/api/v2/firewall/alias
      params:
      - name: id
        value: ''
        type: query
    docs: Delete a firewall alias
- info:
    name: Firewall Rules
    type: folder
  items:
  - info:
      name: List firewall rules
      type: http
    http:
      method: GET
      url: https://{pfSenseHost}/api/v2/firewall/rules
      params:
      - name: limit
        value: ''
        type: query
        description: Maximum number of results.
      - name: offset
        value: ''
        type: query
        description: Skip the first N results.
    docs: List firewall rules
  - info:
      name: Get a single firewall rule
      type: http
    http:
      method: GET
      url: https://{pfSenseHost}/api/v2/firewall/rule
      params:
      - name: id
        value: ''
        type: query
    docs: Get a single firewall rule
  - info:
      name: Create a firewall rule
      type: http
    http:
      method: POST
      url: https://{pfSenseHost}/api/v2/firewall/rule
      body:
        type: json
        data: '{}'
    docs: Create a firewall rule
  - info:
      name: Update a firewall rule
      type: http
    http:
      method: PATCH
      url: https://{pfSenseHost}/api/v2/firewall/rule
      body:
        type: json
        data: '{}'
    docs: Update a firewall rule
  - info:
      name: Delete a firewall rule
      type: http
    http:
      method: DELETE
      url: https://{pfSenseHost}/api/v2/firewall/rule
      params:
      - name: id
        value: ''
        type: query
    docs: Delete a firewall rule
- info:
    name: Firewall Apply
    type: folder
  items:
  - info:
      name: Apply pending firewall changes
      type: http
    http:
      method: POST
      url: https://{pfSenseHost}/api/v2/firewall/apply
    docs: Apply pending firewall changes
bundled: true