Skip to content
Pre-launch, play-money platform. No gambling operating licence in any jurisdiction, no live payment processor, no operator in production. Everything stated on this site is something you can check.

Developers

308 operations. 268 documented paths. No console-only pocket.

If a workflow exists in the back office, it exists as a callable operation first — because the back office is built on top of the same operations you get. The specification is generated from the routes on every change, so it cannot drift.

308operations across 268 documented paths
3.1OpenAPI version, regenerated on every route change
65API controllers behind them
2,042tests exercising the surface

Shape of the API

Boring on purpose

JSON over HTTPS, bearer tokens, a tenant header, conventional status codes and validation errors. There is no proprietary transport, no mandatory SDK and no GraphQL layer you have to learn before you can read a balance.

GET/api/v1/account/balance
curl https://api.example.com/api/v1/account/balance \
  -H 'Authorization: Bearer <token>' \
  -H 'X-Tenant: your-brand'

→ 200
{ "currency": "GBP",
  "balance_pennies": 10000,
  "withdrawable_pennies": 4200,
  "bonus_locked_pennies": 5800 }

Note what that response doesIt separates withdrawable from bonus-locked at the API rather than leaving the front end to work it out. A balance endpoint that returns one number is an endpoint that will produce a customer complaint the first time a bonus is involved.

Integration surface

Four ways in, depending on how much you want to own

MOST CONTROL

Straight to the API

Generate a client from the OpenAPI file and build whatever front end you want. Of our seven demo brands, one loads no engine code at all — written directly against this same API.

FASTEST

The widget layer

43 widgets that are empty shells hydrated over AJAX. Drop them into WordPress, Elementor, or any HTML page — and because they are static shells, the customer site can be a static export.

EVENT-DRIVEN

Webhooks

Subscribe your own systems to platform events per brand, instead of polling for state changes you already caused.

CONTENT

Seamless wallet

The protocol a licensed game aggregator plugs into: the provider holds no balance, and every stake and win round-trips to the wallet in real time.

How we test

2,042 tests, over 180,000 assertions — and the two we are proudest of

TOTP against the specification, twice

RFC 6238 two-factor is verified against the official Appendix B test vectors, then cross-checked against an independent Python implementation. Testing your own implementation against your own understanding of a spec proves only that you are consistent.

A solver, not an assertion

Slot RTP is computed from the real paytable by a solver. The test does not assert a number somebody typed; it recomputes the number and compares. A hand-typed RTP is a claim nobody ever checks twice.

The offer, repeated because it is the whole pitchWe will run the suite in front of you from a clean checkout, and hand you the OpenAPI file to diff against the routes. Neither takes long and both are harder to fake than a demo environment.

Developer experience gaps, plainlyThere are no published client SDKs — generate one from the OpenAPI file. There is no public sandbox you can self-serve into; access today is a demo tenant we provision for you. And there is no versioned deprecation policy yet beyond the /v1 prefix, because we have had no external consumer to deprecate anything for. Ask about all three if they matter to your integration plan; none of them is hard, they are just not done.

Read the spec before you talk to us.

We would rather your integration lead arrived with objections drawn from the actual OpenAPI file than with questions we could have answered on a slide. Ask and we will send it.