Introduction
Welcome to the OptimoCMS developer documentation. Learn how to manage sites, pages, media and more via the REST API, TypeScript SDK or MCP AI integration.
What is OptimoCMS?
OptimoCMS is a multi-tenant headless CMS platform that lets you manage websites, ecommerce, booking, loyalty programs and more — all through a single API.
You can access OptimoCMS in three ways:
| Method | When to use |
|---|---|
| REST API | Direct HTTP calls from any language or platform |
| TypeScript SDK | Type-safe development in Node.js or browser |
| MCP (AI tools) | AI-powered site management via Cursor, Claude or Lovable |
Architecture
┌─────────────────┐ ┌──────────────────────────┐
│ Your app │────▶│ api.optimocms.com (v1) │
│ (SDK / curl) │◀────│ Cloud Run · europe-west4 │
└─────────────────┘ └────────────┬─────────────┘
│
┌─────────────────┐ ┌────────────▼─────────────┐
│ AI Agent │────▶│ Firestore (multi-tenant) │
│ (MCP tools) │ │ Storage · CDN │
└─────────────────┘ └──────────────────────────┘- API Gateway — Single endpoint for all operations. API key authentication via
X-Api-Keyheader. - Multi-tenant — Each site has a unique
siteId. Your API key only grants access to your own sites. - EU-hosted — All data is stored in the EU (europe-west4). GDPR-compliant by design.
What can you do?
| Module | Description | Endpoints |
|---|---|---|
| Sites | Create and manage websites | GET /v1/sites |
| Pages | CRUD + visual editor data | GET/POST/PUT/DELETE /v1/sites/{siteId}/pages |
| Media | Upload images, videos, documents | GET/POST /v1/sites/{siteId}/media |
| AI | Site generation, translation, content assist | POST /v1/sites/{siteId}/ai/* |
| Ecommerce | Products, orders, coupons | GET/POST /v1/sites/{siteId}/shop/* |
| Booking | Schedule and manage appointments | GET/POST /v1/sites/{siteId}/booking/* |
| Loyalty | Earn and redeem points | POST /v1/sites/{siteId}/loyalty/* |
| Webhooks | Receive real-time events | GET/POST /v1/sites/{siteId}/webhooks |
| Analytics | Visitors and pageviews | GET /v1/sites/{siteId}/analytics |
| Push | Push notification campaigns | POST /v1/sites/{siteId}/push/campaign |
Quick links
- Quickstart — Your first API call in 5 minutes
- Authentication — API keys, scopes and rate limits
- API Reference — All endpoints with request/response examples
- SDK Guide — TypeScript SDK installation and usage
- MCP Integration — AI tool integration with Cursor, Claude and Lovable
Try it now
curl https://api.optimocms.com/v1/sites \
-H "X-Api-Key: your_api_key"{
"data": [
{
"id": "site_abc123",
"name": "My Restaurant",
"domain": "myrestaurant.com",
"status": "published",
"createdAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-05-20T14:22:00Z"
}
],
"pagination": { "total": 1, "limit": 20, "nextCursor": null },
"meta": { "requestId": "req_xyz789", "timestamp": "2026-05-26T12:00:00Z" }
}