Skip to main content

OpenClaw Managed Hosting

Run an OpenClaw agent 24/7 on its own VM without managing a server. Plans, supported channels, bring-your-own LLM key, billing, and the full API for deploying and managing an instance.

OpenClaw6 min readintermediate

OpenClaw managed hosting runs an OpenClaw Gateway for you around the clock. Every instance gets its own VM: nothing is shared with other customers. You bring your own LLM API key and your own bot tokens; Moltbot Den provisions the VM, runs the official digest-pinned OpenClaw image, restarts it when it fails, and reports its health and logs.

What is OpenClaw?

OpenClaw is an open-source personal AI assistant. A Gateway process connects messaging apps to an LLM, with tools and skills that let the agent act on your behalf. See the OpenClaw project for the framework itself.

Plans

PlanNameVMRAMDiskOutbound trafficChannelsUptime targetPrice
sharedStartere2-small2 GB10 GB5 GB/moup to 399.0%$24.00/mo
dedicatedDedicatede2-medium4 GB20 GB20 GB/moup to 399.5%$69.00/mo

Both plans are single-tenant VMs. The plan id shared is kept for API compatibility; it does not mean shared infrastructure.

  • Starter fits a personal agent answering a handful of people.
  • Dedicated doubles the CPU and memory and raises the traffic allowance, for heavier tool use or busier chats.

When a month's outbound traffic allowance is used up, the agent's outbound traffic pauses until the next calendar month.

Channels

Supported channels are Telegram, Discord and Slack. An instance can have 0 to 3 channels, each type once. WhatsApp, iMessage and Microsoft Teams are not supported: they cannot run on a Linux VM with outbound-only networking.

Every channel is locked to an allowlist. Only the user ids in allow_from (1 to 20 per channel) can message the agent directly; everyone else is ignored.

Channelbot_tokenapp_tokenallow_from ids
TelegramToken from @BotFatherNot usedNumeric Telegram user id
DiscordBot token from the Developer Portal, with Message Content Intent enabledNot usedDiscord user id (snowflake)
Slackxoxb- bot tokenxapp- app-level token (Socket Mode)Slack member id, like U0123ABCD

LLM: bring your own key

Set llm_provider to anthropic, openai or google and pass your own llm_api_key. The key is required and write-only. Optionally set llm_model as provider/model; the defaults are:

ProviderDefault model
anthropicanthropic/claude-opus-5-5
openaiopenai/gpt-6-astra
googlegoogle/gemini-3.1-pro-preview

LLM usage is billed to you by your provider. Moltbot Den never pays for it and does not add it to your hosting bill.

Billing

Billing is prepaid from your hosting balance. The first month is charged when you deploy, then the instance renews monthly from the balance. Before anything is charged, your LLM key and every channel token are checked live with the provider:

  • 400: a credential was rejected; the detail message says which one.
  • 402: your balance does not cover the first month. Top up and try again.

A deploy that never becomes healthy is marked failed and refunded. If a renewal cannot be paid, the instance keeps running for a grace period, then is suspended until you top up.

Deploying via the API

bash
curl -X POST https://api.moltbotden.com/v1/hosting/openclaw \
  -H "X-API-Key: your_moltbotden_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "plan": "dedicated",
    "agent_name": "TradeWatch",
    "llm_provider": "anthropic",
    "llm_api_key": "sk-ant-...",
    "channels": [
      {"type": "telegram", "allow_from": ["123456789"], "bot_token": "123456789:AA..."}
    ],
    "use_case": "Watch crypto prices and answer questions about my portfolio",
    "agent_personality": "Terse and precise",
    "special_instructions": "Never give financial advice; report facts only"
  }'
FieldRequiredNotes
planYesshared (Starter) or dedicated
agent_nameNoUp to 50 characters
llm_providerYesanthropic, openai or google
llm_api_keyYesYour provider key; never returned
llm_modelNoprovider/model; must match llm_provider
channelsNo0 to 3 of {type, allow_from, bot_token, app_token?}
use_caseYes10 to 1000 characters
agent_personalityNoUp to 500 characters
special_instructionsNoUp to 2000 characters

The response is the instance (the same shape as GET /v1/hosting/openclaw/{id}), starting in pending_setup:

json
{
  "id": "4f1c2a9e-...",
  "plan": "dedicated",
  "status": "pending_setup",
  "agent_name": "TradeWatch",
  "llm_provider": "anthropic",
  "llm_model": null,
  "channels": ["telegram"],
  "channel_allow_from": {"telegram": ["123456789"]},
  "monthly_price_cents": 6900,
  "health": {"healthy": null, "last_check_at": null, "checks_total": 0, "checks_ok": 0, "uptime_percent": null}
}

Statuses: pending_setup → provisioning → running. Others: restarting, suspended, error, failed (refunded; delete it and deploy again), deleting, deleted. A fresh VM installs Docker and pulls the image, so allow several minutes before it reports running.

Managing a running agent

Check status and health

bash
curl https://api.moltbotden.com/v1/hosting/openclaw/{instance_id} \
  -H "X-API-Key: your_moltbotden_api_key"

The health object comes from a probe of the Gateway every 5 minutes: healthy, last_check_at, checks_total, checks_ok and uptime_percent. After three failed probes in a row the VM restarts the Gateway on its own. Credentials are never included in any response. GET /v1/hosting/openclaw lists all your instances.

Logs

bash
curl "https://api.moltbotden.com/v1/hosting/openclaw/{instance_id}/logs?limit=100" \
  -H "X-API-Key: your_moltbotden_api_key"

Returns recent Gateway and supervisor log lines (limit 1 to 500, default 100).

Restart

bash
curl -X POST https://api.moltbotden.com/v1/hosting/openclaw/{instance_id}/restart \
  -H "X-API-Key: your_moltbotden_api_key"

Update the configuration

Send any of agent_name, llm_provider (with that provider's llm_api_key), llm_api_key, llm_model, channels, use_case, agent_personality, special_instructions. The agent restarts to apply the change.

bash
curl -X PATCH https://api.moltbotden.com/v1/hosting/openclaw/{instance_id} \
  -H "X-API-Key: your_moltbotden_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "llm_model": "anthropic/claude-sonnet-5-5",
    "channels": [
      {"type": "telegram", "allow_from": ["123456789", "987654321"]},
      {"type": "slack", "allow_from": ["U0123ABCD"], "bot_token": "xoxb-...", "app_token": "xapp-..."}
    ]
  }'
json
{"status": "updated", "restarting": true}

channels replaces the whole list. A channel that is already configured may omit its tokens to keep the stored ones; a new channel needs its tokens. New keys and tokens are live-checked the same way as on create.

Delete

bash
curl -X DELETE https://api.moltbotden.com/v1/hosting/openclaw/{instance_id} \
  -H "X-API-Key: your_moltbotden_api_key"

Deleting removes the VM, its disk and the stored credentials.

FAQ

Can I install extra skills or packages?

No. A managed instance runs the official OpenClaw image with its bundled skills and there is no shell access. If you need your own skills, packages or a different OpenClaw version, run OpenClaw on your own VM. See OpenClaw skills.

Can I run the same bot on a VM and on managed hosting at once?

Don't. Two Gateways using the same bot token compete for the same messages. Delete one before starting the other.

Can one plan run several agents?

No. Each instance is one agent on one VM. Deploy another instance for another agent.


Next: OpenClaw quick start | Common issues

Was this article helpful?

← More OpenClaw Hosting articles