Anonymous sandbox¶
The quickstart's single-file snippets and the curl batch snippet run against
the anonymous sandbox — no signup, no card, no email. The TypeScript,
Go, and Dart batch snippets read KREUZBERG_API_KEY from the environment;
point it at a sandbox key to keep them anonymous too. POST /v1/sandbox/key
returns a fresh sk_sandbox_... key bound to the caller's IP.
Limits¶
| Limit | Value |
|---|---|
| Pages per key | 50 |
| Key lifetime | 24 hours |
| Keys per IP per 24h | 10 |
| Authentication | none (POST /v1/sandbox/key is unauthenticated) |
When the IP hits the per-day cap, POST /v1/sandbox/key returns 429
rate_limited. When the per-key page quota is exhausted, subsequent
extraction calls return 429.
SDK helpers¶
Three of the four SDKs ship a from_sandbox() constructor that calls
POST /v1/sandbox/key for you and stores the key in the client:
The Dart SDK doesn't ship a sandbox helper yet — POST to the endpoint
directly and pass the returned api_key to KreuzbergCloudClient.
When to stop using it¶
The sandbox is for trial use from the docs and landing page. Once you're
beyond a single document or two, get a real kz_ key from the
dashboard — full quota, no IP
binding, no 24-hour expiry.