Odyssey API (interactive world model video)
Streams an interactive AI-generated video world you can steer with text prompts in realtime, over WebRTC with JS and Python SDKs.
Overview
Best for: Interactive storytelling, prototypes and demos of playable AI video.
At a glance
Streams end after 150 s by default; connections max 60 min. Concurrency 5 is the free tier. No published pricing. Resolution and fps (20-22) are third-party reports.
None
Not documented
Text prompts.
Third-party reports about 20-22 fps at 720p (frame every ~50 ms); no official latency figure.
Not published.
Not verified.
Features
- text-to-interactive-video
- image-to-video start frames (resized to 1280x704)
- interact() mid-stream prompts
- broadcast/viewable streams
- async simulation jobs
- short-lived session JWTs for browsers
Pricing
| What | Price | Unit |
|---|---|---|
| Free tier | $0 |
No public price list found; pricing page 404s
Free tier: Free accounts get 5 concurrent streams; hour quota not published.
Source: documentation.api.odyssey.ml
Setup
- Get an API key at developer.odyssey.ml.
- npm install @odysseyml/odyssey.
- connect() to get a MediaStream, attach it to a video element.
- startStream with a prompt, interact() to steer, endStream() and disconnect() when done.
- Mint session JWTs server-side for browser use instead of exposing the key.
Endpoint
@odysseyml/odyssey SDK (WebRTC + WebSocket signaling)
Authentication
API key (ody_...) or short-lived session JWT
Quick start javascript
import { Odyssey } from "@odysseyml/odyssey";
// Use a server-minted session credential in production, not the raw key
const client = new Odyssey({ apiKey: "ody_your_api_key_here" });
const mediaStream = await client.connect();
document.querySelector("video").srcObject = mediaStream;
await client.startStream({ prompt: "A cat on a sunny windowsill" });
await client.interact({ prompt: "Pet the cat" });
// each stream lasts max 150 s by default
await client.endStream();
client.disconnect();
Written from the current docs. Check the vendor's SDK version before you ship.
Warnings
No published pricing
Odyssey's pricing URL redirects to a 404 on odyssey.systems; usage is metered in hours against an account quota. Get rates in writing before launch.
2.5 minute stream cap
Streams end after 150 s by default; the docs suggest a dual-session rollover pattern that uses two concurrent slots.
Research-grade output
World models drift and lose consistency over time; do not promise game-like persistence.
Domain move
The company appears to be moving from odyssey.ml to odyssey.systems; docs still live at documentation.api.odyssey.ml.
Plus 9 warnings that apply to all avatars and live video APIs. See category warnings.
Limits
- Each stream max 150 s by default (start a new stream to continue)
- Each connection max 60 min
- Idle connection with no active stream disconnects after 15 min
- Up to 10 queued simulation jobs
- Total streaming hours capped by account quota
Models and products
| Name | Status |
|---|---|
| Odyssey-2 Pro | GA |
| Odyssey-2 Max | Beta |
| Odyssey-3 | Preview |
Docs and sources
Docs
Sources used
- documentation.api.odyssey.ml/session-management.md
- documentation.api.odyssey.ml/stream-duration-limits.md
- documentation.api.odyssey.ml/api-quick-start.md
- odyssey.ml/the-gpt-2-moment-for-world-models
- odyssey.systems/
Pricing, fps/latency, which model the API serves today, Odyssey-3 API availability.