OptimoCMSDocs
SDK

TypeScript SDK — Installatie

Installeer de OptimoCMS TypeScript SDK en bouw type-safe integraties. Ondersteunt Node.js 18+, retries, pagination en alle API endpoints.

TypeScript SDK

De officiële TypeScript SDK biedt een type-safe, ergonomische interface voor de OptimoCMS API.

Installatie

npm install @optimocms/sdk

Of met yarn/pnpm:

yarn add @optimocms/sdk
pnpm add @optimocms/sdk

Vereisten

OmgevingMinimale versie
Node.js18.0+
TypeScript5.0+ (optioneel, maar aanbevolen)
BrowserElk met ES2020 module support (Chrome 80+, Firefox 80+, Safari 14+, Edge 80+)

Module formaten

De SDK levert zowel ESM als CJS bundles:

// ESM (aanbevolen)
import { OptimoCMS } from '@optimocms/sdk';

// CommonJS
const { OptimoCMS } = require('@optimocms/sdk');

Client setup

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

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

Configuratie-opties

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

  // Basis-URL (standaard: https://api.optimocms.com)
  baseUrl: 'https://api.optimocms.com',

  // Request timeout in ms (standaard: 30000)
  timeout: 30_000,

  // Automatische retry bij 429/5xx (standaard: 3)
  maxRetries: 3,
});
OptieTypeStandaardBeschrijving
apiKeystringVerplicht. Je API key
baseUrlstringhttps://api.optimocms.comAPI basis-URL
timeoutnumber30000Request timeout in milliseconden
maxRetriesnumber3Max retries bij rate limit of server errors

Browser gebruik

De SDK werkt ook in de browser. Gebruik nooit je API key direct in client-side code — maak een backend proxy:

// Backend (Node.js) — /api/sites.ts
import { OptimoCMS } from '@optimocms/sdk';

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

export async function GET() {
  const sites = await cms.sites.list();
  return Response.json(sites);
}
// Frontend (browser)
const response = await fetch('/api/sites');
const sites = await response.json();

Beschikbare modules

Na initialisatie heb je toegang tot alle API modules:

cms.sites       // Sites beheren
cms.pages       // Pagina CRUD
cms.media       // Media uploaden en beheren
cms.analytics   // Analytics ophalen
cms.ai          // AI generatie en vertaling
cms.booking     // Boekingen
cms.reservation // Reserveringen
cms.shop        // Producten, bestellingen, coupons
cms.loyalty     // Loyaliteitspunten
cms.webhooks    // Webhook configuratie
cms.forms       // Formulier inzendingen
cms.push        // Push notificaties
cms.reviews     // Reviews
cms.recruitment // Vacatures
cms.batch       // Bulk operaties
cms.jobs        // Async job polling

TypeScript types

Alle request en response types zijn volledig getypeerd en geëxporteerd:

import type {
  Site,
  SiteSummary,
  Page,
  PageDetail,
  PageSummary,
  CreatePageInput,
  UpdatePageInput,
  MediaItem,
  AnalyticsSummary,
  Product,
  Booking,
  OptimoCMSError,
  PaginatedResponse,
} from '@optimocms/sdk';

Try it — curl equivalent:

# De SDK verbergt deze details, maar dit is wat er onder de motorkap gebeurt
curl https://api.optimocms.com/v1/sites \
  -H "X-Api-Key: optimo_live_abc123def456"

Try it — MCP equivalent:

Gebruik de list_sites tool.

Volgende stappen

On this page