5 min read

Tools & Resources
Beginner

API Pentesting Tools

A curated list of tools specifically designed for API reconnaissance, analysis, and exploitation.

Authorization Required

Only run these tools against APIs you own or have explicit written authorization to test. Content discovery and fuzzing generate traffic that is indistinguishable from an attack, and rate-limit tests are intended to degrade service.

The Toolkit

Twenty tools, ordered by the phase of an assessment they serve. Each install command is the upstream project's own preferred path — where a project publishes no package, the command builds from source.

Postman

Client / Testing
Docs

The most popular API client. Essential for manual testing, organizing collections, and automating requests.

Installation

brew install --cask postman

Burp Suite

Proxy / Scanner
Docs

The industry standard web proxy. Use it to intercept, modify, and scan API traffic.

Installation

# Download from website

Kiterunner

Reconnaissance
Docs

A high-performance API content discovery tool. Excellent for finding hidden endpoints.

Installation

# No Homebrew formula — use a release binary, or build from source:
git clone https://github.com/assetnote/kiterunner && cd kiterunner && make build

Arjun

Reconnaissance
Docs

HTTP parameter discovery suite. Finds hidden query parameters in API endpoints.

Installation

pip3 install arjun

ffuf

Fuzzing
Docs

Fast web fuzzer written in Go. Great for directory and endpoint discovery.

Installation

go install github.com/ffuf/ffuf/v2@latest

jwt_tool

Authentication
Docs

A toolkit for testing, tweaking, and cracking JSON Web Tokens (JWTs).

Installation

git clone https://github.com/ticarpi/jwt_tool && cd jwt_tool && pip3 install -r requirements.txt

SQLMap

Exploitation
Docs

Automatic SQL injection and database takeover tool. Works well on API endpoints.

Installation

brew install sqlmap

InQL

GraphQL
Docs

A Burp Suite extension for GraphQL security testing. Introspection, scanner, and more.

Installation

# Install via Burp BApp Store

grpcurl

gRPC
Docs

Like curl, but for gRPC. Interact with gRPC servers from the command line.

Installation

brew install grpcurl

Amass

Reconnaissance
Docs

In-depth attack surface mapping and asset discovery.

Installation

brew install amass

Nuclei

Scanning
Docs

Fast, template-based vulnerability scanner. Has hundreds of API-specific templates for common misconfigurations and CVEs.

Installation

go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

Caido

Proxy / Testing
Docs

Modern web security proxy — a lightweight Burp Suite alternative with a clean UI, built-in replay, and HTTPQL query language.

Installation

# Download from caido.io

graphql-cop

GraphQL
Docs

Security auditing tool for GraphQL. Checks introspection, batching, field suggestions, persisted queries, and DoS vectors.

Installation

git clone https://github.com/dolevf/graphql-cop && cd graphql-cop && pip3 install -r requirements.txt

mitmproxy

Proxy / Scripting
Docs

Interactive TLS-capable intercepting proxy. Scriptable in Python. Excellent for automated API traffic manipulation and gRPC interception.

Installation

brew install mitmproxy

HTTPie

Client / Testing
Docs

User-friendly HTTP client for the terminal. Great for quick manual API testing with readable output and session support.

Installation

brew install httpie

Schemathesis

Fuzzing / Automation
Docs

Property-based API testing powered by OpenAPI/GraphQL schemas. Automatically generates test cases from your spec and finds edge cases scanners miss.

Installation

pip3 install schemathesis

RESTler

Fuzzing / Automation
Docs

Microsoft's stateful REST API fuzzer. Infers producer-consumer dependencies from Swagger specs and generates intelligent sequences of API calls. Needs Python 3.12 and the .NET 8 SDK to build — RESTler is not published as a NuGet tool.

Installation

# Requires Python 3.12 and the .NET 8 SDK
git clone https://github.com/microsoft/restler-fuzzer && cd restler-fuzzer
python3.12 ./build-restler.py --dest_dir restler_bin

Cherrybomb

Static Analysis
Docs

Unmaintained — last release was October 2023 and the repository has been idle since. Kept here because it still runs: a CLI tool for API security validation that checks OpenAPI specs for OWASP API Top 10 risks, broken auth, excessive data exposure, and missing rate limits.

Installation

cargo install cherrybomb

clairvoyance

GraphQL
Docs

Reconstruct GraphQL schemas when introspection is disabled by exploiting field suggestion error messages.

Installation

pip3 install clairvoyance

wscat

WebSocket
Docs

WebSocket client for the terminal. Connect, send messages, and test WebSocket APIs from the command line.

Installation

npm install -g wscat

Quick Reference Cheatsheet

One-line forms of the commands used across this section, grouped by task and laid out for printing.

Reconnaissance

ffuf -u https://target.com/FUZZ -w api-endpoints.txt
kr scan https://target.com -w routes-large.kite
arjun -u https://target.com/api/users -m GET
curl -s https://target.com/swagger.json | jq .

JWT Attacks (jwt_tool)

python3 jwt_tool.py JWT -X a          # none alg
python3 jwt_tool.py JWT -C -d rockyou  # brute
python3 jwt_tool.py JWT -X k -pk pub.pem  # confusion
hashcat -m 16500 jwt.txt rockyou.txt  # hashcat

BOLA / BFLA Testing

# Swap object IDs between two accounts
GET /api/users/VICTIM_ID  (with attacker token)
GET /api/admin/users       (non-admin token)
PUT /api/users/1  -d role=admin
DELETE /api/users/OTHER_ID

Rate Limit Bypass Headers

X-Forwarded-For: 127.0.0.1
X-Real-IP: 10.0.0.1
CF-Connecting-IP: 1.2.3.4
True-Client-IP: 1.2.3.5
X-Originating-IP: 192.168.1.1

GraphQL

graphql-cop -t https://api.target.com/graphql
python3 -m clairvoyance URL -o schema.json
{"query":"{ __schema{types{name}} }"}  # introspect
[{"query":"..."},{"query":"..."}]       # batch

gRPC

grpcurl -plaintext HOST:PORT list
grpcurl -plaintext HOST:PORT describe SVC
grpcurl -plaintext -d '{"id":1}' HOST SVC/Method
grpcui -plaintext HOST:PORT   # web UI
protoc --decode_raw < captured.bin