Zum Inhalt
Docs
API-Referenz Zum Dashboard
DocsEntwicklerCustom API

Custom API

Binde Alpheris direkt an deine eigenen Systeme an: programmatischer Zugriff auf Inbox, Tickets, Leads und Kunden über eine HTTP-API mit API-Key-Authentifizierung. Verfügbar in den Plänen Business und Enterprise.

Wofür die Custom API?

Die meisten Händler kommen ganz ohne Code aus: Widget einbinden, Domain crawlen lassen, Inbox im Dashboard bedienen. Die Custom API ist für die Fälle gedacht, in denen du Alpheris in eigene Software integrieren willst:

  • Konversationen und Tickets in dein bestehendes CRM oder Helpdesk spiegeln.
  • Aus einem eigenen Backend heraus auf einen Thread antworten.
  • Erfasste Leads automatisiert in deine Vertriebs-Pipeline schreiben.
  • Den Shop-/Plan-Kontext eines Workspaces serverseitig prüfen.

Die API spricht JSON, läuft über deine reguläre Alpheris-Domain und nutzt denselben Datenbestand wie das Dashboard.

Plan-Voraussetzung: API-Keys sind nur in den Plänen Business und Enterprise aktiv. In Free, Trial und Basic liefern die Endpunkte im API-Key-Modus den Status 402 plan required. Details unter Pläne & Abrechnung.

Grundlagen

PunktWert
Basis-URLhttps://console.alpheris.com bzw. eure eigene Adresse (Enterprise)
FormatJSON über HTTPS (Content-Type: application/json)
AuthAuthorization: Bearer <API_KEY> oder X-API-Key: <API_KEY>
Key-Formatbeginnt mit sb_live_…
PlanBusiness & Enterprise

Jeder Key ist fest an genau einen Workspace (Shop) gebunden. Es gibt keine kontoübergreifenden Keys — ein Request sieht ausschließlich die Daten des Workspaces, zu dem der Key gehört.

API-Key erstellen

API-Keys verwaltest du im Dashboard. Eine ausführliche Anleitung inklusive aller Endpunkte und Fehlercodes findest du in der API-Referenz.

1
Dashboard öffnen
Gehe in der Console auf API-Keys (/dashboard/api-keys). Der Bereich ist in Business/Enterprise freigeschaltet.
2
Key erzeugen
Vergib einen sprechenden Namen (z. B. Backend-Prod) und erstelle den Key. Er beginnt mit sb_live_.
3
Sofort kopieren
Der vollständige Key wird nur einmal beim Erstellen angezeigt — danach ist er nur noch maskiert sichtbar. Speichere ihn direkt sicher ab.
4
Serverseitig hinterlegen
Lege den Key als Umgebungsvariable in deinem Backend ab. Niemals im Browser-Frontend oder im Client-Code ausliefern.
bash
# Key serverseitig als ENV-Variable ablegen
export ALPHERIS_API_KEY="sb_live_xxxxxxxxxxxxxxxxxxxxxxxx"
export ALPHERIS_BASE_URL="https://console.alpheris.com"

Authentifizierung testen

Prüfe zuerst mit GET /api/me, ob Key, Workspace und Plan korrekt sind. Erst danach solltest du fachliche Endpunkte aufrufen.

bash
curl -sS "$ALPHERIS_BASE_URL/api/me" \
  -H "Authorization: Bearer $ALPHERIS_API_KEY"
python
import os, requests

base_url = os.environ["ALPHERIS_BASE_URL"]
api_key  = os.environ["ALPHERIS_API_KEY"]

r = requests.get(
    f"{base_url}/api/me",
    headers={"Authorization": f"Bearer {api_key}"},
    timeout=20,
)
print(r.status_code, r.json())

Wichtige Endpunkte

Die Inbox-Endpunkte akzeptieren sowohl die Dashboard-Session als auch einen API-Key — ideal für eigene CRM- und Ops-Flows. Die vollständige Liste mit allen Parametern steht in der API-Referenz.

EndpointMethodeZweck
/api/meGETAuth, Workspace- und Plan-Kontext prüfen
/api/inbox/threadsGETKonversationen laden
/api/inbox/threads/{conversation_id}/replyPOSTAntwort in einen bestehenden Thread senden
/api/inbox/ticketsGET / POSTTickets lesen oder erstellen
/api/inbox/leadsGET / POSTLeads lesen oder anlegen
/api/inbox/customersGET / POSTKundendaten lesen oder anlegen

Beispiel: Antwort in einen Thread senden

Schicke beim Senden immer eine eindeutige client_msg_id mit. So erkennt Alpheris Wiederholungen (etwa nach einem Timeout) als denselben Vorgang und erzeugt keine doppelte Nachricht.

bash
curl -sS -X POST "$ALPHERIS_BASE_URL/api/inbox/threads/abc123/reply" \
  -H "Authorization: Bearer $ALPHERIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hallo, wir melden uns direkt bei dir.",
    "client_msg_id": "reply-2026-06-18-001"
  }'

Optionale Steuer-Endpunkte

Über die API lassen sich auch einzelne Chatbot- und Shopify-Funktionen serverseitig steuern. Diese Endpunkte akzeptieren ebenfalls API-Key oder Session:

EndpointMethodeZweck
/api/chatbot/settingsGET / POSTChatbot-/E-Commerce-Schalter lesen & setzen (z. B. Shopify-Store an/aus, Bestell-Tracking, Adressänderung, Storno, Erstattung und Retoure)
/api/chatbot/menu/regeneratePOSTMenü-Buttons des Chatbots aus dem Crawl neu generieren
/api/integrations/shopify/order-lookupPOSTBestellstatus & Tracking per Bestellnummer + E-Mail abfragen
/api/integrations/shopify/resync-catalogPOSTProduktkatalog neu aus Shopify synchronisieren
/api/integrations/healthGETIntegrations- und Konfigurationsstatus des Workspaces prüfen
bash
curl -sS -X POST "$ALPHERIS_BASE_URL/api/chatbot/settings" \
  -H "Authorization: Bearer $ALPHERIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "shopify_store_enabled": true,
    "shopify_chat_order_tracking_enabled": true,
    "shopify_chat_refund_mode": "ticket",
    "shopify_chat_refund_max_amount": "50.00",
    "shopify_chat_refund_max_days": 30,
    "shopify_chat_refund_unshipped_only": true,
    "shopify_chat_return_mode": "auto",
    "shopify_chat_return_portal_url": "https://shop.example/retoure",
    "shopify_chat_return_window_days": 14
  }'

Erstattung kennt drei Stufen: off (nicht anbieten), ticket (Vorgang für einen Mitarbeiter — Voreinstellung) und auto. auto gilt nur innerhalb der Grenzen: ohne shopify_chat_refund_max_amount fällt sie auf ticket zurück, und über der systemweiten Obergrenze wird immer ein Vorgang angelegt statt einer Absage.

Retoure kennt eine Stufe mehr: off, ticket, auto und anlegen. Bei auto verweist der Chatbot sofort auf shopify_chat_return_portal_url (nur https); ohne hinterlegtes Portal fällt die Stufe auf ticket zurück. Bei anlegen erzeugt der Chatbot die Rücksendung in Shopify — als returnRequest, also im Zustand REQUESTED. Freigeben oder ablehnen kann sie ausschließlich ein Mensch in der Inbox; dafür gibt es bewusst keinen API-Weg. Voraussetzung sind die Shopify-Rechte read_returns und write_returns: fehlen sie, legt der Chatbot einen Vorgang an statt die Anfrage. Vor der Artikelauswahl bestätigt der Kunde einen 6-stelligen Code an die E-Mail der Bestellung — ohne diesen Code gibt die API keine Bestellpositionen heraus.

Fehlercodes

StatusBedeutungMaßnahme
401Key fehlt oder ist ungültigHeader und aktiven Key prüfen
402Plan-Gate aktiv (plan required)Business oder Enterprise aktivieren
403Workspace inaktiv oder Berechtigung fehltWorkspace-Status / Rechte prüfen
5xxTemporärer ServerfehlerRetry mit Backoff und gleicher client_msg_id
Bei 401 oder 402 niemals blind wiederholen — zuerst Auth bzw. Plan korrigieren. Nur bei 5xx/Netzfehlern macht ein Retry mit Backoff (z. B. 2 s, 5 s, 15 s) Sinn.

Best Practices

  • Keys nur serverseitig verwenden, niemals im Frontend oder in öffentlichem Code.
  • Pro Integration ein eigener Key mit sprechendem Namen — so kannst du gezielt einzelne Keys rotieren oder widerrufen.
  • Key-Rotation regelmäßig einplanen und ungenutzte Keys im Dashboard widerrufen.
  • Idempotenz: bei jedem Send-Request eine eindeutige client_msg_id mitschicken.
  • Erst /api/me, dann der Rest: so trennst du Auth-/Plan-Probleme sauber von fachlichen Fehlern.
Datenschutz: Die gesamte Verarbeitung läuft innerhalb der EU (Hosting in Deutschland). Für eigene Integrationen mit personenbezogenen Daten gilt der Auftragsverarbeitungsvertrag unter alpheris.com/avv.