AWS WAF
amazonaws · Cloud
This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. For the latest version of AWS WAF , use the AWS WAFV2 API and see the AWS WAF Developer Guide . With the latest version, AWS WAF has a single set of endpoints for regional and global use.
Authentication
Sample Requests
This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. For the latest version of AWS WAF , use the AWS WAFV2 API and see the <
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSWAF_20150824.CreateByteMatchSet |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateByteMatchSet" \ -H "X-Amz-Target: AWSWAF_20150824.CreateByteMatchSet"
import requests
headers = {
"X-Amz-Target": "AWSWAF_20150824.CreateByteMatchSet"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateByteMatchSet",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateByteMatchSet';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSWAF_20150824.CreateByteMatchSet'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateByteMatchSet"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSWAF_20150824.CreateByteMatchSet")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateByteMatchSet")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSWAF_20150824.CreateByteMatchSet"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateByteMatchSet";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSWAF_20150824.CreateByteMatchSet"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. For the latest version of AWS WAF , use the AWS WAFV2 API and see the <
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSWAF_20150824.CreateGeoMatchSet |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateGeoMatchSet" \ -H "X-Amz-Target: AWSWAF_20150824.CreateGeoMatchSet"
import requests
headers = {
"X-Amz-Target": "AWSWAF_20150824.CreateGeoMatchSet"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateGeoMatchSet",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateGeoMatchSet';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSWAF_20150824.CreateGeoMatchSet'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateGeoMatchSet"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSWAF_20150824.CreateGeoMatchSet")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateGeoMatchSet")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSWAF_20150824.CreateGeoMatchSet"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateGeoMatchSet";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSWAF_20150824.CreateGeoMatchSet"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. For the latest version of AWS WAF , use the AWS WAFV2 API and see the <
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSWAF_20150824.CreateIPSet |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateIPSet" \ -H "X-Amz-Target: AWSWAF_20150824.CreateIPSet"
import requests
headers = {
"X-Amz-Target": "AWSWAF_20150824.CreateIPSet"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateIPSet",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateIPSet';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSWAF_20150824.CreateIPSet'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateIPSet"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSWAF_20150824.CreateIPSet")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateIPSet")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSWAF_20150824.CreateIPSet"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/waf/2015-08-24/#X-Amz-Target=AWSWAF_20150824.CreateIPSet";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSWAF_20150824.CreateIPSet"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with AWS WAF?
AWS WAF is a Cloud API. Developers commonly use cloud APIs for:
- provisioning and managing cloud infrastructure
- automating deployments and container orchestration
- monitoring uptime and performance metrics
- managing storage buckets and databases
- setting up auto-scaling and load balancing
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. AWS WAF is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?