Sandbox
Sandbox keys (lk_test_...) exercise the entire API surface without
spending credits: TTS routes to a sandbox provider and never deducts,
while requests, validation, errors and webhooks behave exactly like
production. Build and test your whole integration before buying credits.
Creating a sandbox key
Mint with "environment": "test" (requires an admin-scoped key —
see Getting Started):
curl -X POST https://api.lecturia.ai/v1/saas/keys \
-H "Authorization: Bearer lk_live_YOUR_ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "local dev", "scopes": ["read", "write"], "environment": "test" }'
What differs from live
POST /tts:synthesizeand the conversion pipeline run against the sandbox TTS provider — audio comes back, credits stay untouched (credits_chargedreflects what the call would cost).- Everything else — schemas, error codes, webhooks, rate limits — is the
production behaviour. If it works on
lk_test_, the only change for production is the key.
Same URL, no special headers
The environment is selected purely by the API key. Point your code at
https://api.lecturia.ai/v1/saas in both cases and swap the key via
configuration.