GraphQL Introspection Viewer

GraphQL APIs expose their schema via the introspection query — a single request that returns the full set of types, fields, arguments, and directives. The response is a deeply-nested JSON object that's hard to scan in raw form. This viewer parses an introspection response and renders the schema as a navigable tree: query / mutation / subscription roots first, then every other type with its fields, arg signatures, and descriptions.

How to use the GraphQL Introspection Viewer

Run the GraphQL introspection query against your endpoint (most GraphQL clients have a "fetch introspection" command, or you can use the canonical query at graphql.org). Paste the JSON response here and click Render schema.

The viewer lists the root types (Query, Mutation, Subscription) first with all their fields and arguments, then every other type alphabetically. Toggle "Show built-in types" if you also want the introspection metadata types (these are present in every schema but usually noise).

About GraphQL Introspection Viewer

GraphQL's introspection system lets clients query the schema itself at runtime. Every GraphQL server exposes __schema and __type meta-fields that return the schema's structure — types, fields, arguments, enums, interfaces, unions, directives. This is what powers GraphiQL's autocomplete and the documentation explorer in Apollo Studio / GraphQL Playground.

The canonical introspection query is ~80 lines (you can grab it from graphql-js) and returns a deeply-nested object. Each type has name, kind (OBJECT, INTERFACE, UNION, ENUM, INPUT_OBJECT, SCALAR), fields (for object / interface), inputFields (for input objects), enumValues (for enums), and so on. Field types are represented as nested wrapper objects to express non-null / list modifiers (String! becomes {kind: "NON_NULL", ofType: {kind: "SCALAR", name: "String"}}).

This tool flattens that representation back to readable SDL-style notation (String!, [Int!]!) and groups types by kind for easier scanning. Useful when you want to explore a third-party GraphQL API but don't want to spin up GraphiQL.

Common use cases

  • API exploration — quickly survey a new GraphQL API without installing a client.
  • Schema review — see all types in a single page, audit for naming inconsistencies.
  • Documentation generation — copy field signatures into your own internal docs.
  • Migration planning — when moving from one GraphQL server to another, diff the schemas visually.
  • Debugging — verify a field actually exists when your client is returning "unknown field" errors.

Frequently asked questions

How do I get the introspection JSON?

Run the standard introspection query against your endpoint. Most GraphQL clients have a built-in "download introspection" command, or you can curl the query and pipe to a file.

Does it support GraphQL SDL output?

Not in this version — render-to-tree only. For SDL conversion, use graphql-js's buildClientSchema + printSchema functions.

What if introspection is disabled on the API?

You won't get an introspection JSON. Production GraphQL servers often disable introspection for security reasons (it would let attackers map your API). Ask the API owner for the SDL.

Does it work with persisted-query / Apollo Federation supergraphs?

Yes — both produce standard introspection responses. Federation subgraph SDL is also queryable via the _service { sdl } field but that's a different format.