Skip to main content
An Alakazam world isn’t a video you render — it’s a live world-model stream your user drives in real time. The model generates the next frames as the player acts, so the experience is interactive all the way down: no pre-baked levels, no canned clips. This page is the map for building that into your product — the shape every integration shares, and which guide covers each part.

The shape of every integration

Whatever you’re building — a web embed, a native app, a character your users talk to — the flow is the same three moves:
1

Have a world

Generate one from a premise (POST /v1/worlds), build one visually in the Studio, or import one. A world carries its own state graph — states, choices, endings — that your code can read and react to.
2

Mint a session on your server

Your secret key stays server-side. Exchange it for a short-lived session token bound to a world, a player identity, and your origin:
3

Mount the player and hand your user the controls

In the browser, the SDK boots the world with that token and the stream goes live — your user plays it directly:
Native instead of web? The same session flow drives the Unity, Unreal, iOS, and Android SDKs.
That’s the whole architecture. Everything else — continuity, characters, authoring, data — is a layer on top of this loop.

Pick your path

Characters and simulation are the same primitives wearing different clothes: a character is a world that talks (/say, /tts, cross-session memory), and simulation is a session your code drives instead of a person. If you can mount a world, you already know how to do both.

Sessions are the metering unit

A live stream reserves session_seconds against your daily budget, fail-closed — when the budget is gone, new sessions get a 402 instead of a surprise bill. Concurrency is capped per app and settled when a session ends. Numbers and knobs: Pricing & billing, Rate limits.
The live embed path currently fires onReady and onError on the page side; richer gameplay callbacks (onChoice, onEnding) are delivered on the test path today and are rolling out to the live player bridge — see Embedding for the current support matrix before you build page logic on them. Inside the player, your user’s controls are live either way.

Next steps

Quickstart

API key → generated world → playable embed, in one sitting.

Embedding

Mount options, events, theming, token refresh, cross-origin security.

Session handoff & continuity

The drift-refresh double-buffer that keeps long streams clean.

Talk to a character in 5 minutes

The smallest end-to-end interactive integration you can run today.