# Flowg8 · Sandbox environments

Develop against isolated test data without affecting Live.

Use your Live organization ID with GET /v1/sandbox to discover the Sandbox workspace ID. All normal endpoints use that returned workspace ID in X-Organization-Id. Both modes use the same API base URL. API keys cannot discover or create environments.

Sandbox flows, versions, executions, decisions, groups, directory profiles, keys, audit history, AI budgets and idempotency records are separate from Live. Nothing is copied automatically. Live keys start with fg_sk_; Sandbox keys start with fg_test_. Keys cannot cross environments, even when supplied with a foreign workspace ID.

Each organization currently has one Sandbox. It includes 100 process starts per UTC calendar month, counted independently of the Live plan. Billing changes are only available in Live. Signed-in members retain their organizational permissions; removing their parent membership also removes Sandbox access and disables their Sandbox keys.

Sandbox policy: 100 successful starts per UTC calendar month, maximum 10 simultaneously open processes. Only starts that would wait for approval need an open slot. Open requests expire 7 days after creation (status expired; remaining gates cancelled). Process data is deleted 30 days after creation, including decisions, history and cached command responses. decisionExpiresAt and expiresAt expose fixed, non-extendable deadlines. Flow definitions, configuration and keys are retained. The Worker cleans in bounded batches every minute and at startup; expired data is inaccessible immediately even if cleanup is delayed.

Usage counters and minimal idempotency tombstones contain no execution payload and survive deletion. Expired command replays return 410 RUN_DATA_EXPIRED and cannot recreate the execution. Replayed retained Sandbox commands return current execution state, not an obsolete waiting snapshot. Completing, expiring or deleting processes does not refund monthly usage. Concurrent starts enforce both limits atomically.

Use synthetic data: Sandbox uses the real approval engine and approval groups. A Sandbox does not anonymize data or simulate every external service. Configured Sandbox lifecycle webhooks send real HTTPS requests to your test destination; approval emails stay in the test mailbox. AI remains a real DeutschlandGPT call subject to its normal limits.

## GET /v1/sandbox

Authentication: FLOWG8_ACCESS_TOKEN from Flowg8 sign-in
Required tenant header: X-Organization-Id.
Required user permissions: Active workspace membership required. The API checks current membership, roles, key scopes and resource permissions on every request. Documentation visibility grants no access.

## Request example (replace example IDs)

```sh
curl "https://api.flowg8.io/v1/sandbox" \
  -H "authorization: Bearer $FLOWG8_ACCESS_TOKEN" \
  -H "x-organization-id: 10000000-0000-4000-8000-000000000001"
```

Source: /docs/sandbox
Full schemas: /docs/openapi.json
