Zum Inhalt springen

SDKs

PreviewDie SDKs gibt es während der Preview nur hier als Download. Auf npm und PyPI erscheinen sie mit dem Aufstieg der API zu stabil; der Download bleibt dann als zweiter Weg.

TypeScript@bodo/api 1.0.0

Node 20 und neuer, Bun, Deno, Edge-Runtimes. Ohne Laufzeit-Abhängigkeiten, es braucht nur fetch und WebCrypto.
Shell
npm install ./bodo-api-1.0.0.tgz
TypeScript
// Portal D11 · SDKs — the TypeScript card: pages without hand-written cursor code, one task done.
// Run: BODO_API_KEY=bodo_uk_test_… bun examples/sdk-overview.ts
import { Bodo } from "@bodo/api";

const bodo = new Bodo({ apiKey: process.env.BODO_API_KEY, preview: true });

// walks nextCursor by itself
for await (const contact of bodo.contacts.list({ updatedSince: "2026-11-03T09:00:00Z" })) {
  if ("deleted" in contact) continue;
  console.log(contact.lastName);
}

const task = await bodo.tasks.create({ title: "Angebot nachfassen" });
const done = await bodo.tasks.complete(task.id);
console.log(done.id, done.status);

Pythonbodo-api 1.0.0

Python 3.11 und neuer, synchron über httpx. Typisiert, mit generierten attrs-Modellen.
Shell
pip install ./bodo_api-1.0.0-py3-none-any.whl
Python
# Pages without hand-written cursor code, one task done.
# Run: BODO_API_KEY=bodo_uk_test_… python examples/sdk_overview.py
import os

from bodo_api import Bodo

bodo = Bodo(api_key=os.environ["BODO_API_KEY"], preview=True)

# walks next_cursor by itself
for contact in bodo.contacts.list(updated_since="2026-11-03T09:00:00Z"):
    print(contact.id)

task = bodo.tasks.create(title="Angebot nachfassen")
done = bodo.tasks.complete(task.id)
print(done.id, done.status)

Was das SDK für dich erledigt

Idempotency-Keybei jedem POST und DELETE, gleichbleibend über Wiederholungen
Backoffnach 429 und 503 mit Retry-After, höchstens 3 Versuche
Blätternüber nextCursor, als Schleife statt Hand-Code
Webhooks und FehlerSignaturprüfung, Fehlerklasse mit code und requestId, Warnung bei Deprecation

Versionierung des SDK

Semantische Versionen. Jede SDK-Version gehört zu genau einer API-Version und sendet sie im Header Bodo-Version.
SDK-VersionAPI-VersionUnterstützt bis
1.x2026-11-01Sunset dieser API-Version, 12 Monate nach der Nachfolgerin
2.x (Beispiel)2027-05-01Sunset ihrer API-Version
Major: neue API-Version mit Bruch. Minor: neue Operationen, Felder oder Ereignisse. Patch: Fehlerkorrekturen. Preview-Operationen stehen hinter preview: true und dürfen sich auch im Minor ändern.

Wie ein SDK entsteht

  1. openapi.2026-11-01.json aus dem Repo
  2. offene Generatoren: openapi-typescript mit openapi-fetch und openapi-python-client
  3. Beispiele laufen als Tests gegen die Sandbox
  4. CI legt die Archive hier ins Portal; ab stabil auch auf npm und PyPI, mit Herkunftsnachweis (Trusted Publishing)
Kein Dienst eines Dritten im Bauweg. Handgeschrieben sind nur die dünnen Hüllen für Retry, Blättern und Webhooks.