Session authentication and wallet
Core 0.40.0 provides session Playground endpoints for signed-in users without creating or pasting a personal API Key. They use the account group and wallet, reserve funds first and settle against the original quote or actual usage. The user client must implement its own page and same-origin BFF; this documentation site's Try it remains API Key based and does not collect session credentials.
Forward the current user's session through a same-origin BFF with Origin and CSRF checks; Core does not provide general cross-origin CORS. POST /core/v1/playground/chat/completions, /responses and /messages support JSON or SSE and use their native response protocols. GET and DELETE /core/v1/playground/responses/{id} operate on the user's own Playground continuation context, not personal API Key history.
Images and video
POST /core/v1/playground/tasks accepts kind, public model_name and input, creating an asynchronous image or video task with a 202 and task ID. POST /core/v1/playground/media-tasks accepts multipart task JSON and one PNG image up to 10 MiB and 1–4096 pixels per dimension. Retry with the same source image UUID, bytes and original intent. Reference video still uses the controlled media bridge. Read GET /core/v1/tasks/{id}; display artifacts only when billing_state=settled and artifact_available=true. PNG is available via /core/v1/tasks/{id}/content; video may have a temporary URL and is not promised permanent storage. Use the account catalog for model capabilities and prices.
Idempotency, billing and recovery
Every session generation POST requires Idempotency-Key. Retry the same intent with the same key and input; use a new key only for changed input or a new generation. After disconnection or an unknown result, use GET /core/v1/playground/requests/by-intent?intent_id=ORIGINAL_INTENT and inspect the request ID. A 404 does not prove an in-flight submission will not complete. unknown and reserved require reconciliation, not automatic refunds or regeneration. HTTP 200 for SSE does not prove completion; inspect terminal events, errors and billing. Closing the connection does not cancel the provider. Treat balance_micro, reserved_micro and charge_micro as integer strings; 1 credit = 10000 micro.