TestWatchStart free
Docs menu

Data export and switching

Everything you put into TestWatch, and everything it produced for you, can leave with you. This page lists the exports, what is in them and their limits. Exports are free on every plan.

by Vasyl Harastei

The three ways out

ExportWhat it holdsWho and where
Suite exportEvery test as a runnable Playwright project (TypeScript), with the fixtures, config, files and a CI workflowAny member: Export suite on an app’s Scenarios page. See Export your suite
JSON data exportApps, tests, runs, results and evidence as NDJSON in a ZIP, optionally with the screenshot and video filesOwners and admins: Settings → Data & privacy
On requestEverything else listed below, as JSON and files in a ZIPEmail support@testwatch.dev; we send it within the transitional period (Terms section 13)

Both self-serve exports also work while a workspace is suspended or waiting to be deleted, so your data stays reachable.

JSON data export

One ZIP. Each .ndjson file holds one JSON object per line (JSON per RFC 8259). Dates are ISO 8601 in UTC. A file larger than about 256 MB is split into parts: results.ndjson, results.2.ndjson and so on.

FileFields
apps.ndjsonid, name, base URL, kind, capture mode, devices, test email domain; environments (id, name, URL, default, created); test accounts by label only (id, label, description, sign-in method, inbox address, default, created)
test-cases.ndjsonid, app, scenario, title, device, description, status, quarantined, created, updated, tags, and the current test code with its version
runs.ndjsonid, trigger, status, CI verdict, environment, schedule, account, target URL, CI details, expected, passed and failed counts, started, finished, created
results.ndjsonid, run, test, status, duration, attempts, flaky, reviewed, created, code version, evidence expiry, whether pixels were off, and the paths of its screenshot and video in the ZIP
evidence.ndjsonid, result, app version, page snapshot, console log, network log, steps (with their screenshot paths), earlier attempts, emails a test read, expired, created
files/…Only if you tick “include files”: screenshots (PNG or JPEG) and failure videos (WebM), stored as captured
manifest.jsonFormat (testwatch-data-export) and version (1), export time, workspace id, the filters you chose, counts per file, files included or missing, and where the export stopped if it hit a limit

Filters: one app, and a date range for runs and results (from and to, UTC days). The dialog previews the counts first, and warns when the files may not all fit.

Data we send on request

Scenarios and their descriptions; every code version of each test; attached files and their versions; tags; schedules; notification channels and rules; deploy and cleanup hook settings; members and roles; review decisions and proposed fixes (including pull-request fixes); records of the test data your runs created; and the map of your app we built while testing it. We send them as JSON and files in a ZIP.

Known limits

  • One JSON export holds at most 3 GB (uncompressed) and 50,000 files. Past that it stops and the manifest says where; export one app or a narrower date range for the rest.
  • Evidence past its retention period (30, 90 or 180 days by plan) is no longer stored: its row stays, marked expired, without the payload.
  • Secrets are never exported: saved passwords, 2FA secrets, protection headers, hook signing secrets and API keys. Test accounts and environments appear by label. You already hold these values.
  • Our trade secrets are not exported: the prompts and instructions we give AI models, our heuristics, and the code that scores and ranks pages.
  • One JSON export runs at a time per workspace. If the service is busy, try again shortly.
  • A suite export contains the tests a run would run; tests that need review, are out of date or are drafts are listed as skipped. Attached files over the size limit are listed in its README.

Endpoints

Both exports are plain HTTPS downloads from the API, signed in with your dashboard session (API keys can’t call them). They are the free porting interface on every plan.

RequestReturns
GET /data-export/previewCounts, and whether the files may hit the limit. Query: appId, from, to (YYYY-MM-DD), files=1
GET /data-exportThe ZIP above, streamed. Same query
GET /apps/:appId/export/previewThe tests per device that would be exported, and any left out with the reason. Query: environmentId, tags, mode (or, and), quarantined=1
GET /apps/:appId/exportThe Playwright project as a ZIP, with a testwatch.json manifest (format testwatch-suite, schema version 1)

How long a switch takes

The self-serve exports stream as soon as you ask. To switch provider, or to have your data erased, email us: you choose a notice period of up to 2 months, then a transitional period of up to 30 calendar days follows, during which your plan keeps running and we send the on-request data. Your data stays retrievable for at least 30 days after that. There are no switching, egress or export fees. The full rules are in Terms section 13.