nikitastupin/clairvoyance

Obtain GraphQL API schema even if the introspection is disabled

Python

1,542

132 commits

updated Dec 5, 2025

See the code

README

Clairvoyance

Obtain GraphQL API schema even if the introspection is disabled.

PyPI PyPI - Python Version PyPI - Downloads GitHub

Introduction

Some GraphQL APIs have disabled introspection. For example, Apollo Server disables introspection automatically if the NODE_ENV environment variable is set to production.

Clairvoyance helps to obtain GraphQL API schema even if the introspection is disabled. It produces schema in JSON format suitable for other tools like GraphQL Voyager, InQL or graphql-path-enum.

Getting Started

pip

pip install clairvoyance
clairvoyance https://rickandmortyapi.com/graphql -o schema.json
# should take about 2 minutes

docker

docker run --rm nikitastupin/clairvoyance --help

Advanced Usage

Which wordlist should I use?

There are at least three approaches:

  • Use one of the wordlists collected by Escape Technologies
  • Use general English words (e.g. google-10000-english).
  • Create target specific wordlist by extracting all valid GraphQL names from application HTTP traffic, from mobile application static files, etc. Regex for GraphQL name is [_A-Za-z][_0-9A-Za-z]*.

Environment variables

LOG_FMT=`%(asctime)s \t%(levelname)s\t| %(message)s` # A string format for logging.
LOG_DATEFMT=`%Y-%m-%d %H:%M:%S` # A string format for logging date.
LOG_LEVEL=`INFO` # A string level for logging.

Support

In case of questions or issues with Clairvoyance please refer to wiki or issues. If this doesn't solve your problem feel free to open a new issue.

Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change. For more information about tests, internal project structure and so on refer to our contributing guide.

Documentation

You may find more details on how the tool works in the second half of the GraphQL APIs from bug hunter's perspective by Nikita Stupin talk.

Contributors

Thanks to the contributors for their work.

bug-bounty
graphql
penetration-testing
security

nikitastupin/clairvoyance

Obtain GraphQL API schema even if the introspection is disabled

Python

1,542

132 commits

updated Dec 5, 2025

See the code

README

Clairvoyance

Obtain GraphQL API schema even if the introspection is disabled.

PyPI PyPI - Python Version PyPI - Downloads GitHub

Introduction

Some GraphQL APIs have disabled introspection. For example, Apollo Server disables introspection automatically if the NODE_ENV environment variable is set to production.

Clairvoyance helps to obtain GraphQL API schema even if the introspection is disabled. It produces schema in JSON format suitable for other tools like GraphQL Voyager, InQL or graphql-path-enum.

Getting Started

pip

pip install clairvoyance
clairvoyance https://rickandmortyapi.com/graphql -o schema.json
# should take about 2 minutes

docker

docker run --rm nikitastupin/clairvoyance --help

Advanced Usage

Which wordlist should I use?

There are at least three approaches:

  • Use one of the wordlists collected by Escape Technologies
  • Use general English words (e.g. google-10000-english).
  • Create target specific wordlist by extracting all valid GraphQL names from application HTTP traffic, from mobile application static files, etc. Regex for GraphQL name is [_A-Za-z][_0-9A-Za-z]*.

Environment variables

LOG_FMT=`%(asctime)s \t%(levelname)s\t| %(message)s` # A string format for logging.
LOG_DATEFMT=`%Y-%m-%d %H:%M:%S` # A string format for logging date.
LOG_LEVEL=`INFO` # A string level for logging.

Support

In case of questions or issues with Clairvoyance please refer to wiki or issues. If this doesn't solve your problem feel free to open a new issue.

Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change. For more information about tests, internal project structure and so on refer to our contributing guide.

Documentation

You may find more details on how the tool works in the second half of the GraphQL APIs from bug hunter's perspective by Nikita Stupin talk.

Contributors

Thanks to the contributors for their work.

bug-bounty
graphql
penetration-testing
security

Project health

Latest release

2.5.5 · Dec 5, 2025

Releases this year

1

Significant stargazers

(top 24 of 26)

Manuel Spigolon

465 followers · starred Apr 2023

0xflotus

496 followers · starred Oct 2024

mschwager

241 followers · starred Oct 2025

Edoardo Ottavianelli

1,758 followers · starred Jul 2024