# InfoEmu > InfoEmu is a web presence OS: managed hosting for websites, docs, knowledge > bases, communities (forums), and customer support (help desk + shared inbox) > on the customer's own domain. Everything the platform does is a plain HTTP > API with scoped tokens, which makes it directly drivable by AI agents. Signup and billing are human steps (card via Paddle, 14-day free trial on available plans): https://portal.infoemu.com. After that, all operations below are API calls. Contact: hi@infoemu.com. ## Deploy API (static sites & docs; auth: per-instance deploy token, `Authorization: Bearer`) Base: the portal origin, paths under /api/deploy/{instance_id} - POST /api/deploy/{id} — upload a tar.gz of a BUILT site (multipart field "archive"). Atomic release; returns the release id. - POST /api/deploy/{id}/source — upload a tar of RAW Markdown content; the platform builds it in a sandbox (pinned static-site generator). Build status/logs: GET /api/deploy/{id}/builds and /builds/{build_id}. - GET /api/deploy/{id}/releases — releases + aliases: what's live, what's staged, and per-release preview hostnames (r---.). - POST /api/deploy/{id}/promote — body {"release": ""}: make a release live (atomic pointer swap). - PUT/DELETE /api/deploy/{id}/stage — point/clear the stage alias (stage--.) at a release. - POST /api/deploy/{id}/rollback — revert production to the previous release. - PUT /api/deploy/{id}/github — connect a GitHub repo (webhook + secret); pushes to the configured branch build and go live, other branches build as preview-only releases. Agent safety convention: deploy freely, always surface the preview URL, ask a human before promote, rollback first when production misbehaves. ## Tenant instance APIs (each customer site/forum is its own instance) - Forum REST API: {tenant}/api/forum/v1 — forums, topics, posts, threaded replies. Auth: Authentication-Token header (Flask-Security token) or, when the tenant enables FORUM_API_PUBLIC_READ, anonymous read of guest-visible forums. Pagination via page/page_size + X-Pagination header. React embed components: @infoemu/react. - Headless CMS: {tenant}/api/cms/v1 — content types, entries (/entries/{type_slug}), global settings. Auth: per-user API key (Authorization: Bearer blu_sk_...). AI content drafting endpoint (/ai-content/generate) available when the tenant configures an Anthropic API key (off by default). - Help desk: {tenant}/api/helpdesk/v1 — tickets, replies, categories, agents, reports. Inbound email to the tenant support address becomes tickets (threaded both ways). - Instance config: {portal}/api/instances/{id}/env (owner JWT) — allowlisted per-instance settings (e.g. FORUM_API_PUBLIC_READ, API_CORS_ORIGINS), applied via /api/instances/{id}/restart. ## Plans (USD/month) - Starter $49 (available now, 14-day free trial, card required) - Pro $89 and Business $449 (coming soon) - Self-Hosted $500 one-time (manual setup; email hi@infoemu.com) ## MCP server `@infoemu/mcp` — an MCP (Model Context Protocol) server exposing the platform as 23 typed tools across four groups (deploy, forum, cms, helpdesk). stdio transport; configure with the same env vars/tokens as above (deploy: INFOEMU_DEPLOY_URL/INSTANCE_ID/DEPLOY_TOKEN; tenant: INFOEMU_TENANT_URL + INFOEMU_TENANT_TOKEN or INFOEMU_CMS_API_KEY). Destructive operations (promote, rollback, production deploys, GitHub config) require an explicit confirm parameter — agents should ask the human first. Works with Claude Code (`claude mcp add`) and Claude Desktop; setup in the package README. ## Pages - Pricing: https://infoemu.com/pricing - Agent tutorial: https://infoemu.com/blog/ai-agents-guide - Portal (signup/login): https://portal.infoemu.com