Skip to main content
Use the REST API directly when the Python SDK is not a fit. All sandbox routes are under:

Authentication

Create an API token in the Thunder console and send it as a bearer token:
Sandbox access is organization-scoped and must be enabled separately. A valid token without access receives sandbox_access_denied.
The playground sends real production requests. Starting a sandbox may incur usage charges; stop it when you finish.

Lifecycle

  1. POST /sandboxes/start accepts the request and returns a permanent id.
  2. Poll GET /sandboxes/{id} until status is running or failed.
  3. POST /sandboxes/{id}/stop stops the sandbox. Repeating a stop is safe.
Use the ID, not the optional name, in every later request. Start and stop return 202 Accepted because lifecycle work is asynchronous. GET /sandboxes returns history newest first. The default page size is 50 and the maximum is 100; pass next_page_token back as page_token to continue.

Actionable errors

Every error contains an HTTP code, machine-readable error, and human-readable message. Start and stop allow 30 requests per organization per minute. Get and list allow 600 per minute, enough for one-second status polling.