Load a schema and paste an operation to see which root fields it exposes, whether the operation's selections exist, and a ready-to-edit variables template. Everything runs in the browser; partial checks do not replace full GraphQL validation.
Runs locally in your browserThis is a schema and query helper. It does not send the operation, variables, or schema to a GraphQL endpoint.
The explorer identifies common SDL and introspection structures, checks root fields, and creates a starting variables object. It is not a replacement for server-side GraphQL validation.
The explorer reads a GraphQL schema in SDL form or an introspection JSON response and lists every type it finds together with the root types the schema defines.
Paste an operation under the schema to check its root selections against the matching root type and to build a variables template. Parsing and checking run in the browser; nothing is sent to an endpoint.
The schema is scanned with a tokenizer that understands descriptions, comments, directives and default values, so types and fields survive braces inside default object values or block strings, and enum values are not mixed up with their directives.
For the pasted operation the explorer takes the first query, mutation or subscription and skips fragment definitions. Its top-level selections — aliases included — are compared with the fields of the matching root type instead of being guessed.
A schema defines its roots either in a schema { ... } block or through the default names Query, Mutation and Subscription. The block takes precedence, so a type named Query is only a root when the block maps query to it.
Fragment spreads and inline fragments do not count as fields. A query is checked against the query root, a mutation against Mutation and a subscription against Subscription; when the schema has no such root type, the explorer says so instead of reporting a wrong field.
Every variable in the operation gets an example value: String and ID become "example", Int and Float 0, Boolean false, enums use their first value, and input objects are expanded with their own fields.
List types produce arrays ([ID!]! becomes ["example"]); deeply nested inputs fall back to "example" after three levels. The template is a starting point that is never uploaded and never executed.