# PHPStan Drupal Extension Playground > Run PHPStan with the phpstan-drupal extension against a snippet of PHP, get > the errors back as JSON or Markdown, and share the result with a stable link. > Built for reproducing phpstan-drupal bugs: https://github.com/mglaman/phpstan-drupal The website at https://phpstan-drupal.mglaman.dev/ is a JavaScript app. Do not scrape it. Use the HTTP API below. No authentication, no API key. API base URL: https://gkyhj54sul.execute-api.us-east-1.amazonaws.com/prod Every request runs the submitted code through PHPStan on PHP 8.3 and PHP 8.4 against the current phpstan-drupal release with a real drupal/core install. Expect a few seconds per request. Results are stored forever and are public. ## Analyse code and get a share link POST {base}/analyse Content-Type: application/json { "code": "getStorage('node')->load(1);\necho $node->label();", "level": "9", "strictRules": false, "bleedingEdge": false, "treatPhpDocTypesAsCertain": true, "saveResult": true } Fields: - code (string, required): a complete PHP file starting with `. Take the uuid from the path and fetch one of: - GET {base}/result?id=&format=markdown Markdown with the analysis options, the full code, the current errors with the offending line quoted under each one, and the errors that were saved when the link was shared if they differ. Prefer this when you want to understand or fix a reported bug. - GET {base}/result?id= JSON. `code`, `level`, and `config` are what was submitted. `tabs` and `versionedErrors` are the errors saved with the link. `upToDateTabs` and `upToDateVersionedErrors` come from re-running the code against the current runner, with `versions` naming the releases used. When the saved errors and the current ones differ, the bug was probably fixed or changed since the link was created. Both re-run the analysis, so allow a few seconds. A missing id answers 404. ## Reporting a phpstan-drupal bug 1. Reduce the code to the smallest complete PHP file that shows the problem. 2. POST it to {base}/analyse with saveResult true and the same options the reporter used. 3. Confirm the response contains the unexpected error or, for a false negative, confirm the expected error is missing. 4. Put the returned url in the issue at https://github.com/mglaman/phpstan-drupal/issues along with the error message and what you expected instead. ## Notes - Results use the runner's current phpstan-drupal release, which updates monthly. To check an old share link against the latest release, fetch it again and compare the saved errors with the current ones. - Source for the playground: https://github.com/mglaman/phpstan-drupal-playground