Overview
The API tester is a built-in HTTP client embedded in every engagement. Rather than switching between Burp Suite, Postman, or curl for every request, you can stay in Pwnbook and have all your requests saved, organized, and tied to the engagement. Requests are stored per engagement, so your whole team can see what’s been tested, replay requests, and build on each other’s work.Creating an API request
- Navigate to your engagement and select the API Requests tab.
- Click New Request.
- Configure the request:
- Method: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
- URL: The full target URL, e.g.,
https://api.example.com/v1/users - Headers: Add any required headers (Authorization, Content-Type, etc.)
- Body: Enter the request body for POST/PUT/PATCH requests. Supports raw text, JSON, and form data.
- Click Send to execute the request.
Saving requests
After configuring a request, save it for later use:- Click Save in the request editor toolbar.
- Enter a name for the request (e.g., “Admin Login”, “Create User - Missing Auth”).
- Optionally organize it into a folder.
- Click Save.
Execution history
Every request you send is automatically logged in the execution history. To review past executions:- Open a saved request.
- Click the History tab.
- Browse past executions by timestamp.
- Click any entry to view the full request and response as it was sent and received.
Request templates
Request templates are reusable starting points for common testing patterns. Instead of building every request from scratch, start from a template and customize it.Using a template
- Click New Request → From Template.
- Browse the available templates.
- Select a template and click Use Template.
- Modify the template values as needed and send.
Creating a template
After building a request you’d like to reuse:- Open the saved request.
- Click Save as Template.
- Enter a template name and description.
- Choose whether to share it with your organization or keep it personal.
- Click Save.
Community and global scripts
Community scripts are pre-built request collections contributed by the security community. They target common vulnerability classes, authentication patterns, or application frameworks.Browsing community scripts
- Click Community Scripts in the left sidebar.
- Browse by category (Authentication, Injection, Business Logic, etc.) or search by keyword.
- Click a script to preview what it does.
- Click Import to add it to your engagement.
Running a script
Imported scripts appear in your request list. Some scripts are parameterized — you’ll be prompted to enter values like the target URL, authentication tokens, or user-specific data before running.Global scripts
Admins and owners can publish organization-level scripts that are available across all engagements. This is useful for standardizing testing procedures across your team.Packet templates
Packet templates extend the API tester to lower-level protocol interactions. Where API requests work over HTTP, packet templates let you work with raw TCP/UDP payloads for testing non-HTTP services.Packet templates require the recon worker to be running and accessible, as packet-level operations are handled by the worker service.
- Navigate to API Requests → Packet Templates.
- Click New Packet Template.
- Select the protocol (TCP, UDP).
- Define the target host and port.
- Enter the raw payload (supports hex encoding for binary data).
- Click Send Packet.
Tips for effective API testing
Use variables for repeated values
Use variables for repeated values
Set common values like base URLs, authentication tokens, or user IDs as variables in the request editor. Reference them with
{{variable_name}} syntax to avoid repetition across requests.Organize requests with folders
Organize requests with folders
Group related requests into folders within the engagement (e.g., “Authentication”, “Admin Endpoints”, “User API”). This keeps large test suites manageable.
Save interesting responses
Save interesting responses
When you find an interesting response — an error message, an unexpected data leak, a bypass — leave a comment on the saved request so the team knows what was discovered.