Import Swagger/OpenAPI definitions (Swagger 2.0 and OpenAPI 3) into Burp Suite and generate one example HTTP request per operation, ready to send to Repeater.
-
Multiple input modes: URL(s) to JSON/YAML specs, or paste Raw JSON directly. Auto-detects JSON and tries YAML when available.
-
Auth when fetching specs: Optional JWT and custom headers used for retrieving remote specs.
-
Base URL handling: Uses servers/basePath from the spec (if enabled) or a user-provided Base URL override.
-
Path and query params: Optionally fills
{path}params and includes query parameters with sample values. -
Request bodies: Generates example JSON body from schemas/examples where available.
-
Quick preview and send: Preview all generated requests and send selected ones to Repeater.
Great for quickly bootstrapping testing coverage against large APIs. You’ll have a ready list of endpoints pre-populated with reasonable parameter/body samples.
- Burp Suite with Montoya API support (Community or Professional)
- Release JAR bundles dependencies (Jackson for JSON, SnakeYAML for YAML)
- Optional legacy: Python/Jython 2.7 if using the
.pyversion
- Download the release JAR from GitHub Releases.
- In Burp: Extender -> Extensions -> Add -> Extension type: Java -> Select the JAR.
- In Burp: Extender -> Extensions -> Add -> Extension type: Python -> Select
Swagger2BurpExtender.py. - Requires Jython 2.7 (Burp -> Extender -> Options -> Python Environment).
- (Optional) For YAML, add SnakeYAML to Burp’s classpath.
- With Gradle:
./gradlew shadowJar(orgradle shadowJar) - Output JAR:
montoya/build/libs/*-all.jar
- Open the Swagger2Burp tab.
- (Optional) Enter JWT and/or custom headers. These are used both for fetching the spec and for the generated requests.
- If your Swagger 2.0 spec does not declare
host/basePath, set Base URL override (for example:https://api.example.com). - Choose Input mode:
- Auto-detect
- URL(s)
- Raw JSON
- Paste the spec URL(s) or the Raw JSON, then click Import.
- Review the generated requests, select desired ones, and click “Send selected to Repeater”.
- If you have only Swagger UI without JSON file READ THIS
- If the spec lacks a resolvable base URL and no Base URL override is provided, such operations will be skipped.
- For specs requiring Basic Auth to fetch: add a custom header like
Authorization: Basic <base64(user:pass)>.
- Requests are built locally. Use on systems you have permission to test.
MIT
- BolbolSec
- GitHub: https://github.com/bolbolabadi/

