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/sdkErfordert 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-KonfigurationKI-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 generiertWebsite 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); // 2Hinweis: Wenn
useHeroVideonicht angegeben oder auffalsegesetzt ist, wird kein Video generiert. Das bestehende Verhalten (Stockfotos) bleibt unverändert. Bei niedrigeren Plänen (Free, Starter) wird der Parameter ignoriert. OhnevideoModelIdwird standardmäßigseedance-fastverwendet.
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' },
});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
- Fehlerbehandlung — Typisierte Fehler und Retry-Strategie
- Paginierung — Async Iteratoren und cursor-basierte Paginierung
- Authentifizierung — Scopes und Rate Limits