Skip to contentLockpick
How it worksPricingDocs

Read

  • BlogPlain answers to common security questions
  • GuidesStep by step fixes for common setups
  • Security checksEvery check we run, explained

Learn

  • Learn with PickTwo-minute lessons on how sites get attacked
  • Lockpick for ClaudeCheck sites from Claude and other assistants
  • GlossaryThe words we use, in plain words

Company

  • ChangelogWhat changed, newest first
  • StatusWhether scans are running right now
  • Security and trustHow we check and what we never do
Sign inCheck it
Checks

Can anyone list your GraphQL schema?

By Mark KashefPublished October 8, 2026

This check sends one introspection request with no credentials and notes when your GraphQL endpoint lists its operations to anyone. The list maps your API, and it does not prove any operation is open.

What does this check look at?

It looks at whether a GraphQL endpoint lists its operations to a request with no credentials. OWASP recommends disabling introspection queries in any production or publicly accessible environments. Only operation names and counts are kept, and no mutation is ever sent.

Only a Deep scan runs it, after you prove you own the site.

See whether your site has this. A Deep scan walks the whole site, the scripts it loads and your API surface.

Run a Deep scan

What does a result mean?

What the report showsWhat it meansWhat to do
Info findingThe schema was listed to an anonymous request.Turn introspection off in production, or require sign-in for it.

A listed schema does not show that any operation is unprotected. A clean result means nothing was found in what the scan read. It does not prove the problem is absent from parts the scan never sees.

How serious is a finding?

This is information only. It claims no weakness, so it carries no verdict, and you decide whether anything should change. Confidence starts high, because a response from your site shows the thing itself. The report lists what to fix by how directly someone could use it, not by the severity label.

Fix it with your AI

Most GraphQL servers have one option for this. Keep it on in development.

Fix prompt for any coding agent
My production GraphQL endpoint answers introspection queries from anyone. Turn introspection off in production for my GraphQL server (for example introspection: process.env.NODE_ENV !== 'production'), and turn off GraphiQL or other playgrounds there too. Then check every query and mutation enforces authentication and authorization in its resolver, since hiding the schema does not protect them.

How to check

Say Atlas, our example app at atlas.example, runs a GraphQL server with default settings. A Deep scan lists its operation names, keeps only names and counts, and notes it as information.

Deep scans come with the Deep plan, and pricing shows what it includes. Pulse or Deep explains what each scan reads, and the full list of checks shows the rest.

Questions people ask

If I turn introspection off, is my GraphQL API safe?

No. Attackers can guess operation names or find them in your site code. Every resolver still needs its own permission checks.

Why is this information only?

A listed schema helps an attacker plan, but it shows no operation is unprotected, so it carries no weakness on its own.

Run this check on your site

Only a Deep scan runs this check, once you prove you own the site. Deep walks your whole site, the scripts it loads and your API surface.

Run a Deep scan

Related pages

  • Is your interactive API documentation open to anyone?
  • Is your API description public, and does it match your API?
  • Does an API route on your site answer without signing in?

Sources

  1. GraphQL Cheat Sheet OWASP Cheat Sheet Series, read on October 7, 2026
  2. How we rate findings Lockpick docs, read on October 7, 2026

About the author

Mark Kashef, Founder of Lockpick

I'm Mark, and I build Lockpick. I write these pages, and each one is checked against its sources before it goes live. The Updated date changes only when the page itself does.

Lockpick
PricingMethodologyDocsBlogGuidesSecurity checksLearn with PickSecurity and trustLockpick for ClaudeChangelogStatusFacts for AI assistants

Lockpick is a security scanner for vibe-coded apps. It checks what your live site exposes and what a GitHub repo or AI skill would do before you install it, then gives you a fix prompt for Lovable, Bolt, Replit, Cursor or Claude Code.

Lockpick assesses public pages you are authorized to test, and public GitHub code it never runs.

© 2026 LockpickTermsPrivacyContactSign in