rystic

Realistic API simulators for training and testing.

Local stand-ins for Stripe, Kalshi and GitHub that keep state, measured against the live service and run entirely on your machine.

Updated 23h ago · Fidelity board →

Use cases.

Reinforcement learning →

Train and evaluate against APIs that behave like production, with every run reproducible.

Integration testing →

Run your integration suite in CI without the live dependency, the rate limits, or the bill.

Easy to integrate with.

One install, one license, one command. Point your client at localhost.

rystic — zsh
curl -fsSL https://www.rystic.ai/install.sh | shrystic login ./rystic-license.jsonrystic run kalshi-twin                       # serves :8080KALSHI_BASE_URL=http://localhost:8080/trade-api/v2 ./your-bot
The demo order book: resting yes and no bids with contract depth at each level

Live demo

Trade a real Kalshi tape.

Your own Kalshi simulator, $10,000, a real matching engine. No account.

Frequently asked.

What a simulator is, how it is measured, and how to get one.

What is an API simulator?

A local, stateful stand-in for a third-party API. Same endpoints and request formats; point your SDK at localhost. Runs offline, on your machine or in CI.

Does it call the real API?

No. Test traffic stays on your machine or CI runner. Rystic measures each simulator against the live API before release, not during your tests.

How do you know it matches the real thing?

The same request sequences run against the simulator and the live service; responses and state transitions are compared. The deck above is that result, published per commit.

How is this different from mocks or recorded fixtures?

A mock returns what you told it to. A recording replays one past conversation. A simulator keeps state and answers requests nobody recorded.

Why does an integration test need state?

An integration test is a sequence: create a charge, refund it, read the balance. Each call has to see the effect of the last one. A mock cannot; a simulator does, and fails the test when the sequence is wrong.

How do I set up a specific scenario?

Through the control plane at /_rystic/: seed data, load a named scenario, inject rate limits and 500s, reset between tests.

Can you simulate another API or an internal service?

Yes. From an OpenAPI spec, docs, source, captured traffic, or a mix. Internal APIs included. Email founders@rystic.ai.

Simulators for the integrations that matter.

Measured against the live API, on your machine and in CI.