Tickets-API
Endpoints
Alle REST-Endpunkte der Tickets-API.
Endpoints
Alle Pfade relativ zur Base-URL https://www.theredstonee.de/api/tickets/v1. Die Adressen haben keine Dateiendung.
Ältere Integrationen, die noch
…/create.php aufrufen, werden automatisch auf die Adresse ohne Endung umgeleitet — mit HTTP 308, damit Methode und Rumpf erhalten bleiben. Neu bauen solltest du trotzdem gegen die Adressen unten.| Methode | Pfad | Beschreibung |
|---|---|---|
POST | /create | Ticket erstellen (pk oder sk). Felder: name, email, subject, message (Pflicht); category, fields, page_url (optional). Anhänge via multipart attachments[]. |
GET | /list | Tickets listen (sk only). Query: status, category, limit (Standard 50), offset. |
GET | /ticket?id=tkt_xxx | Einzelnes Ticket. Mit pk zusätzlich email. |
POST | /reply | Antwort anhängen. pk = Kunde, sk = Support. Body: ticket_id, message, optional from_customer, author. |
POST | /status | Status ändern (sk only). Body: ticket_id, status. |
POST | /priority | Priorität setzen (sk only). Body: ticket_id, priority (low, normal, high, urgent). |
POST | /assign | Zuweisen (sk only). Body: ticket_id, agent_id (leer = Zuweisung entfernen). |
DELETE | /delete | Ticket löschen (sk only). Body oder Query: ticket_id. |
GET | /meta | Kategorien inklusive eigener Felder, Status und Prioritäten (pk oder sk). |
GET | /kb | Wissensdatenbank (pk oder sk). Ohne ?id= die Übersicht, mit ?id= der ganze Artikel. Mit pk nur veröffentlichte, mit sk auch Entwürfe. |
POST | /close-request | Schließen anfragen (pk oder sk). Body: ticket_id, optional by (agent/customer). |
POST | /close-resolve | Schließen-Anfrage beantworten (sk only). Body: ticket_id, accept. |
POST | /upload | Datei-Upload (multipart): ticket_id, file, optional reply_id, email. Max 5 MB. jpg, png, gif, webp, pdf, txt, log, json, csv, zip. |
GET | /file?ticket_id=X&file_id=Y | Anhang herunterladen. Mit pk zusätzlich email. Wird immer als Anhang ausgeliefert, nie im Browser dargestellt. |
POST | /rate | Ticket bewerten (pk oder sk). Body: ticket_id, score (1–5), optional comment. |
GET / POST | /settings | Mail-Einstellungen lesen und setzen (sk only). Felder: email_notify, smtp, autoreply, business_hours. |
GET | /me | Portal-Info zum API-Key, zum Verifizieren (pk oder sk). |
GET | /widget-config | Widget-Design und öffentliche Schlüssel (pk oder sk). Nutzt das JS-Widget selbst. |
Beispiel: Ticket erstellen
curl -X POST -H "Authorization: Bearer sk_live_KEY" \
-F "name=Max" -F "email=max@example.com" \
-F "subject=Hilfe" -F "message=Mein Problem ..." \
"https://www.theredstonee.de/api/tickets/v1/create"
Management-API
Liest und schreibt die Portal-Einstellungen über einen Endpunkt — für eigene Werkzeuge, Einrichtungs-Skripte oder eine Sicherung der Konfiguration. Nur mit sk_live_.
Geheimnisse verlassen den Server nie: SMTP-Passwort, Turnstile-Secret, Agenten-Passwörter, 2FA-Geheimnisse und Passkeys werden beim Lesen entfernt. Beim SMTP siehst du nur
pass_set, ob überhaupt ein Passwort hinterlegt ist.# Komplette Konfiguration lesen
curl -H "Authorization: Bearer sk_live_KEY" \
"https://www.theredstonee.de/api/tickets/v1/admin?r=all"
# Eine Liste ersetzen — immer vollständig senden
curl -X POST -H "Authorization: Bearer sk_live_KEY" -H "Content-Type: application/json" \
-d '{"tags":[{"name":"VIP","color":"#ff0000"}]}' \
"https://www.theredstonee.de/api/tickets/v1/admin?r=tags"
# Einzelnen Eintrag anlegen oder ändern (agents, kb)
curl -X POST -H "Authorization: Bearer sk_live_KEY" -H "Content-Type: application/json" \
-d '{"title":"Passwort vergessen","body":"...","published":true}' \
"https://www.theredstonee.de/api/tickets/v1/admin?r=kb"
# Einzelnen Eintrag löschen
curl -X DELETE -H "Authorization: Bearer sk_live_KEY" \
"https://www.theredstonee.de/api/tickets/v1/admin?r=agents&id=agt_123"
| Art | Ressourcen |
|---|---|
| Ganze Liste ersetzen | categories, statuses, macros, rules, tags, escalation, modules |
| Einzelnes Objekt | design, sla, autoreply, autoclose, blocklists, business_hours, form, mail, turnstile |
Einzeln über id | agents, kb — POST legt an oder ändert, DELETE ?id= entfernt |
| Nur lesbar | priorities; Protokolle audit und webhook_log (mit &limit=, Standard 100, höchstens 500) |
Listen-Ressourcen werden beim
POST komplett ersetzt — sende immer die vollständige Liste. Ein Teil-Update müsste raten, welcher Eintrag gemeint ist. r=all liefert alle Einstellungen auf einmal, aber ohne die beiden Protokolle.