OptimoCMSDocs
SDK

TypeScript SDK — Installation

Installieren und konfigurieren Sie das offizielle OptimoCMS TypeScript SDK.

TypeScript SDK

Das offizielle TypeScript SDK bietet eine typsichere, ergonomische Schnittstelle zur OptimoCMS API.

Installation

npm install @optimocms/sdk

Erfordert Node.js 18+ oder einen modernen Browser mit ES2020 Module Support.

Client Setup

import { OptimoCMS } from '@optimocms/sdk';

const cms = new OptimoCMS({
  apiKey: process.env.OPTIMOCMS_API_KEY!,
});

Verfügbare Module

cms.sites       // Sites verwalten
cms.pages       // Seiten CRUD
cms.media       // Medien hochladen und verwalten
cms.ai          // KI-Generierung und Übersetzung
cms.shop        // Produkte, Bestellungen, Gutscheine
cms.booking     // Buchungen
cms.webhooks    // Webhook-Konfiguration
cms.domains     // Domainregistrierung und -verwaltung
cms.mail        // Postfächer und DNS-Einträge
cms.seo         // SEO-Konfiguration und Design-Tokens
cms.chatbot     // Chatbot-Konfiguration

KI-Generierung mit Medien

Das cms.ai-Modul unterstützt KI-generierte Hero-Videos. Verfügbar für Professional- und Agency-Pläne.

Seite mit Hero-Video generieren

const result = await cms.ai.generatePage('site_abc123', {
  prompt: 'Landingpage für eine Bäckerei in Amsterdam',
  language: 'de',
  style: 'minimalist',
  useHeroVideo: true,
  videoModelId: 'seedance-fast', // optional: seedance-fast | seedance-standard | kling-standard
});

console.log(result.jobId);
console.log(result.heroVideoGenerated); // true wenn Video erfolgreich generiert

Website mit Hero-Video generieren

const result = await cms.ai.generateSite({
  name: 'Bäckerei Der Goldene Ofen',
  prompt: 'Eine moderne Website für eine handwerkliche Bäckerei',
  language: 'de',
  useHeroVideo: true,
  videoModelId: 'seedance-standard', // 2 Credits, maximale Qualität
});

console.log(result.siteId);
console.log(result.heroVideoGenerated); // true wenn Video erfolgreich generiert
console.log(result.videoModel);         // 'seedance-standard'
console.log(result.videoCreditsUsed);   // 2

Hinweis: Wenn useHeroVideo nicht angegeben oder auf false gesetzt ist, wird kein Video generiert. Das bestehende Verhalten (Stockfotos) bleibt unverändert. Bei niedrigeren Plänen (Free, Starter) wird der Parameter ignoriert. Ohne videoModelId wird standardmäßig seedance-fast verwendet.

Domains

const check = await cms.domains.checkAvailability('baeckerei-berlin.de');
console.log(check.available, check.priceCents);

const domain = await cms.domains.register({
  domain: 'baeckerei-berlin.de',
  siteId: 'site_abc123',
  registrant: { firstName: 'Max', lastName: 'Müller', email: 'max@beispiel.de', phone: '+491234567890', address: 'Friedrichstr. 1', city: 'Berlin', postalCode: '10117', country: 'DE' },
});

E-Mail

const mailbox = await cms.mail.createMailbox('site_abc123', {
  localPart: 'info',
  displayName: 'Info Bäckerei',
});
console.log(mailbox.email, mailbox.password);

const records = await cms.mail.getDnsRecords('site_abc123');

SEO & Design-Tokens

await cms.seo.updateSiteSeo('site_abc123', {
  siteTitle: 'Bäckerei Berlin — Frisches Gebäck jeden Tag',
  siteDescription: 'Die beste Bäckerei Berlins.',
  robotsDirective: 'index,follow',
});

await cms.seo.updateDesignTokens('site_abc123', {
  colorPrimary: '#ff6600',
  fontHeading: 'Inter',
});

Push-Benachrichtigungen

await cms.push.sendCampaign('site_abc123', {
  title: 'Sommerrabatt 20%!',
  body: 'Bestellen Sie heute und erhalten Sie 20% Rabatt.',
});

Webhooks

const webhook = await cms.webhooks.create('site_abc123', {
  url: 'https://mein-crm.de/hook',
  events: ['order.created', 'booking.created'],
});

Chatbot

await cms.chatbot.configure('site_abc123', {
  enabled: true,
  greeting: 'Hallo! Wie kann ich Ihnen helfen?',
  primaryColor: '#2563eb',
  language: 'de',
});

const config = await cms.chatbot.getConfig('site_abc123');

Nächste Schritte

On this page