pfSense Firewall Rules API

Manage firewall rules.

Operations 5

GET /firewall/rules List firewall rules #
GET /firewall/rule Get a single firewall rule #
POST /firewall/rule Create a firewall rule #
PATCH /firewall/rule Update a firewall rule #
DELETE /firewall/rule Delete a firewall rule #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pfsense-firewall-rules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pfsense-firewall-rules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: pfSense REST API (pfSense-pkg-RESTAPI) Authentication Firewall Rules API
  description: 'Community-maintained REST and GraphQL API package for pfSense CE and

    pfSense Plus that exposes 200+ endpoints under /api/v2 for firewall,

    interface, service, user, and system management. Authentication supports

    HTTP Basic, X-API-Key header, and JWT bearer tokens obtained from

    POST /api/v2/auth/jwt.


    Only a representative subset of the pfSense REST API surface

    (auth, firewall aliases, firewall rules, diagnostics) is modeled here.

    See the documentation linked under externalDocs for the full catalog.

    '
  version: 2.0.0
  contact:
    name: pfSense REST API documentation
    url: https://pfrest.org/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{pfSenseHost}/api/v2
  description: pfSense host running pfSense-pkg-RESTAPI.
  variables:
    pfSenseHost:
      default: pfsense.local
      description: Hostname or IP of the pfSense instance.
security:
- basicAuth: []
- apiKeyAuth: []
- bearerAuth: []
tags:
- name: Firewall Rules
  description: Manage firewall rules.
paths:
  /firewall/rules:
    get:
      tags:
      - Firewall Rules
      summary: List firewall rules
      operationId: listFirewallRules
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Array of firewall rules.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FirewallRule'
  /firewall/rule:
    get:
      tags:
      - Firewall Rules
      summary: Get a single firewall rule
      operationId: getFirewallRule
      parameters:
      - in: query
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: A firewall rule.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/FirewallRule'
    post:
      tags:
      - Firewall Rules
      summary: Create a firewall rule
      operationId: createFirewallRule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRule'
      responses:
        '200':
          description: Firewall rule created.
    patch:
      tags:
      - Firewall Rules
      summary: Update a firewall rule
      operationId: patchFirewallRule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRule'
      responses:
        '200':
          description: Firewall rule updated.
    delete:
      tags:
      - Firewall Rules
      summary: Delete a firewall rule
      operationId: deleteFirewallRule
      parameters:
      - in: query
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Firewall rule deleted.
components:
  parameters:
    Offset:
      in: query
      name: offset
      schema:
        type: integer
        default: 0
      description: Skip the first N results.
    Limit:
      in: query
      name: limit
      schema:
        type: integer
        default: 0
      description: Maximum number of results.
  schemas:
    FirewallRule:
      type: object
      properties:
        id:
          type: integer
        type:
          type: string
          enum:
          - pass
          - block
          - reject
        interface:
          type: array
          items:
            type: string
        ipprotocol:
          type: string
          enum:
          - inet
          - inet6
          - inet46
        protocol:
          type: string
        source:
          type: object
          additionalProperties: true
        destination:
          type: object
          additionalProperties: true
        descr:
          type: string
        disabled:
          type: boolean
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'HTTP Basic auth with a pfSense local database username and password.

        '
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'API key generated through the webConfigurator or API endpoints. Keys

        inherit the permissions of the user that issued them.

        '
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT bearer token obtained from POST /api/v2/auth/jwt. Tokens default

        to one hour of validity.

        '
externalDocs:
  description: pfSense-pkg-RESTAPI documentation
  url: https://pfrest.org/