Zum Inhalt springen

Dokumentation

API-Dokumentation

Übersicht aller 25 API-Endpunkte von Spotlight Service.

Authentifizierung

●Keine: Free-Check, Contact, Chat, Analytics
●Dashboard: Lead-Export, Outreach, Reports (Session-Cookie)
●Stripe-Signatur: Webhook-Endpunkte (Stripe-Sig Header)
●Cron-Secret: Cron-Endpunkte (CRON_SECRET Env)

Rate Limits

Free-Check: 5/min, 50/Std.
Chat: 10/min, 100/Std.
Contact: 3/min, 20/Std.
Analytics: 30/min, 200/Std.
Dashboard: 20/min, 150/Std.
429 = Too Many Requests. Retry-After Header vorhanden.
POST/api/free-checkKeine▼

Startet einen kostenlosen Google-Profil-Check. Gibt eine Score-Bewertung und Verbesserungsvorschläge zurück.

Request Body

{
  "businessName": "Frisör Müller",
  "city": "Hamburg",
  "branch": "friseur"
}

Response

{
  "id": "abc123",
  "score": 42,
  "maxScore": 100,
  "suggestions": [
    "Öffnungszeiten ergänzen",
    "Mehr Fotos hochladen"
  ]
}
GET/api/free-check/pdfKeine▼

Generiert ein PDF des Free-Check-Ergebnisses.

POST/api/free-check/shareKeine▼

Erstellt einen teilbaren Link für ein Free-Check-Ergebnis.

POST/api/contactKeine▼

Sendet eine Kontaktanfrage. Wird als Lead gespeichert.

Request Body

{
  "name": "Max Mustermann",
  "email": "max@example.com",
  "business": "Bäckerei Schmidt",
  "message": "Interesse am Komplett-Setup"
}

Response

{
  "success": true,
  "leadId": "lead_123"
}
POST/api/analyticsKeine▼

Empfängt Analytics-Events (Free-Check, CTA-Klicks, CWV-Metriken etc.).

POST/api/chatKeine▼

Chatbot-Endpunkt. Nimmt eine Nutzer-Nachricht und gibt eine KI-Antwort zurück.

Request Body

{
  "message": "Was kostet das Komplett-Setup?"
}
POST/api/chat-feedbackKeine▼

Feedback zum Chatbot (👍/👎).

POST/api/checkoutKeine▼

Initiiert einen Stripe-Checkout für ein Paket.

POST/api/webhook/stripeStripe Signature▼

Webhook für Stripe-Events (z.B. checkout.session.completed).

GET/api/leads/exportDashboard▼

Exportiert alle Leads als CSV-Datei.

POST/api/leads/update-statusDashboard▼

Aktualisiert den Status eines Leads (Neu, Kontaktiert, Qualifiziert, Gewonnen, Verloren).

Request Body

{
  "leadId": "lead_123",
  "status": "Kontaktiert"
}
POST/api/lead-magnetKeine▼

E-Mail-Optin für Lead-Magnets (Checkliste, Guide etc.).

Request Body

{
  "email": "test@example.com",
  "magnet": "bewertungs-checkliste"
}
GET/api/outreach/referral-linkDashboard▼

Generiert einen Empfehlungslink für einen Outreach-Target.

GET/api/outreach/whatsapp-linkDashboard▼

Generiert einen vorausgefüllten WhatsApp-Link für einen Target.

POST/api/outreach/pre-checkDashboard▼

Führt einen Vorab-Check für einen Outreach-Target durch.

GET/api/dashboard/reportDashboard▼

Generiert einen Dashboard-Bericht (PDF).

GET/api/pricing-pdfKeine▼

Generiert ein Preis-PDF.

GET/api/healthKeine▼

Health-Check-Endpunkt. Gibt Status 200 zurück.

GET/api/cron/digestCron Secret▼

Cron: Wöchentlicher Digest. Aggregiert Leads und sendet Zusammenfassung.

GET/api/cron/recheckCron Secret▼

Cron: Re-Check-Erinnerung für bestehende Leads.

GET/api/cron/sms-reminderCron Secret▼

Cron: SMS-Erinnerung (Platzhalter).

POST/api/auth/connectSession▼

OAuth-Connect für Drittanbieter.

GET/api/auth/callbackOAuth Provider▼

OAuth-Callback-Endpunkt.

GET/api/og/branchKeine▼

Dynamische OG-Bild-Generierung für Branchen-Seiten.

GET/api/og/free-checkKeine▼

Dynamische OG-Bild-Generierung für Free-Check-Ergebnisse.

✓

Jana aus Berlin hat einen Beispiel-Check angesehen

Beispielsignal zur Orientierung

gerade