Appwrite Firewall (WAF) API

Appwrite Firewall — traffic control and WAF rules for a project, announced 2026-09-04. 13 operations across 12 paths in the Appwrite 2.0.0 OpenAPI.

Business capability
Cybersecurity Management BC-620

Operations 13

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /waf/rules List the firewall rules in a project · List WAF rules #
Ask an LLM
“Which web application firewall rules are active on my Appwrite project?”
“Can I search my WAF rules by name?”
Tell an agent
List all WAF rules in this project.
Search my firewall rules for {search}.
POST /waf/rules/bypass Create a firewall rule that lets traffic skip checks · Create a bypass WAF rule #
Ask an LLM
“How do I let requests from my office IP range skip the firewall?”
“Can I allowlist traffic so it bypasses other WAF rules by header or country?”
Tell an agent
Create a bypass rule {ruleId} named {name} for resource type {resourceType}.
Add bypass rule {name} ({ruleId}) on {resourceType} so traffic matching {conditions} skips the firewall.
PATCH /waf/rules/bypass/{ruleId} Edit an existing bypass firewall rule · Update a bypass WAF rule #
Ask an LLM
“Can I change the conditions on a bypass rule I already created?”
“What do I change to temporarily disable an allowlist bypass rule?”
Tell an agent
Update the conditions of bypass rule {ruleId} to {conditions}.
Set enabled to {enabled} on bypass rule {ruleId}.
POST /waf/rules/challenge Create a proof-of-work challenge firewall rule · Create a challenge WAF rule #
Ask an LLM
“How do I make suspicious visitors solve a challenge before reaching my site?”
“Can I tune how hard the challenge is, from 1 to 5?”
Tell an agent
Create challenge rule {ruleId} named {name} on {resourceType}.
Add challenge rule {name} ({ruleId}) on {resourceType} with difficulty {difficulty} and clearance of {ttl} seconds.
PATCH /waf/rules/challenge/{ruleId} Edit an existing challenge firewall rule · Update a challenge WAF rule #
Ask an LLM
“Can I raise the difficulty on a challenge rule that is already live?”
“Is it possible to shorten how long visitors stay cleared on an existing challenge rule?”
Tell an agent
Change the difficulty of challenge rule {ruleId} to {difficulty}.
Set the clearance time on challenge rule {ruleId} to {ttl} seconds.
POST /waf/rules/deny Create a firewall rule that blocks matching traffic · Create a deny WAF rule #
Ask an LLM
“How do I block requests from a specific country or IP range?”
“Can a deny rule match on user agent or request path?”
Tell an agent
Create deny rule {ruleId} named {name} on {resourceType}.
Block all traffic matching {conditions} with a new deny rule {name} ({ruleId}) on {resourceType}.
PATCH /waf/rules/deny/{ruleId} Edit an existing blocking firewall rule · Update a deny WAF rule #
Ask an LLM
“Can I change which IPs an existing deny rule blocks?”
“What should I update to make a block rule run before my other rules?”
Tell an agent
Replace the conditions on deny rule {ruleId} with {conditions}.
Set the priority of deny rule {ruleId} to {priority}.
POST /waf/rules/rate-limit Create a rate-limit firewall rule · Create a rate-limit WAF rule #
Ask an LLM
“How do I cap how many requests a single IP can make per minute?”
“Can I rate limit per authenticated user instead of per IP address?”
Tell an agent
Create rate-limit rule {ruleId} named {name} on {resourceType} allowing {limit} requests every {interval} seconds.
Add rate limit {name} ({ruleId}) on {resourceType}: {limit} per {interval} seconds counted by {key}.
PATCH /waf/rules/rate-limit/{ruleId} Edit an existing rate-limit firewall rule · Update a rate-limit WAF rule #
Ask an LLM
“Can I loosen the request limit on a rate-limit rule already in place?”
“Is it possible to change the burst bucket size of an existing rate-limit rule?”
Tell an agent
Change rate-limit rule {ruleId} to allow {limit} requests per {interval} seconds.
Set the max bucket size of rate-limit rule {ruleId} to {maxBucketSize}.
POST /waf/rules/redirect Create a firewall rule that redirects matching traffic · Create a redirect WAF rule #
Ask an LLM
“How do I send visitors from certain countries to a different URL?”
“Can a firewall redirect rule choose the HTTP status code it returns?”
Tell an agent
Create redirect rule {ruleId} named {name} on {resourceType} sending traffic to {location} with status {statusCode}.
Redirect requests matching {conditions} to {location} using status {statusCode} via new rule {name} ({ruleId}) on {resourceType}.
PATCH /waf/rules/redirect/{ruleId} Edit an existing redirect firewall rule · Update a redirect WAF rule #
Ask an LLM
“Can I point an existing redirect rule at a new destination URL?”
“What do I change to switch a redirect rule from a temporary to a permanent status code?”
Tell an agent
Change the destination of redirect rule {ruleId} to {location}.
Set redirect rule {ruleId} to respond with status {statusCode}.
GET /waf/rules/{ruleId} Look up a single firewall rule · Get a WAF rule #
Ask an LLM
“What conditions and priority does a particular WAF rule have?”
“Can I see the full configuration of one firewall rule by its ID?”
Tell an agent
Get WAF rule {ruleId}.
Show me the configuration of firewall rule {ruleId}.
DELETE /waf/rules/{ruleId} Delete a firewall rule · Delete a WAF rule #
Ask an LLM
“How do I permanently remove a WAF rule of any type?”
“Does deleting a firewall rule immediately stop it from applying?”
Tell an agent destructive · confirm first
Delete WAF rule {ruleId}.
Remove firewall rule {ruleId} from the project.

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/appwrite:appwrite-waf-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

appwrite-waf-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Appwrite Waf API
  description: Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to https://appwrite.io/docs
  termsOfService: https://appwrite.io/policy/terms
  contact:
    name: Appwrite Team
    url: https://appwrite.io/support
    email: team@appwrite.io
  license:
    name: BSD-3-Clause
    url: https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE
servers:
- url: https://cloud.appwrite.io/v1
  description: Appwrite Cloud endpoint.
- url: https://{region}.cloud.appwrite.io/v1
  description: Appwrite Cloud regional endpoint. Replace `{region}` with your project region.
  variables:
    region:
      default: fra
      description: Appwrite Cloud region.
tags:


# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appwrite/refs/heads/main/openapi/appwrite-waf-api-openapi.yml