Get listed

API Security

GraphQL Security Tools in 2026: 6 Options for Safer APIs

Bound depth, lint the schema, or crawl a graph you own. The dangerous operation was never in the OpenAPI file.

Expertise: API Security · Level: Intermediate · 6 min read

The OWASP GraphQL Cheat Sheet shows a posts(first: 99999999) amount query and a nested walk with no depth cap. That operation was never in the OpenAPI file, so REST tools never sent it.

Bound depth on the server you ship. Lint the schema in CI. Crawl a graph you own. A depth limit is not object-level authorization: depth stops a walk, the handler still checks the id.

REST and OpenAPI fuzz stay on API security tools. Object checks live on authorization libraries. Middleware you host, a CI lint, and a crawl against an endpoint you own put the bound in different places.

How we evaluated

We read first-party docs, source, licenses, and release notes, and we treat a marketing page as a claim, not as proof that two products do the same work.

We cared about whether the tool can bound depth, cost, or introspection, whether you operate it, whether CI can forbid a pattern, and whether the docs treat GraphQL as a query, not as REST with extra fields.

We read first-party docs, licenses, and release notes. Unless a write-up says otherwise, we did not run a paid tenant.

ToolBest forWhat to check
GraphQL ArmorMiddleware that caps depth and costMax depth and cost ยท MIT ยท middleware you run
graphql-eslintSchema and operation lint in CISchema and operation rules ยท MIT ยท CI you already run
EscapeCommercial GraphQL testingGraphQL-aware testing ยท commercial ยท CI hooks
Apollo GraphOSKnown GraphQL platform with limitsRegistry plus limits ยท commercial / Apollo terms ยท known platform
InQLBurp helper for a graph you ownIntrospection dump ยท see repo license ยท Burp on an app you own
42CrunchContract security that includes GraphQLContract audit ยท commercial ยท GraphQL next to OpenAPI
How the tools differ
Middleware
Platform
Lint and Burp
Commercial test
1

GraphQL Armor

Best for middleware that caps depth and cost

GraphQL Armor

GraphQL Armor is middleware for Apollo and others. It blocks overly deep or costly operations. Escape maintains it as MIT.

A bound you can set is the first control. You do not need a platform RFP to ship it. It is not object-level authorization. Escape the company is a different product.

Key features

  • Max depth and cost
  • Suggestion and alias limits
  • Hooks for Apollo
  • MIT

Why we like it

A cap in the server you ship is the first control worth installing on an unbounded graph.

Limits

It is not object-level authorization. You still check the id. The SaaS scanner is a different product.

2

graphql-eslint

Best for schema and operation lint in CI

graphql-eslint

graphql-eslint lints schema and operations. You can forbid the patterns you do not want in the repo.

A query that should never ship can die in CI. That is cheaper than a WAF story. A client can still send a query you never committed, so lint is not runtime.

Key features

  • ESLint integration
  • Schema rules
  • Operation rules
  • CI friendly

Why we like it

Forbidding the pattern in the repo is the cheapest time to kill a bad operation.

Limits

Lint is not runtime. A client can still send a query you never committed.

3

Escape

Best for commercial GraphQL testing

Escape

Escape sells GraphQL and API testing. They also maintain Armor. The SaaS is the scanner. Armor is the library.

When you want a vendor to crawl the graph, this is the commercial row that already understands GraphQL. Do not skip the middleware because you booked a demo.

Key features

  • GraphQL-aware testing
  • CI hooks
  • Findings on operations
  • Same house as Armor

Why we like it

A crawler that already speaks operations is the commercial job when Armor is not the whole ask.

Limits

Commercial. Middleware on the server you own still comes first.

4

Apollo GraphOS

Best for known GraphQL platform with limits

Apollo GraphOS

Apollo GraphOS is the known GraphQL platform. Persisted queries, limits, and a schema registry live here.

If the graph is already Apollo, start with the platform controls before you buy a second scanner. Price follows the platform. Open Server can do a lot without GraphOS, so read the current license on the repo you use.

Key features

  • Schema registry
  • Persisted queries
  • Router limits
  • Studio

Why we like it

Using the limits on the platform you already run beats a fourth scanner on the same schema.

Limits

Price follows the platform. Open Server can do a lot without GraphOS. Read the license on the repo you use.

5

InQL

Best for burp helper for a graph you own

InQL

InQL is a Burp extension for GraphQL introspection and generation. Use it on an app you own.

When the question is what you left open in introspection, this is the helper. It is not a production WAF. Do not point it at a third-party graph. This page is defense.

Key features

  • Introspection dump
  • Burp integration
  • Query generation
  • Defense lab use

Why we like it

Seeing the schema you exposed is how you prove introspection should have been off.

Limits

Not a production filter. Defense only. Stay on graphs you own.

6

42Crunch

Best for contract security that includes GraphQL

42Crunch

42Crunch is a contract and API security shop. GraphQL coverage sits next to OpenAPI. The API tools list is REST fuzz. This is the contract option.

If the org already bought 42Crunch for OpenAPI, ask for the GraphQL row before you add a fourth scanner. It does not replace Armor on the server you own.

Key features

  • Audit of the contract
  • Protection at the gateway story
  • CI plugins
  • Commercial

Why we like it

A contract option you already pay for should be asked about the graph before a new vendor lands.

Limits

Commercial. It does not replace a bound on the server.

What we left out

  • graphql-shield. Teams want field-level permissions next to the resolver. It is an authorization library, and the authorization list already owns the object check.
  • StackHawk. AppSec teams already run a DAST that speaks GraphQL. Escape already covers the commercial GraphQL tester, and the API tools list owns REST DAST.

GraphQL security threads keep asking for a whitelist of operations. That is persisted queries, not a permission language.

Questions before you buy

A quote that cannot answer these is selling a different product.

  1. Where is the max-depth or cost cap, and can I grep it in the server we ship?
  2. Is introspection off in production, and who can turn it back on?
  3. Are we buying middleware, a linter, a platform limit, or a crawler, and which of those is already paid for?

Turn introspection off in production unless you have a reason. Bound the query on the server you own.

FAQs

Does a depth limit replace object-level authZ?

No. Depth stops a walk. AuthZ stops another user’s node. Object-level checks live in the authorization list and the IDOR guide.

Should introspection stay on in production?

No, unless you have a documented exception. That is the wrong door for a public graph.

Is this a second API security tools page?

No. That list is REST fuzz and lint. This list is the graph.

Is this a scored bake-off?

No. Order is editorial.

API Security resources