Skip to content
Start here

Keys

Squally has two keys - one sends test results, the other reads them.

Squally uses two kinds of key, each for one job:

Key Starts with Belongs to Used by For
Ingest key sqly_ a project squally-reporter sending test results
Read key sqly_ro_ an organization the read API and the MCP server reading results

Every project has one ingest key. Squally shows it once, when the project is created, and stores only a hash of it - it cannot be shown again. Put it straight into your CI secrets.

If it is lost or leaked, an organization admin generates a new one in the project’s settings. The new key is shown once, and the old one stops working immediately: CI jobs still using it send nothing until you update them, and their builds still pass.

Set the key, for example as a CI secret:

SQUALLY_INGEST_KEY=your-project-ingest-key

The reporter sends to https://app.squally.dev; set SQUALLY_INGEST_URL only for another host (before squally-reporter 0.12.0 both variables were required). Without the key it prints a warning and sends nothing; your tests run as usual.

The reporter also accepts apiUrl and apiKey as options in playwright.config.ts, and they win over the variables. Keep the key in the environment anyway: Playwright’s json and blob reporters write your resolved config, options included, into their output files.

Before squally-reporter 0.9.0 the variables were SQUALLY_API_KEY and SQUALLY_API_URL. Both still work, with a deprecation warning in the CI log. SQUALLY_API_URL is only used together with SQUALLY_API_KEY.

Where Key given What happens
Reporter, SQUALLY_API_KEY a read key The reporter refuses it: “SQUALLY_API_KEY holds a read key; set SQUALLY_INGEST_KEY to the project’s ingest key.” Nothing from the run is sent.
Reporter, SQUALLY_INGEST_KEY or apiKey a read key The reporter refuses it before sending anything: “SQUALLY_INGEST_KEY holds a read key (sqly_ro_…); reporting needs the project’s ingest key (Settings › Project › Ingest key). Nothing from this run will be sent.” A reporter before 0.12.0 sends it, and Squally answers 401 with the code read_api_key.
Read API an ingest key 401 with the code wrong_key_type.
MCP server an ingest key The server refuses to start and says that it needs a read key.

A wrong or missing key never changes your test run’s exit code.

A read key gives scripts, CI jobs and coding agents read access to every project of an organization, through the read API and the MCP server. Organization admins create read keys on the Standard and Pro plans - see Read keys.