/v1 request. Each key belongs to one BabySea account and is sent in the Authorization: Bearer ... header.
What you see in API keys
The workspace page at API keys is the control surface for key creation and key lifecycle management. The page includes:- The page title API keys.
- The button Create API key.
- An icon button with the tooltip
Open full view. - A search field with the placeholder
Search.... - A table with the columns API name, Prefix, Last used, Created, Status, and IP allowlist.
- A row action menu that can show Rotate, Revoke, Rotated, and Delete, depending on the key state.
No data available and the helper text Generate API keys to authenticate requests and start generating contents.
Who can manage keys
API keys are account-bound.- In a personal account, the account owner can create and manage keys for that account.
- In a team workspace,
primary-ownerandownercan create, rotate, revoke, and delete keys. - In a team workspace,
memberhas view-only access to the page.
Key format and storage model
BabySea generates keys with thebye_ prefix.
- a 9-character
key_prefixfor lookup and dashboard display - a bcrypt hash for secret verification
How authentication works
Send the key in theAuthorization header:
Terminal
TypeScript
/v1 request, BabySea performs this flow before the request is allowed to continue:
Read the bearer token
BabySea accepts API key authentication when the
Authorization header starts with Bearer bye_....Verify the key
BabySea verifies that the presented key is valid. The full key value is shown only when you create or rotate it.
Check the IP allowlist
If the key has an IP allowlist, BabySea checks whether the request IP is permitted.
/v1 route handler.
Status and lifecycle
TheStatus column reflects the current authentication state of the key.
| Status | Meaning |
|---|---|
Active | The key is active and can authenticate requests. |
Rotated | The old key was rotated and is still inside its grace period. |
Expired | The key reached its expires_at timestamp and no longer authenticates. |
Revoked | The key was manually disabled and no longer authenticates. |
Permission presets
When you create a key, thePermissions section shows these presets:
| Preset | Dashboard description |
|---|---|
Full Access | All permissions - read, write, delete |
Generate Only | Create & read generations + browse models |
Read Only | Read generations, account info, health - no spending |
Monitor Only | Health checks & model catalog - no account data |
One-time key display
The full secret is displayed exactly once in the dialog View API key after creation, and once again in Key rotated successfully after rotation. If you close the dialog without storing the value, BabySea cannot show the raw key again. Your recovery path is to:- rotate the key and replace the old secret in your applications
- delete the key and create another one
Common authentication errors
These errors appear when authentication or authorization fails before the route completes:| Code | Message |
|---|---|
BSE1001 | Missing API key. Provide a valid key via the Authorization header. |
BSE1002 | Invalid or expired API key. |
BSE1003 | API key does not have permission for this resource. |
BSE1007 | This IP address is not in the allowlist for this API key. |
Next steps
- Create a key - Follow the dashboard flow from Create API key to View API key
- Scopes - Match each permission preset to the public
/v1routes it can use - IP allowlist - Restrict a key to exact source IP addresses
- Rotation - Manage grace periods, revocation, and deletion