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.
MethodePfadBeschreibung
POST/createTicket erstellen (pk oder sk). Felder: name, email, subject, message (Pflicht); category, fields, page_url (optional). Anhänge via multipart attachments[].
GET/listTickets listen (sk only). Query: status, category, limit (Standard 50), offset.
GET/ticket?id=tkt_xxxEinzelnes Ticket. Mit pk zusätzlich email.
POST/replyAntwort anhängen. pk = Kunde, sk = Support. Body: ticket_id, message, optional from_customer, author.
POST/statusStatus ändern (sk only). Body: ticket_id, status.
POST/priorityPriorität setzen (sk only). Body: ticket_id, priority (low, normal, high, urgent).
POST/assignZuweisen (sk only). Body: ticket_id, agent_id (leer = Zuweisung entfernen).
DELETE/deleteTicket löschen (sk only). Body oder Query: ticket_id.
GET/metaKategorien inklusive eigener Felder, Status und Prioritäten (pk oder sk).
GET/kbWissensdatenbank (pk oder sk). Ohne ?id= die Übersicht, mit ?id= der ganze Artikel. Mit pk nur veröffentlichte, mit sk auch Entwürfe.
POST/close-requestSchließen anfragen (pk oder sk). Body: ticket_id, optional by (agent/customer).
POST/close-resolveSchließen-Anfrage beantworten (sk only). Body: ticket_id, accept.
POST/uploadDatei-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=YAnhang herunterladen. Mit pk zusätzlich email. Wird immer als Anhang ausgeliefert, nie im Browser dargestellt.
POST/rateTicket bewerten (pk oder sk). Body: ticket_id, score (1–5), optional comment.
GET / POST/settingsMail-Einstellungen lesen und setzen (sk only). Felder: email_notify, smtp, autoreply, business_hours.
GET/mePortal-Info zum API-Key, zum Verifizieren (pk oder sk).
GET/widget-configWidget-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"
ArtRessourcen
Ganze Liste ersetzencategories, statuses, macros, rules, tags, escalation, modules
Einzelnes Objektdesign, sla, autoreply, autoclose, blocklists, business_hours, form, mail, turnstile
Einzeln über idagents, kb — POST legt an oder ändert, DELETE ?id= entfernt
Nur lesbarpriorities; 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.
Copyright © 2026