OptimoCMSDocs

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:

MethodWhen to use
REST APIDirect HTTP calls from any language or platform
TypeScript SDKType-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-Key header.
  • 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?

ModuleDescriptionEndpoints
SitesCreate and manage websitesGET /v1/sites
PagesCRUD + visual editor dataGET/POST/PUT/DELETE /v1/sites/{siteId}/pages
MediaUpload images, videos, documentsGET/POST /v1/sites/{siteId}/media
AISite generation, translation, content assistPOST /v1/sites/{siteId}/ai/*
EcommerceProducts, orders, couponsGET/POST /v1/sites/{siteId}/shop/*
BookingSchedule and manage appointmentsGET/POST /v1/sites/{siteId}/booking/*
LoyaltyEarn and redeem pointsPOST /v1/sites/{siteId}/loyalty/*
WebhooksReceive real-time eventsGET/POST /v1/sites/{siteId}/webhooks
AnalyticsVisitors and pageviewsGET /v1/sites/{siteId}/analytics
PushPush notification campaignsPOST /v1/sites/{siteId}/push/campaign

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" }
}

On this page