Skip to content
Sprache: Deutsch

API für Entwickler

API-Endpunkte nach Bereich

Aktualisiert am 1. November 2026 6 Min. Lesezeit

Alle Endpunkte, die du mit einem API-Key nutzen kannst – nach Bereich sortiert, mit Methode, Pfad, benötigtem Scope und Zweck.

Diese Übersicht listet alle Endpunkte, die mit einem Token aus einem API-Key funktionieren. Alle Pfade beginnen mit https://dock.at-harbor.com. Die genauen Felder jedes Endpunkts stehen in der OpenAPI-Beschreibung unter https://dock.at-harbor.com/openapi.yaml.

Anmeldung und öffentliche Endpunkte

Methode und PfadAnmeldungZweck
POST /v1/tokenKeine (Key-ID und Secret im Body)API-Key gegen Access-Token tauschen
GET /v1/plansKeinePläne und Preise
GET /v1/pages/available?handle=…KeinePrüfen, ob ein Handle frei ist

Pages

Methode und PfadScopeZweck
GET /v1/pagesread:pagesAlle Pages des Workspaces mit ID, Handle, Titel, Status, Live-Version, Sichtbarkeit und URL
POST /v1/pageswrite:pagesPage anlegen; Pflicht: handle (2–64 Zeichen, Buchstaben, Ziffern, Bindestrich) und template_key; optional title, domain_id, theme_config
GET /v1/pages/{id}read:pagesEine Page; zusätzlich has_unpublished_changes (true, wenn der Entwurf vom veröffentlichten Stand abweicht)
PATCH /v1/pages/{id}write:pagestitle, handle oder discoverable (Eintrag im Verzeichnis) ändern
PATCH /v1/pages/{id}/visibilitywrite:pagespublic, private oder password (mit password, 4–72 Zeichen); wirkt sofort
POST /v1/pages/{id}/publishwrite:pagesEntwurf veröffentlichen; Antwort enthält die neue Version
GET /v1/pages/{id}/versionsread:pagesVeröffentlichte Versionen
GET /v1/pages/{id}/versions/{version}read:pagesEine Version
POST /v1/pages/{id}/versions/{version}/restorewrite:pagesVersion in den Entwurf holen; current verwirft alle Entwurfsänderungen
GET /v1/pages/{id}/seoread:pagesSEO- und Teilen-Texte
PATCH /v1/pages/{id}/seowrite:pagesseo_title, seo_description, og_title, og_description, og_image_asset_id, canonical_url, noindex
POST /v1/pages/{id}/invite-linkwrite:pagesEinladungslink für eine private, veröffentlichte Page; days 1–30, Standard 7. Sonst 409 page_not_private bzw. page_not_published
POST /v1/pages/{id}/invite-link/revokewrite:pagesEinladungslink widerrufen
POST /v1/pages/{id}/uploadswrite:assetsDatei für eine Page hochladen

Entwurf

Methode und PfadScopeZweck
GET /v1/pages/{id}/draftread:pagesAktueller Entwurf: template_key, config, theme_config, custom_css, seo, Bild-Zuordnungen und Links
PATCH /v1/pages/{id}/draftwrite:pagesMindestens eines von config (als JSON höchstens 64 KB, je Text bis 5.000 Zeichen), theme_config, custom_css (bis 50.000 Zeichen und 65.535 Bytes), seo, template_key, template_asset_bindings
GET /v1/pages/{id}/draft/validateread:pagesPrüfen, ob der Entwurf veröffentlicht werden kann

Blöcke

Methode und PfadScopeZweck
GET /v1/pages/{id}/blocksread:pagesBlöcke der Page
POST /v1/pages/{id}/blockswrite:pagesBlock anlegen; Pflicht: type und config
PATCH /v1/pages/{id}/blocks/{blockId}write:pagesBlock ändern
DELETE /v1/pages/{id}/blocks/{blockId}write:pagesBlock löschen
POST /v1/pages/{id}/blocks/reorderwrite:pagesReihenfolge setzen
GET /v1/blocks/schemasread:pagesAlle Blocktypen mit dem Schema ihrer config

Anlegbare Typen: text, image, embed, spacer, social_links, form, integration, donation, modal, heading, notice, coupon, contact, opening_hours, tour, file, vcard, countdown und gallery. Der Links-Block ist fest und wird nicht über diesen Endpunkt angelegt. Blocktypen außerhalb deines Plans lehnt die API mit 403 block_type_requires_plan ab. Die config eines Blocks darf als JSON höchstens 128 KB groß sein, jeder Text darin höchstens 10.000 Zeichen; beim Info-Modal darf modal_body_html bis zu 50.000 Zeichen und höchstens 65.535 Bytes haben.

Methode und PfadScopeZweck
GET /v1/pages/{id}/linksread:linksLinks der Page
POST /v1/pages/{id}/linkswrite:linksLink anlegen; Pflicht: title (1–200) und target_url_template (8–2048)
GET /v1/pages/{id}/links/{linkId}read:linksEin Link
PATCH /v1/pages/{id}/links/{linkId}write:linksLink ändern
DELETE /v1/pages/{id}/links/{linkId}write:linksLink löschen
POST /v1/pages/{id}/links/reorderwrite:linksReihenfolge setzen: {"order":[IDs]}

Optionale Felder beim Anlegen und Ändern: enabled, geo (Länderregel mit mode allowlist oder denylist und countries), device (eigene Ziele je Gerät), starts_at und ends_at (Zeitsteuerung), protection_tier (Bot-Schutz) und age_restriction. Zeitsteuerung, Länder- und Geräteregeln gibt es ab Creator Pro. Beim Sortieren reicht es, die IDs zu schicken, die nach vorne sollen – alle übrigen Links folgen in ihrer bisherigen Reihenfolge. IDs, die nicht zur Page gehören, lehnt die API mit 422 validation_failed ab; details.missing_link_ids nennt sie.

Methode und PfadScopeZweck
GET /v1/short-linksread:short_linksShort Links mit limit, offset, sort und Suche q; die Antwort enthält total
POST /v1/short-linkswrite:short_linksAnlegen; Pflicht: target_url (http oder https, 8–2048); optional title (bis 120) und custom_slug (3–32, Kleinbuchstaben, Ziffern, Bindestriche)
GET /v1/short-links/{id}read:short_linksEin Short Link
PATCH /v1/short-links/{id}write:short_linkstarget_url oder title ändern
DELETE /v1/short-links/{id}write:short_linksShort Link löschen

Ist das Short-Link-Limit des Plans erreicht, antwortet die API mit 402 plan_limit_reached.

Assets

Methode und PfadScopeZweck
GET /v1/assetsread:assetsAssets des Workspaces
POST /v1/assetswrite:assetsDatei hochladen (multipart/form-data, Feld file; optional page_id, kind, title, alt_text)
DELETE /v1/assets/{assetId}write:assetsAsset löschen

Formulare

Methode und PfadScopeZweck
GET /v1/formsread:formsFormulare
POST /v1/formswrite:formsFormular anlegen; Pflicht: name und fields (1–100 Felder)
GET /v1/forms/{id}read:formsEin Formular
PATCH /v1/forms/{id}write:formsFormular ändern
DELETE /v1/forms/{id}write:formsFormular löschen
GET /v1/forms/{id}/summaryread:formsZusammenfassung
GET /v1/forms/{id}/submissionsread:formsEinsendungen, neueste zuerst (limit 1–500, Standard 100; weitere Seiten über cursor = next_cursor)
GET /v1/forms/{id}/submissions/exportread:formsAlle Einsendungen als CSV-Datei, neueste zuerst, bis zum Export-Limit des Plans (ab Creator Pro); Header X-Export-Truncated zeigt, ob gekürzt wurde

Statistiken

Methode und PfadScopeZweck
GET /v1/stats/pages/{id}/summaryread:statsKennzahlen einer Page
GET /v1/stats/pages/{id}/timeseriesread:statsVerlauf einer Page
GET /v1/stats/pages/{id}/compareread:statsVergleich mit dem Vorzeitraum
GET /v1/stats/pages/{id}/linksread:statsKlicks pro Link
GET /v1/stats/pages/{id}/widgetsread:statsKlicks auf Widgets
GET /v1/stats/pages/{id}/conversions/breakdownread:statsConversions einer Page
GET /v1/stats/workspaces/me/summaryread:statsKennzahlen aller Pages
GET /v1/stats/workspaces/me/timeseriesread:statsVerlauf aller Pages
GET /v1/stats/workspaces/me/compareread:statsVergleich mit dem Vorzeitraum
GET /v1/stats/workspaces/me/top-pagesread:statsTop-Pages
GET /v1/stats/workspaces/me/conversions/breakdownread:statsConversions des Workspaces
GET /v1/stats/workspaces/me/donationsread:donationsSummen der Unterstützungen

Den Zeitraum wählst du wie unter Paginierung beschrieben mit period oder mit from und to. Wie weit du zurückblicken kannst, hängt vom Plan ab: 365 Tage in Creator Pro und Agency, 730 Tage in Enterprise. Ältere Zeiträume werden auf diese Grenze gekürzt.

Push (nur lesen)

Methode und PfadScopeZweck
GET /v1/push/historyread:statsPush-Verlauf (limit, offset)
GET /v1/push/usageread:statsVerbrauch des Wochenlimits

Push-Nachrichten senden und Push-Regeln verwalten geht nur im Dashboard.

Workspace, Templates und Domains

Methode und PfadScopeZweck
GET /v1/workspaces/me/entitlementsread:workspacesFunktionen und Limits des Plans
GET /v1/workspaces/me/usageread:workspacesAktuelle Nutzung
GET /v1/workspaces/me/usage/meteringread:workspacesNutzungsverlauf
GET /v1/workspaces/me/membersread:workspacesMitgliederliste
GET /v1/workspaces/me/settingsread:workspacesWorkspace-Einstellungen
GET /v1/workspaces/me/callback-secretsread:workspacesCallback-Secrets (ohne Secret im Klartext)
GET /v1/workspaces/me/callback-secrets/{id}read:workspacesEin Callback-Secret (ohne Secret im Klartext)
GET /v1/templatesread:workspacesAlle Templates
GET /v1/templates/availableread:workspacesEingebaute und aktive Workspace-Templates mit gültigen template_key-Werten; Workspace-Templates haben den Key ws:<key> und type workspace
GET /v1/templates/{key}read:workspacesEin Template
GET /v1/workspaces/me/templatesread:workspacesEigene Workspace-Templates
GET /v1/workspaces/me/templates/{id}read:workspacesEin Workspace-Template
POST, PATCH, DELETE /v1/workspaces/me/templates[/{id}]write:templatesWorkspace-Templates anlegen, ändern, löschen; html höchstens 60.000 Bytes (sonst 422 validation_failed mit details.reason maxBytes), bis zu 32 asset_slots
GET /v1/domainsread:workspacesEigene Domains
GET /v1/domains/availableread:workspacesVerfügbare Domains für Pages

Nicht über API-Keys

Webhooks, Integrationen, Push senden, Domains verwalten, Mitglieder, Abrechnung und Page löschen gibt es nur im Dashboard. Callback-Secrets legst du ebenfalls nur im Dashboard an und verwaltest sie dort; auflisten und lesen (ohne Secret im Klartext) kannst du sie mit read:workspaces. Eine vollständige Liste steht unter Scopes im Detail. Eingehende Daten – Verkäufe und eigene Live-Daten – schickst du mit eigenen Secrets an die Endpunkte aus Callbacks.

Nichts gefunden?

Schreib uns dein Anliegen – unser Support hilft dir persönlich weiter.

Support kontaktieren