US, EU, and APAC regions at any time using the region switcher.
Interface overview
The Playground is split into two domains:| Domain | What it does |
|---|---|
| Generation | Build payloads, dispatch POST requests to /v1/generate, and monitor async responses |
| Management | Run lifecycle operations (info, cancel, delete) against a generation_id |
Top controls
| Control | Function |
|---|---|
| Image / Video tabs | Toggle modality — updates available models and schema |
| Model selector | Searchable dropdown of model_identifier targets |
| Region switcher | Set the target edge (US, EU, APAC) |
| API key input | Enter your BabySea API key |
| Lock button | Commit the key — required before any request can be sent |
Layout
On desktop, the generation domain renders as three resizable columns:| Column | Content |
|---|---|
Left — Schema | Active model constraints and parameter definitions |
Center — Request Body | Interactive JSON payload builder |
Right — Response | Async execution timeline, JSON output, or error details |
schema, input, response.
Generating content
How to send a request
Lock your API key
Enter your API key and click the lock button. The Send request button stays disabled until this is done.
Build the payload
Fill in parameters in the Request Body panel. Click Reset to restore model defaults at any time.
Send the request
Click Send request. This dispatches a
POST to /v1/generate/{image|video}/{model_identifier} at the selected region.Response panel
| Element | When it appears |
|---|---|
| HTTP status badge | After the request resolves |
| Execution latency | Live during pending / processing, frozen after |
| Line count | JSON responses only |
| Copy to clipboard | Always visible |
Note: The execution timeline is a frontend visualization for monitoring — it’s not a polling contract. For production integrations, use webhooks for real-time delivery.
Validation and errors
The interface validates before sending. Common states:| Situation | Message |
|---|---|
| API key not locked | Send button disabled — Lock API key to send |
| Required field empty | Fill required: {field_name} |
| Invalid API key format | Invalid API key format |
| Unknown or invalid model | Unknown model / Invalid model type |
| Bad endpoint shape | Invalid endpoint path |
| Invalid enum value | Invalid value for {field_name} |
| String too long | {field_name} exceeds maximum length ({limit} chars) |
| Invalid URL | {field_name} must be a valid public HTTPS URL |
| Number out of range | {field_name} must be at least {min} / at most {max} |
| Response too large | Response too large |
| Non-JSON response | Invalid JSON response from server |
| Timeout | Request timed out |
Schema and payload
Schema panel
The Schema panel shows the full constraint structure for the selected model. The header displays the total parameter count and an export button to copy the raw schema JSON. Each parameter row includes:| Field | Description |
|---|---|
| Key | The exact JSON key used in the payload |
| Type | string, number, boolean, or array |
| Required | Flagged with a required badge — blocks dispatch until filled |
| Description | What the parameter controls |
| Boundaries | min, max, default, and allowed enum values |
Request Body panel
The payload builder is bound to the active schema and renders type-appropriate inputs:| Type | Input rendered |
|---|---|
| String | Text input or textarea |
| Number | Numeric input with step/min/max enforcement |
| Boolean | Toggle (true / false) |
| Enum | Dropdown limited to valid options |
| Array (URLs) | Multi-entry input with add/remove controls |
| Complex object | Flattened for input, reconstructed as JSON on dispatch |
Validation rules
Before dispatch, the payload is validated against these rules:| Rule | Behavior |
|---|---|
| Unknown keys | Stripped from the payload automatically |
| String length | Capped at 10,000 characters |
| Prompt length | generation_prompt capped at 5,000 characters |
| Numeric range | Must fall between min and max |
| Enum values | Must exactly match a supported option |
| URLs | Must be public https:// URIs; invalid ones are stripped from arrays |
| Array size | Capped by the parameter’s constraint |
Model resolution
The model selector uses fuzzy search overmodel_identifier strings and supports keyboard navigation (↑, ↓, Enter, Escape). Each result shows the associated AI lab icon. If nothing matches, it shows No models found.
The catalog reflects BabySea’s live configuration — new models are automatically available in the Playground as they’re integrated.
Managing content
After a successful generation, the response includes ageneration_id UUID. Use the Management panel to act on it.
Available operations
| Operation | Route | Method |
|---|---|---|
| Content Info | /v1/content/{generation_id} | GET |
| Cancel Generation | /v1/content/generation/cancel/{generation_id} | POST |
| Delete Content | /v1/content/{generation_id} | DELETE |
generation_id input field, and a response panel.
The generation_id field
| Field | Value |
|---|---|
| Type | string<uuid> |
| Required | Yes |
| Placeholder | 00000000-0000-0000-0000-000000000000 |
| Validation | Must be a valid UUID if malformed |
Lock API key to send if the key isn’t committed, Sending... during execution, and Send request when ready.
Operation details
Content Info — Fetches the full execution record for a generation viaGET /v1/content/{generation_id}.
Cancel Generation — Sends a termination signal to an in-progress generation via POST /v1/content/generation/cancel/{generation_id}. If the generation hasn’t started processing yet, BabySea’s billing engine automatically reverses the credit reservation.
Delete Content — Permanently removes the generation record and all output assets from edge storage via DELETE /v1/content/{generation_id}. A 204 No Content response is treated as success and shown as an empty JSON object.
Export as cURL
Each operation panel includes a cURL export button that generates a ready-to-run command using the active region, route, and your committed API key. Use these to move quickly from browser testing to scripted validation.Endpoints reference
| Operation | Method | Route |
|---|---|---|
| Generate image | POST | /v1/generate/image/{model_identifier} |
| Generate video | POST | /v1/generate/video/{model_identifier} |
| Get content info | GET | /v1/content/{generation_id} |
| Cancel generation | POST | /v1/content/generation/cancel/{generation_id} |
| Delete content | DELETE | /v1/content/{generation_id} |