> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trackup.me/llms.txt
> Use this file to discover all available pages before exploring further.

# List firewall rules

> List firewall rules belonging to the project. Required permission: firewall-rule.read.



## OpenAPI

````yaml https://api.trackup.me/openapi.json get /v1/projects/{id}/firewall-rules
openapi: 3.1.0
info:
  title: Trackup API
  description: >-
    API-key-accessible Trackup operations. Send your key in the `X-Api-Key`
    header.


    Keys belong to a team. `X-Team-Id` is not required; if supplied, it must
    match that team.


    Each operation lists its required key permission. The key creator must
    remain a team member and normally hold that permission. The ingest-only
    permissions `visitor.create`, `conversion.create`, and `request.create` do
    not need to be held by the creator.


    Project access and selection are described per operation. Session-only
    account, administration and OAuth operations are not part of this reference.


    The same operations are available as MCP tools at `/mcp` (Streamable HTTP).
    Authenticate with `X-Api-Key` or connect through OAuth, which issues an API
    key on consent.


    Schema validation errors return HTTP 422 with an `errors` object. Other
    errors generally contain `error` and `message`; operation-specific responses
    describe exceptions.
  version: 1.0.0
servers:
  - url: /
    description: Current API environment
security:
  - ApiKey: []
paths:
  /v1/projects/{id}/firewall-rules:
    get:
      tags:
        - Firewall rules
      summary: List firewall rules
      description: >-
        List firewall rules belonging to the project. Required permission:
        firewall-rule.read.
      operationId: listFirewallRules
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
        - in: query
          name: page
          schema:
            type: integer
            minimum: 1
            maximum: 10000
            default: 1
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleList'
        '401':
          description: The X-Api-Key header is missing or the API key is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >-
            The key is expired, revoked, lacks permission, or its creator no
            longer has the required team access. A conflicting X-Team-Id is also
            rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >-
            The requested resource was not found or is outside the permitted
            scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >-
            Invalid input. Each field path maps to its first validation message;
            _form identifies an object-level error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    FirewallRuleList:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              enabled:
                type: boolean
              mode:
                type: string
                enum:
                  - basic
                  - advanced
              weight:
                type: number
              expression:
                type: array
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      field:
                        type: string
                      operator:
                        type: string
                        enum:
                          - eq
                          - ne
                          - gt
                          - lt
                          - gte
                          - lte
                          - contains
                          - not_contains
                          - starts_with
                          - ends_with
                          - in
                          - not_in
                          - matches
                          - not_matches
                          - exists
                          - not_exists
                      value:
                        anyOf:
                          - type: string
                          - type: number
                          - type: boolean
                          - type: array
                            items:
                              type: string
                    required:
                      - field
                      - operator
                      - value
              action:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - allow
                      - block
                      - challenge
                      - redirect
                      - serve_page
                      - log
                  redirectUrl:
                    type: string
                  statusCode:
                    type: number
                  pageId:
                    type: string
                required:
                  - type
              projectId:
                type: string
              createdAt:
                type: string
              updatedAt:
                type: string
            required:
              - id
              - name
              - enabled
              - mode
              - weight
              - expression
              - action
              - projectId
              - createdAt
              - updatedAt
        count:
          type: number
      required:
        - data
        - count
      example:
        data:
          - id: 66666666-6666-4666-8666-666666666666
            name: Block traffic outside Brazil
            enabled: true
            mode: advanced
            weight: 10
            expression:
              - - field: ip.geoip.country
                  operator: not_in
                  value:
                    - BR
            action:
              type: block
              statusCode: 403
            projectId: 11111111-1111-4111-8111-111111111111
            createdAt: '2026-10-26T12:00:00.000Z'
            updatedAt: '2026-10-26T12:30:00.000Z'
        count: 1
    ApiError:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
      additionalProperties: true
    ValidationError:
      type: object
      properties:
        errors:
          type: object
          additionalProperties:
            type: string
      required:
        - errors
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Api-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.