Laboros Laboros

API Documentation

Create and manage OpenClaw deployments programmatically using the Laboros REST API.

Authentication

All API requests require a Bearer token in the Authorization header. Generate your token from the Account page (sign in first) and include it in every request:

Authorization: Bearer YOUR_API_TOKEN

Base URL

https://www.laboros.ai/api/v1

GET List Deployments

Returns all deployments for the authenticated user.

Request

curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://www.laboros.ai/api/v1/deployments

Response

[
  {
    "id": 42,
    "subdomain_slug": "swift-lobster-a1b2c3",
    "status": "live",
    "interface": "web",
    "ai_model": "claude-sonnet-4-5",
    "openclaw_url": "https://swift-lobster-a1b2c3.openclaw.net/?token=...",
    "created_at": "2026-02-10T12:00:00.000Z"
  }
]

POST Create Deployment

Creates a new OpenClaw deployment and begins provisioning.

Note: A successful response means provisioning has started, not that the deployment is live. Poll GET /api/v1/deployments/:id and check the status field until it reaches "live" (or "failed"). This typically takes 3-5 minutes.

Parameters

Name Type Required Description
interface string Yes One of: web , telegram , discord , slack
ai_model string Yes e.g. claude-sonnet-4-5 , gpt-4o , kimi-k2.5
api_token string Yes Your AI provider API key (Anthropic, OpenAI, or Moonshot)
telegram_token string Telegram only Telegram bot token from @BotFather
telegram_user_id string Telegram only Your Telegram username or user ID
discord_token string Discord only Discord bot token
slack_bot_token string Slack only Slack bot token (xoxb-...)
slack_app_token string Slack only Slack app-level token (xapp-...)

Example (Web)

curl -X POST \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"interface":"web","ai_model":"claude-sonnet-4-5","api_token":"sk-ant-..."}' \
  https://www.laboros.ai/api/v1/deployments

Example (Telegram)

curl -X POST \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "interface": "telegram",
    "ai_model": "claude-sonnet-4-5",
    "api_token": "sk-ant-...",
    "telegram_token": "123456:ABC-...",
    "telegram_user_id": "your_username"
  }' \
  https://www.laboros.ai/api/v1/deployments

Response (201 Created)

{
  "id": 43,
  "subdomain_slug": "keen-crab-d4e5f6",
  "status": "pending",
  "interface": "web",
  "ai_model": "claude-sonnet-4-5",
  "openclaw_url": null,
  "created_at": "2026-02-10T12:05:00.000Z"
}

Polling for Status

After creating a deployment, poll the Show endpoint every 10-15 seconds until finished is true :

# Poll until deployment is ready
while true; do
  STATUS=$(curl -s -H "Authorization: Bearer YOUR_API_TOKEN" \
    https://www.laboros.ai/api/v1/deployments/43)
  echo "$STATUS" | grep -q '"finished":true' && break
  sleep 15
done
echo "$STATUS"

GET Show Deployment

Returns detailed status information for a single deployment.

Request

curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://www.laboros.ai/api/v1/deployments/42

Response

{
  "id": 42,
  "subdomain_slug": "swift-lobster-a1b2c3",
  "status": "live",
  "interface": "web",
  "ai_model": "claude-sonnet-4-5",
  "openclaw_url": "https://swift-lobster-a1b2c3.openclaw.net/?token=...",
  "created_at": "2026-02-10T12:00:00.000Z",
  "progress_phase": "live",
  "progress_timeline": [...],
  "error_message": null,
  "finished": true
}

DELETE Delete Deployment

Deletes a deployment and terminates the EC2 instance.

Request

curl -X DELETE \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://www.laboros.ai/api/v1/deployments/42

Response (200 OK)

{
  "message": "Deployment deleted"
}

Error Codes

Status Meaning
401 Unauthorized Missing or invalid API token
402 Payment Required No available deployment slots (subscribe or add a slot)
404 Not Found Deployment not found or belongs to another user
422 Unprocessable Entity Validation failed (invalid parameters, bad API key, etc.)

Error Response Format

{"error": "Unauthorized"}
{"error": "No available deployment slots..."}
{"errors": ["API key is invalid - ..."]}