Every failure
has a story. Discover it.
inverseStory turns automation reports into execution history you can question — pass rates, flaky tests, failure categories and trends across suites, branches and releases — and watches your APIs on a schedule while it's at it.
- 10x
- faster RCA
- 94%
- flake detection
- 5
- report formats
checkout › applies promo code after refresh failed 38% of its last 142 runs on main.
Reads reports from
Your API journeys, watched and explained.
Pulse runs your real API journeys on a schedule. When one breaks, it names the step that failed first, shows what changed since the previous run, and tells your team in Slack, Teams, PagerDuty or email.
Journeys
Chain requests into a real journey — log in, create, pay, verify — with run-if conditions, repeat-until and for-each, inside limits that keep every run safe.
Dependencies
A request declares where its token or id comes from. Pulse fetches that first — once per run, or from a cache you control — so any request can run on its own.
Import
Bring what you already have. Folders, auth and bodies come across, and the import says plainly what could not.
Response Contracts
Point at a real response and mark the fields that must match and the ones allowed to drift. A drifting optional field marks the run Degraded, not failed.
Alerts
One alert per outage, naming the step that failed, with a link to the run and a note when it recovers. PagerDuty incidents resolve themselves.
What changed
Every run is compared with the one before: which check flipped, which step failed first, extra retries, real latency moves. Identical failures are grouped by cause.
API monitoring is on every plan, Free included — requests, schedules, checks and alerts. Multi-step journeys start on the Team plan.
Test reports give you logs. Not understanding.
Modern engineering teams generate gigabytes of test data every week. Almost none of it becomes insight.
Reports without answers
A Playwright or Cucumber report tells you which tests failed in that run. It cannot tell you whether they failed last week, or when they started drifting.
Flake fatigue
Re-runs hide real failures. Engineers waste hours separating noise from signal, one run at a time.
No engineering memory
Each run lives in isolation. Nobody can answer 'has this failed before?' without grepping CI.
From raw report to engineering history in seconds.
Upload
Drop Playwright, Cucumber, JUnit, TestNG or Pytest output in the app, or POST it from CI with an API key.
Connect
Runs are stitched into a continuous history keyed by project, suite, branch and commit.
Aggregate
Every upload recomputes pass rates, durations, flake rates, day-scoped failure groups and category trends across the whole history.
Explore
Dashboards, heatmaps, suite and case drill-downs and day-scoped failure reports replace static HTML.
An engineering terminal, not a status page.
Density and clarity built for engineers who live in CI, logs and incident timelines.
Auth flakiness traces to token clock skew
12 of the 27 flaky runs in auth-service share a sub-second 401 immediately after refresh. Likely 30s clock drift in the staging container.
checkout-web failure spike correlates with deploy 8821
Failure rate jumped from 1.8% → 12.4% within 6 minutes of release a3f12b9. 9 of 12 failures hit the same /promo endpoint.
See when your suites break before your customers do.
Continuous hour-by-hour run velocity and failure density across days, CI pipelines and staging deployments.
Every failure becomes a narrative.
Deploys, API shifts, test failures and AI analysis stitched into a single timeline.
- T-08mdeployDeployment a3f12b9 to staging
- T-07mapi/promo response time 110ms → 1240ms
- T-06mfailcheckout-web · promo flow failed (×4)
- T-05mfailcheckout-web · cart total mismatch (×8)
- T-04maiAI: regression detected — likely cause /promo serializer
- T-02mfixRollback to be12f08 queued
Drop a report we parse. No CI changes.
Upload in the web app or POST from any pipeline with an API key. Supported formats parsed natively out of the box.
curl -X POST https://inversestory.com/api/v1/reports/upload \
-H "Authorization: Bearer $INVERSE_API_KEY" \
-F "file=@test-results.json"Built for engineers. Loved by leaders.
10× faster root cause analysis
Skip log diving. Failure categories, stack signatures and day-scoped regression views group a run's failures the moment it lands.
Flake detection across history
Flake rates are computed across a test's continuous run history, separating transient network blips from genuine code regressions.
Zero data loss & 10-day recovery
Free accounts retain historical test telemetry, and deleted projects benefit from a 10-day soft-deletion recovery window before permanent purge.
One engineering truth everyone trusts
Engineering, QA and leadership inspect unified project metrics, pass rates and Pulse API health, ending discrepancies between local and CI runs.
What we have committed to, and have not shipped.
Listed so you can see where the product is going. None of it is part of what you pay for today, and you will not be charged extra when it lands.
AI failure analysis
Plain-language summaries of what broke and why, written from the failure itself rather than the stack trace.
Root cause grouping
Failures that share a cause collapse into one problem instead of two hundred red tests.
Slack & webhooks for test runs
Test-run results where the team already is, and a POST to your own endpoint when a suite degrades. API Monitoring alerts already go there today.
Single sign-on (SAML)
Sign in through your identity provider, with access removed centrally when someone leaves.
Self-hosted deployment
Run the whole platform inside your own network, for teams whose test data cannot leave it.
Simple, value-aligned pricing.
Team and Business start with a free trial — no card required. Starter is ready the moment you buy it.
Questions, answered.
Which test frameworks do you support?
Cucumber (JSON), Playwright (JSON and JUnit XML), TestNG (XML), Pytest (JSON), and JUnit (XML) — 5 formats across 5 supported frameworks. If your framework or report flavour is not listed, tell us: our modular parser architecture allows adding new formats quickly.
Do I need to change my CI?
No. Upload reports via the web dropzone, or POST them from GitHub Actions, GitLab CI, CircleCI or Jenkins with a single curl call using your project API key.
Does inverseStory use AI today?
Not yet. AI failure analysis is on our roadmap and clearly badged everywhere on this site — no plan is sold with it, and nothing you buy today depends on it. What ships today is deterministic intelligence: historical flake rates, failure signatures, regression trends and day-scoped failure grouping computed across your full run history.
What is Plotex Pulse?
API testing and continuous monitoring built into the same hub as your test analytics. Compose REST and GraphQL requests or import them from OpenAPI, Postman, HAR or cURL; chain them into multi-step journeys with conditions and loops; schedule them by interval or cron with retries and jitter. When something breaks, Pulse names the failing step, compares the run with the previous one, and alerts Slack, Microsoft Teams, Discord, Google Chat, PagerDuty, a webhook or email — once per outage, with a recovery note. Secrets live in AES-256 Vaults. Requests, schedules and alerts are on every plan including Free; multi-step journeys are on Team and above.
Is my test data private?
Each organisation's data lives in its own database schema, credentials and Vault secrets are encrypted at rest with AES-256 GCM, and customer test data is never used to train machine learning models.
What happens when the trial ends?
Zero data loss. Nothing is deleted. Your account transitions automatically to the Free tier limits with full access to existing projects. Additionally, deleted projects benefit from a 10-day recovery retention grace period before permanent purge.
Your reports already have the answers.
inverseStory finds them.
Start free. Upload your first report and see the story behind your test suite in minutes.