Skip to content
Appwrite Firewall

Control traffic before it reaches your app_

Define project rules that match the request properties you care about, then deny, bypass, rate limit, redirect, or challenge traffic before it hits your API, Functions, or Sites.

Incoming
Your app
Firewall
  • 1allow-office
  • 2block-scrapers
  • 3api-rate-limit
  • 4eu-redirect
18.4KBlocked

Deny, bypass, rate limit, redirect, or challenge

Every rule applies one action when conditions match. Deny abusive traffic, bypass trusted clients, throttle per IP, redirect to maintenance URLs, or challenge suspicious requests before they continue.

One action per matching rule. Evaluation stops at the first match.
403

Deny

Reject matching requests before they reach your project.

Continue

Bypass

Allow the request and skip later Firewall rules.

429

Rate limit

Throttle matching requests that exceed a per-IP quota.

3xx

Redirect

Send matching clients to another location with a 3xx status.

Challenge

Challenge

Present a challenge before allowing suspicious clients through.

Match on rich request attributes

Build rules from the request properties that matter to your app. Combine conditions so a rule only fires when every filter matches.

Incoming

POST/v1/account/sessions

IP address
203.0.113.10
Country
DE
User agent
python-requests/2.31
Pathstarts with/v1/account
MethodequalsPOST
User agentcontainspython-requests

Deny

403

Every condition on a rule must match before the action runs.

Scope rules to API, Functions, or Sites

Apply policies to the project API, a specific Function, or a specific Site. Keep production APIs locked down while preview sites and health checks stay reachable.

Resource scope

Deny account mutations

POST /v1/account/*

DenyAPI

Choose where the rule evaluates matching traffic.

API

Selected

Project REST and GraphQL endpoints.

403

project

Functions

A specific Function execution endpoint.

200

fn_checkout

Sites

A specific Site deployment hostname.

200

site_storefront

Priority decides the first match

Lower priority numbers evaluate first. Place bypass allowlists ahead of broader deny, rate limit, or challenge rules so trusted traffic skips the rest of the chain.

Incoming

GET /v1/databases 10.0.4.21

-10

Office IP allowlist

Bypass

ip == 10.0.4.21

First match
0

Deny account mutations

Deny

path starts_with /v1/account

Skipped
10

Rate limit public API

Rate limit

path starts_with /v1

Skipped
Lower numbers evaluate first. The first match stops the chain.

Preview impact before you enable

Estimate how much recent traffic a draft rule would affect, then refine conditions before you turn it on.

Rate limit public API

Estimated impact

Draft
path starts_with /v1method == POST
Enable rule

Matched

3,35215.6%

Total traffic

Matched by rule

Matched requests over timeLast 24 hours

Monitor denied, limited, redirected, and challenged traffic

Track request volume alongside denied, rate-limited, redirected, and challenged outcomes on the Firewall page. Confirm policies after enablement without leaving the Console.

29,840requests+12% vs previous period
Last 24 hoursMonitor docs

Passed

26,883+8%

Denied

1,667+18%

Challenged

665+6%

Rate limited

517-3%

Redirected

108+2%

Block rate

7.3%+4%
Redirected
Rate limited
Challenged
Denied
Passed

FAQ_

Firewall rules run on Appwrite Cloud before traffic reaches your project resources. Scope a rule to the project API, a specific Function, or a specific Site. Console traffic is never blocked, so you can keep managing rules even when deny or rate limit policies are active.

Each matching rule applies one action: Deny returns 403, Bypass allows the request and skips later rules, Rate limit throttles per client IP with a 429 when over quota, Redirect sends clients to another location with a 3xx status, and Challenge verifies suspicious clients before allowing them through. There is no separate Allow action. Use Bypass to allowlist traffic that should skip later deny, rate limit, or challenge rules.

Every rule needs at least one condition. All conditions on a rule must match (AND). Rules evaluate by priority (lower numbers first). The first matching enabled rule decides the outcome and stops evaluation.

Yes. While creating a rule, the Console estimates how many recent usage events would match your current conditions for the selected resource scope and date range. Use that preview to tighten filters before you enable the rule, then confirm outcomes in traffic overview.

The Firewall page chart summarizes Passed request volume alongside Denied, Rate limited, Redirected, and Challenged series for the selected date range. Bypass matches and under-quota rate limit matches allow traffic without publishing a Firewall outcome metric. Use the overview with your rules list to verify policies after enablement.

Firewall is available on Appwrite Cloud. Rule limits depend on your organization plan. Disabled rules still count toward plan limits but are not evaluated.

Start protecting with Firewall_

Create your first deny, bypass, rate limit, redirect, or challenge rule from the Console and preview impact before you enable it.