> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myustadia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sandbox Mode

> Build and test your integration for free against a canonical demo course

Sandbox is a free integration environment for the MyUstadia API. It is enabled automatically when you use an `sk_test_` API key.

## How it works

Sandbox is a **fetch model**, not a simulator. The API never runs a real generation pipeline and never charges quota. Instead, every course-read endpoint resolves to one shared, pre-built demo course (`20260621_001352_0fca91`). This canonical course has real slides, video, notes, and quiz data, so your UI and webhook handlers can be built against real response shapes.

## What happens in sandbox

| Behaviour                                 | Sandbox | Production                 |
| ----------------------------------------- | ------- | -------------------------- |
| Course creation returns a `course_id`     | Yes     | Yes                        |
| `status` poll returns `ready` immediately | Yes     | No (5 to 15 min real wait) |
| Video URLs point to the demo course       | Yes     | No                         |
| Quota consumed                            | No      | Yes                        |
| Webhook deliveries fire                   | Yes     | Yes                        |
| Idempotency key required on launch        | Yes     | Yes                        |

## When to use it

* Building the integration in CI
* Reviewing UI flows with stakeholders
* Verifying webhook signature handling
* Running smoke tests on every deploy

## When NOT to use it

* Final QA before go-live. Run at least a handful of real `sk_live_` generations end-to-end to verify your billing flow, error handling on real failures, and webhook reliability.
* Load testing. Sandbox is rate-limited and the response shapes are static; it does not represent production behaviour under stress.

## Isolation guarantees

* `sk_live_` keys never see the sandbox course.
* The sandbox demo course is read-only; mutations against it succeed but have no persistent effect.
* Sandbox webhook deliveries carry `"sandbox": true` in the payload so your consumer can branch.

## Going live

When your integration is ready:

1. Swap the API key from `sk_test_` to `sk_live_` in your config or secret store.
2. Verify your webhook URL is registered (contact your account manager if not).
3. Run one full course generation to confirm the live flow end-to-end.
4. Monitor your first week of production traffic for billing and rate-limit signals.
