-
Notifications
You must be signed in to change notification settings - Fork 6
GraphQL Discovery
Peter Mueller edited this page Apr 3, 2026
·
1 revision
Vespasian detects GraphQL endpoints, runs tiered introspection queries, and generates GraphQL SDL schemas.
| Signal | Confidence |
|---|---|
/graphql path |
0.70 |
| GraphQL query syntax in POST body | 0.85 |
data/errors keys in response |
0.80 |
| Path + body combined | 0.95 |
Vespasian uses a tiered introspection strategy to handle WAF-protected GraphQL servers:
- Tier 1: Full introspection with descriptions, deprecation, and directives
- Tier 2: Minimal-complete query without descriptions, deprecation info, or directives
- Tier 3: Minimal last-resort query with the smallest payload
- Fallback: Traffic-based inference from observed queries and mutations when introspection is disabled
This tiered approach means Vespasian can discover GraphQL schemas even when servers block standard introspection queries.
GraphQL APIs are output as GraphQL SDL (Schema Definition Language) schemas.
# One-step GraphQL discovery
vespasian scan https://app.example.com --api-type graphql -o schema.graphql
# Two-stage workflow
vespasian crawl https://app.example.com -o capture.json
vespasian generate graphql capture.json -o schema.graphqlVespasian is built by Praetorian. Learn more about the Praetorian Guard attack surface management platform. Licensed under Apache 2.0.