Surf Booking.PTAPI
ManifestAgentIntelligenz-SchichtTechnologieVerfassungKIMCPPartner API
Partner-API

Eine Integration.Tausend Kanäle.

Lass deine Kunden Surfkurse direkt auf deiner Plattform buchen. REST · JSON · OCTO — echte Verfügbarkeit jeder Schule, lesbar für jeden Marktplatz oder Channel Manager. Einmal anbinden, viele erreichen.

API live · Bearer / X-Partner-API-Key
surfbooking.eu/developers
/api/partner/v1/availabilities
GET
{
  "spot":     "Carcavelos",
  "date":     "2026-06-22",
  "time":     "10:00",
  "level":    "iniciante",
  "capacity": 6,
  "vacancy":  4
}
Offene Plattform

Kein geschlossenes Protokoll. Wir sprechen OCTO — den offenen Standard für Aktivitätsbuchungen. Einmal integrieren, alle erreichen.

OCTO (octo.travel) ist die Art, wie Buchungssysteme, Channel Manager und Aktivitäts-Marktplätze miteinander sprechen. Eine Integration gegen SurfBooking, und das Angebot ist für jeden OCTO-Käufer lesbar. Wer will, bekommt auch das native SB-Format und Varianten für bestehende Adapter.

Wer sich verbindet

Fünf Partnertypen. Eine API.

Wenn du Erlebnisse vertreibst — ein Hotel, eine Agentur, ein DMC, eine Tourismus-App oder eine Unterkunftsplattform — legt die SurfBooking-API echte Verfügbarkeit von Surfkursen in deine Hände.

Hotels

Erlebnis beim Check-in

Sie bieten dem Gast Surfkurse als Extra an, mit Buchung in Echtzeit — ohne Telefonate, ohne manuelle Koordination.

Reisebüros

Surf-Pakete

Sie nehmen Surfkurse in jedes Paket auf, direkt über die API buchbar, mit Idempotenz bei wiederholten Anfragen.

DMCs

Surf im Reiseplan

Sie fügen jedem Gruppenprogramm Surf hinzu und bestätigen die Verfügbarkeit in Echtzeit, mit freien Plätzen live.

Tourismus-Apps

Angebote + Live-Verfügbarkeit

Sie zeigen Schulen, Spots und Verfügbarkeit live. Der Scope forecast ergänzt die Bedingungen pro Spot.

Unterkunft

Erlebnisse als Upsell

Ferienwohnungen und Apartments verkaufen Surf beim Checkout dazu — in Sekunden über die API bestätigt.

So funktioniert es

In 5 Sekunden versteht es jeder CTO.

Deine Plattform
Hotel · OTA · Agentur · App
SurfBooking API
REST · JSON · OCTO
Surfschulen
Verfügbarkeit
Zahlungen
Buchungen

Eine Integration. Alle Schulen der Plattform. Echte Plätze, echte Preise, Anti-Overbooking — in Millisekunden bestätigt.

Verschiedene Partner, verschiedene Zugänge

Jeder Partner verbindet sich nur mit dem, was ihm nützt.

Es ist nicht dieselbe API für alle. Jeder Schlüssel ist (least-privilege) auf das begrenzt, was dieser Partner braucht — nie mehr als das.

Hotels · OTAs · Channel Manager

Verfügbarkeit + Buchungen

Sie lesen die verfügbaren Kurse und erstellen Buchungen im Namen des Gastes/Kunden. Der Weg v1 (OCTO). Der Zugang für alle, die Kurse vertreiben.

Ausrüstungsmarken · Apps · KI

Größen + Bedingungen

Sie empfehlen das richtige Board und den richtigen Neoprenanzug und lesen die Bedingungen am Spot. Der Weg v2, mit Scope sizing und/oder forecast — sie fassen Buchungen nie an.

Partner

Attribution, ohne API

Sie bringen Kunden und erhalten Provision über /aff + ein 90-Tage-Cookie. Ohne Schlüssel, ohne technische Integration.

Plattform-Schlüssel tragen Scopes. Ein sizing-Schlüssel öffnet nur die Sizing-Endpoints — alles andere gibt 403 insufficient_scope zurück.

Was die API macht

Drei Dinge. Verfügbarkeit, Leistungen, Buchungen.

Alles in REST + JSON, authentifiziert über den Schlüssel der Surfschule.

availabilities

Verfügbarkeit lesen

Die echten Kurse mit Tag, Uhrzeit, Spot, Level, freien Plätzen und Preis. Filter nach Datum und Level. Formate sb · fh · bl · octo.

services

Leistungen auflisten

Die Kursarten der Schule (Level, Gruppe/privat, Preisspanne) — im nativen SB-Format oder als OCTO-products.

bookings

Buchungen erstellen und verwalten

Erstellt, liest und storniert Buchungen im Namen des Endkunden. Idempotent über externalRef, mit erneuter Prüfung von Plätzen und Verhältnissen.

Läuft

Ein Aufruf und du siehst die API antworten.

Der Descriptor ist öffentlich. Ins Terminal einfügen:

Terminal · API-Descriptor
# API ansehen (ohne Schlüssel)
curl -s https://www.surfbooking.eu/api/partner/v1

Vollständiger, maschinenlesbarer Vertrag — gedacht für KI-Agenten und SDK-Generatoren, um die API selbst zu entdecken: /openapi.json (OpenAPI 3.1) · interaktive Referenz unter /docs (Swagger UI).

OCTO
Für OTAs und Reseller
Produkte, Verfügbarkeit und Buchung in 2 Schritten (hold → confirm). Plug-and-play im Bókun/Rezdy-Stil.
iCal
Universell, in beide Richtungen
Importiere den Feed eines beliebigen Kanals in den SB-Kalender — und exportiere den SB-Kalender (mit Stornierungen) zurück in den Kanal.
MCP
Für KI-Agenten
11 Tools — Kurse suchen, Live-Surf-Score pro Spot, Materialgrößen — über das Model Context Protocol.

Buchung in 2 Schritten mit 2 Aufrufen — halte den Platz, während dein Kunde bezahlt, dann bestätige:

# 1 — hold (expira sozinho; a vaga fica segura)
curl -X POST https://www.surfbooking.eu/api/partner/v1/bookings   -H "X-Partner-API-Key: A_TUA_CHAVE" -H "Content-Type: application/json"   -d '{"lessonSlotId":"…","customerName":"…","customerEmail":"…",
       "status":"ON_HOLD","expirationMinutes":30}'

# 2 — confirm (idempotente; hold expirado devolve 410 e liberta a vaga)
curl -X POST https://www.surfbooking.eu/api/partner/v1/bookings/{id}/confirm   -H "X-Partner-API-Key: A_TUA_CHAVE"

Mit dem Schlüssel der Surfschule liest du die Verfügbarkeit — hier im OCTO-Format:

Terminal · Verfügbarkeit (OCTO)
curl -s "https://www.surfbooking.eu/api/partner/v1/availabilities?format=octo&from=2026-07-01&to=2026-07-07" \
  -H "Authorization: Bearer sbpk_xxxxxxxxxxxxxxxxxxxxxxxx"

Limit: 120 Anfragen/Min pro Schlüssel. Jede Antwort trägt X-RateLimit-Limit und X-RateLimit-Remaining; bei Überschreitung bekommst du 429 mit Retry-After: 60.

Privater Schul-Connector

Ein Assistent in deiner Schule, mit einem Schlüssel nur für dich.

Neben der Partner-API kann jede Schule einen MCP-Assistenten mit ihrem eigenen Betrieb verbinden. Er ist standardmäßig aus und noch nicht mit einem echten Client geprüft.

POST

/api/mcp/escola

JSON-RPC 2.0, MCP-Protokoll 2024-11-05. Header Authorization: Bearer sbek_…. Die Schule kommt immer aus dem Schlüssel, nie aus den Argumenten.

POST

/api/schools/:id/conector/tokens

Erzeugt den Schlüssel mit der Sitzung des Inhabers. Body: label, role, staffId?, scopes (read, oder read und propose), expiresInDays (30, 90 oder 365). Der Schlüssel kommt nur einmal zurück.

DELETE

/api/schools/:id/conector/tokens/:tokenId

Widerruft den Schlüssel und lässt seine offenen Vorschläge verfallen.

POST

/api/schools/:id/conector/propostas/:pid/confirmar

Nur der Inhaber. Sendet den payloadHash, den er gesehen hat; die Änderung läuft über denselben Weg wie das Dashboard, und ein Kurs, der sich inzwischen geändert hat, endet im Konflikt.

Werkzeuge: list_my_schools · get_school_schedule · get_bookings_summary · get_lesson_roster · get_stock_summary · get_conditions_for_my_lessons · prepare_lesson_move · prepare_stock_change · list_pending_proposals

Limits: 60 Aufrufe pro Minute pro Schlüssel und 2000 pro Tag. Keine Geld-Werkzeuge, und nichts wird ohne Bestätigung des Inhabers angewendet. Details auf der MCP-Seite. /mcp

Authentifizierung

Ein Schlüssel pro Surfschule. Du hast die Kontrolle.

Jede Schule erzeugt ihren eigenen Schlüssel in SurfBooking OS — und widerruft ihn, wann sie will. Der Schlüssel geht in einem Header mit, in einem der beiden Formate:

X-Partner-API-Key

Nativer SB-Header

X-Partner-API-Key: sbpk_xxxx… — das kanonische Format von SurfBooking.

Authorization: Bearer

OCTO-kompatibel

Authorization: Bearer sbpk_xxxx… — für Clients, die OCTO sprechen. Derselbe Schlüssel.

Schlüssel erzeugen und widerrufen in SurfBooking OS → Externe Kanäle → Partner-API. Wir speichern den Schlüssel nie im Klartext — nur seinen Hash.

Referenz

Die Endpoints.

Basis: https://www.surfbooking.eu/api/partner/v1

GET

/

API-Deskriptor (Root, ohne Schlüssel). Gibt name, version, auth, octo und die vollständige Karte der endpoints zurück. Im Browser geöffnet, leitet es auf diese Seite weiter.

GET

/availabilities

Buchbare Kurse. Parameter: from, to, level?, format? (sb·fh·bl·octo). Standard: from=heute, to=+30 Tage.

GET

/availability

OCTO-Alias von /availabilities — nimmt standardmäßig format=octo an (plug-and-play OCTO).

GET

/services

Kursarten der Schule. format? (sb·octo) — in OCTO gibt es products zurück.

GET

/products

OCTO-Alias von /services — nimmt standardmäßig format=octo an. Array von OCTO-products.

GET

/supplier

Identität des Anbieters (OCTO-supplier-Deskriptor): id, name, endpoint, contact, locales, timeZone.

POST

/bookings

Erstellt eine Buchung. Body: lessonSlotId, customerName, customerEmail, customerPhone?, participants?, externalRef?, notes?.

GET

/bookings/:id

Fragt den Status einer Buchung ab.

DELETE

/bookings/:id

Storniert eine Buchung.

Der Deskriptor — GET /api/partner/v1 (ohne Schlüssel):

Antwort · Descriptor
{
  "name": "SurfBooking Partner API v1",
  "version": "1.0.0",
  "auth": "X-Partner-API-Key header, ou Authorization: Bearer  (compatível OCTO).",
  "octo": {
    "supported": true,
    "formatParam": "octo",
    "supplierEndpoint": "/api/partner/v1/supplier"
  },
  "endpoints": {
    "availabilities": { "method": "GET", "path": "/api/partner/v1/availabilities" },
    "services":       { "method": "GET", "path": "/api/partner/v1/services" },
    "supplier":       { "method": "GET", "path": "/api/partner/v1/supplier" },
    "createBooking":  { "method": "POST", "path": "/api/partner/v1/bookings" },
    "getBooking":     { "method": "GET", "path": "/api/partner/v1/bookings/:id" },
    "cancelBooking":  { "method": "DELETE", "path": "/api/partner/v1/bookings/:id" }
  }
}

Identität des Anbieters — GET /supplier (OCTO):

Antwort · supplier (OCTO)
{
  "id": "school-uuid-…",
  "name": "Nome da Escola",
  "endpoint": "https://www.surfbooking.eu/api/partner/v1",
  "contact": { "website": "https://www.surfbooking.eu", "email": null, "telephone": null, "address": null },
  "locales": ["pt", "en"],
  "timeZone": "Europe/Lisbon",
  "_sb": { "description": "…", "logoUrl": "…" }
}
Beispiele

Request und Response, echt.

Der Body einer Buchung und was du zurückbekommst — genau so, wie die API heute antwortet.

Eine Buchung erstellen — POST /bookings:

Request · POST /bookings
curl -s -X POST https://www.surfbooking.eu/api/partner/v1/bookings \
  -H "Authorization: Bearer sbpk_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "lessonSlotId": "a1b2c3d4-…",
    "customerName": "Ana Silva",
    "customerEmail": "[email protected]",
    "customerPhone": "+351912345678",
    "participants": 2,
    "externalRef": "BOKUN-7782",
    "notes": "Primeira aula"
  }'

Antwort — 201 Created:

Antwort · 201
{
  "ok": true,
  "bookingId": "f1e2d3c4-…",
  "createdAt": "2026-06-21T11:42:00.000Z",
  "lessonSlotId": "a1b2c3d4-…",
  "schoolId": "…",
  "status": "confirmed",
  "participants": 2,
  "totalAmountCents": 7000,
  "currency": "EUR"
}

Verfügbarkeit in OCTO — GET /availabilities?format=octo gibt ein Array zurück:

Antwort · availabilities (OCTO)
[
  {
    "id": "a1b2c3d4-…",
    "localDateTimeStart": "2026-07-02T10:00:00",
    "localDateTimeEnd": "2026-07-02T12:00:00",
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 4,
    "capacity": 6,
    "maxUnits": 4,
    "pricing": {
      "original": 3500, "retail": 3500, "net": 3500,
      "currency": "EUR", "currencyPrecision": 2
    },
    "_sb": { "level": "beginner", "spotName": "…", "bookingUrl": "https://www.surfbooking.eu/aula/…" }
  }
]

Preise in Cent (minor units) — 3500 = 35,00 €, gemäß currencyPrecision: 2 von OCTO. Die Daten kommen in der Ortszeit der Schule (Europe/Lisbon).

Dieselbe Verfügbarkeit in anderen Formaten. Nativ SB — ?format=sb (Envelope mit _meta):

Antwort · availabilities (SB)
{
  "availabilities": [
    {
      "id": "a1b2c3d4-…",
      "date": "2026-07-02",
      "startTime": "10:00",
      "endTime": "12:00",
      "level": "beginner",
      "spotsTotal": 6,
      "spotsRemaining": 4,
      "pricePerPerson": 3500,
      "currency": "EUR",
      "instructorName": "…",
      "spotName": "…",
      "schoolId": "…",
      "schoolName": "…",
      "bookingUrl": "https://www.surfbooking.eu/aula/9f3c1a2b7d"
    }
  ],
  "_meta": { "format": "sb", "total": 1, "from": "2026-07-01", "to": "2026-07-07" }
}

FareHarbor — ?format=fh (Envelope availabilities):

Antwort · availabilities (FH)
{
  "availabilities": [
    {
      "pk": "a1b2c3d4-…",
      "start_at": "2026-07-02T10:00:00",
      "end_at": "2026-07-02T12:00:00",
      "capacity": 6,
      "num_remaining": 4,
      "is_available": true,
      "customer_type_rates": [
        { "pk": "a1b2c3d4-…_default", "total": { "amount": "35.00", "currency": "EUR" } }
      ],
      "_sb_meta": { "level": "beginner", "bookingUrl": "https://www.surfbooking.eu/aula/9f3c1a2b7d" }
    }
  ]
}

Booking Layer — ?format=bl (Envelope data):

Antwort · availabilities (BL)
{
  "data": [
    {
      "id": "a1b2c3d4-…",
      "date": "2026-07-02",
      "startTime": "10:00",
      "endTime": "12:00",
      "serviceName": "Surf beginner",
      "capacity": 6,
      "spotsLeft": 4,
      "pricePerPerson": 3500,
      "currency": "EUR",
      "_sb_meta": { "level": "beginner", "bookingUrl": "https://www.surfbooking.eu/aula/9f3c1a2b7d" }
    }
  ]
}

In octo ist die Antwort ein einfaches Array (ohne Envelope). In sb/fh kommt sie in availabilities; in bl in data.

Fehler

Statuscodes.

Jeder Fehler trägt einen JSON-Body { "error": "…" } — maschinenlesbar.

401

missing_api_key · invalid_api_key

Schlüssel fehlt, zu kurz, ungültig oder widerrufen. Enthält einen hint, wenn der Header fehlt.

400

missing_fields · invalid_email · invalid_date_range

Unvollständiger Body, fehlerhafte E-Mail oder ungültiger Datumsbereich (max. 180 Tage, from ≤ to).

404

slot_not_found · booking_not_found · booking_not_found_or_already_cancelled

Der Kurs oder die Buchung existiert in dieser Schule nicht — oder war beim DELETE bereits storniert.

409

insufficient_spots · slot_expired · slot_not_purchasable · ratio_exceeded · external_ref_exists

Zustandskonflikt: keine Plätze, Kurs in der Vergangenheit, für den Verkauf geschlossen, Trainer-Verhältnis überschritten oder wiederholter externalRef (Idempotenz — gibt die bereits vorhandene bookingId zurück).

403

forbidden · not_owner

Der Schlüssel ist gültig, erreicht diese Ressource aber nicht: die Buchung oder die Stunde gehört einer anderen Schule. Ein Schlüssel sieht immer nur, was der Schule gehört, die ihn erstellt hat.

410

hold_expired

Die Buchung wartete auf Bestätigung und das Fenster ist zu. Das ist kein Fehler auf deiner Seite: der Platz ging zurück an alle. Leg sie neu an.

429

rate_limit_exceeded

Über 120 Anfragen/Min pro Schlüssel. Warte den Retry-After ab (60s). Jede Antwort trägt X-RateLimit-Remaining.

500

internal_error

Das liegt an uns. Versuch es mit demselben externalRef erneut: das Anlegen einer Buchung ist über diesen Schlüssel idempotent, ein zweiter Versuch dupliziert also nichts.

Fehlender oder ungültiger Schlüssel — 401:

Antwort · 401
# kein Schlüssel-Header
{
  "error": "missing_api_key",
  "hint": "Set X-Partner-API-Key header (or Authorization: Bearer)"
}

# Schlüssel existiert nicht oder wurde widerrufen
{ "error": "invalid_api_key" }

Nicht genug freie Plätze (Anti-Overbooking) — 409:

Antwort · 409
# der Kurs hat keine Plätze mehr für die Teilnehmerzahl
{
  "error": "insufficient_spots",
  "remaining": 1
}

# wiederholter externalRef → Idempotenz: gibt die vorhandene bookingId zurück
{
  "error": "external_ref_exists",
  "bookingId": "f1e2d3c4-…"
}

Die erneute Prüfung von Plätzen und Verhältnissen läuft in einer Transaktion mit SELECT … FOR UPDATE — ausverkauft ist ausverkauft, Doppelbuchungen gibt es nie.

Grenzen

Was du abfragen kannst, und wie viel.

120 / min

Pro Schlüssel, nicht pro Partner

Jede Antwort trägt X-RateLimit-Limit und X-RateLimit-Remaining. Darüber ein 429 mit Retry-After: 60. Kein Raten: die Zahlen fahren in jeder Antwort mit.

180 Tage

Das ist die Seite, und es gibt keinen Cursor

Der Bereich fromto begrenzt die Antwort; über 180 Tage kommt ein 400. Es gibt bewusst keine Cursor-Paginierung: eine Stunde hat ein Datum, und nach Daten zu fragen ist hier das natürliche Blättern. Brauchst du mehr, sind das zwei Anfragen.

50

Aktive Schlüssel pro Schule

Widerrufe die, die du nicht nutzt, bevor du neue anlegst. Ein widerrufener Schlüssel funktioniert schon bei der nächsten Anfrage nicht mehr, ohne Verzögerung.

Diese drei Zahlen werden aus dem Code gelesen, der die API bedient, nicht hier von Hand geschrieben: ändern sie sich dort, wird diese Seite falsch und ein Test sagt es.

Größen + Bedingungen · v2

Empfiehlt die richtige Ausrüstung. Ohne Buchungen anzufassen.

Der Weg v2 für Ausrüstungsmarken, Apps und KI. Plattform-Schlüssel mit Scope sizing, forecast und/oder brand:read — deterministisch, ohne personenbezogene Daten, fasst Buchungen nie an. Entdecke deine Scopes unter /api/partner/v2/meta. Basis: https://www.surfbooking.eu/api/partner/v2.

GET

/sizing/board

Empfohlenes Board nach level + weight. Scope sizing.

GET

/sizing/board/conditions

Board auf den Tag abgestimmt: level, weight, swellPeriodS, swellDirectionDeg, bestSwellDirDeg. Scope sizing.

GET

/sizing/wetsuit

Neoprenanzug-Größe nach weight + height. Scope sizing.

GET

/sizing/leash

Leash nach boardSize + category (board·soft_board). Scope sizing.

GET

/sizing/boots

Füßlinge nach shoeSizeEu (z. B.: 42). Scope sizing.

GET

/spots

Listet die Spots auf, die du abfragen kannst — nimm eine id von hier in /conditions/:spotId. Scope forecast.

GET

/conditions/:spotId

Bedingungen am Spot — dieselbe öffentliche Shape, bereinigt (gibt weder Modell noch Quellen preis). Scope forecast.

GET

/intelligence/surf-now

Die besten Spots des Landes jetzt, sortiert nach dem Live-Score — limit + level. Scope forecast.

GET

/brand/equipment-stats

Für Ausrüstungsmarken: wie oft jede Größe deiner Marke in Kursen genutzt wurde, nach month (YYYY-MM). Nur deine Daten. Scope brand:read.

GET

/brand/spot-activity

An welchen Spots die Ausrüstung deiner Marke am meisten genutzt wurde, letzte months (1–12). Scope brand:read.

Board-Empfehlung — GET /sizing/board:

terminal · sizing (v2)
curl -s "https://www.surfbooking.eu/api/partner/v2/sizing/board?level=beginner&weight=75" \
  -H "X-Partner-API-Key: sbpd_xxxxxxxxxxxxxxxxxxxxxxxx"
Antwort · sizing
{ "recommendation": { "category": "soft_board", "size": "8'0" } }

Plattform-Schlüssel (sbpd_…) werden von SurfBooking ausgegeben, nicht von der Schule. Falscher Scope → 403 insufficient_scope. Limit 240 Anfragen/Min pro Schlüssel, mit Retry-After: 60 bei Überschreitung.

Einbettbares Widget

Größen auf deiner Website. Eine Zeile.

Eine eigenständige iframe-Seite, "Powered by SurfBooking". Sie zeigt die Bedingungen am Spot, empfiehlt das Board nach Gewicht und Level und führt den Kunden zur Buchung eines Kurses — mit deinem Premium-Partnerlink eingebaut. PII-frei, ohne Tracking-Cookies.

Live-Beispiel — genau das sehen deine Besucher:
html · embed
<iframe
  src="https://www.surfbooking.eu/w/surf?key=sbpd_xxxx&spot=SPOT_ID&slug=O_TEU_SLUG"
  width="360" height="520" frameborder="0"></iframe>

key = dein Plattform-Schlüssel (Scope sizing, und forecast, wenn du die Bedingungen oben willst). spot und slug sind optional — der slug verknüpft die erzeugten Buchungen mit deinem /aff (90-Tage-Cookie).

Versionen

v1 — stabil.

Die Basis ist /api/partner/v1. Änderungen, die die Kompatibilität brechen, kommen in eine neue Version (/v2) — für v1 ist keine Abkündigung geplant. Wir können ohne Ankündigung Felder ergänzen, also lies tolerant: ignoriere, was du noch nicht kennst.

Für wen

Channel Manager, Marketplaces, Hotels.

Jeder Partner, der echte Surfkurse verkaufen oder zeigen will. Auf dem offenen Standard OCTO entworfen, den viele Buchungssysteme und Channel Manager schon sprechen.

Hotels & Resorts

Biete deinen Gästen echte Kurse an, ohne etwas zu verwalten — Buchung und Zahlung bleiben bei SurfBooking.

Channel managers

Synchronisiert die Verfügbarkeit in Echtzeit, ohne Doppelbuchung. OCTO ab Werk.

Marketplaces

Listet das Angebot der Surfschulen und leitet die Buchung weiter — Plätze und Betreuungsschlüssel werden auf unserer Seite immer neu geprüft.

Deine Sicherheit

Die Surfschule bestimmt. Immer.

SCHLÜSSEL

Pro Surfschule, widerrufbar

Jeder Schlüssel sieht nur das Angebot der eigenen Surfschule. Ein Klick zum Widerrufen und der Zugang ist sofort tot.

PLÄTZE

Nie Überbuchung

Jede Buchung prüft Plätze und Surflehrer-Verhältnisse innerhalb einer Transaktion neu. Ausgebucht ist ausgebucht.

ZAHLUNG

Bestätigt auf SurfBooking

Der Geldfluss bleibt auf unserer Seite — der Partner leitet weiter, SurfBooking bestätigt.

SCHÜLER

Geschützte Daten

Es geht nur raus, was für die Buchung nötig ist. Die Kontakte deiner Schüler landen auf niemandes Liste.

Bereit zum Verbinden

Hol dir einen Schlüssel und leg los.

Die API ist live. Wenn du eine Surfschule hast, erzeugst du deinen eigenen Schlüssel im SurfBooking OS. Wenn du externer Partner bist — Ausrüstungsmarke, App, KI oder Hotel — beantragst du einen Plattform-Schlüssel (von SurfBooking ausgestellt).

Ich bin eine Surfschule · SurfBooking OS öffnen Ich bin externer Partner · Zugang anfragen Descriptor ansehen