tickets:write. Rate Limit: 30 Requests / Minute (siehe Rate Limits).
Voraussetzungen
- API-Schlüssel mit
tickets:readundtickets:write— unter Einstellungen → API anlegen oder erweitern. - Verbundener Kanal — der Wert
channelmuss zu einem in eurem Workspace verbundenen Kanaltyp passen (z. B.emailoderwidget). Bei mehreren Kanälen desselben Typs:channel_identifierfür eine konkrete Posteingangs-Adresse setzen. - HTTP-Client —
curl, Postman oder ein Server mit JSON-POST.
Request
Nur die unten aufgeführten Felder senden. Zusätzliche Felder im JSON-Body führen zu einem Fehler.
Request-Body
Pflichtfeld
Optional — Ticket
Optional — Kontakt
Optional — Nachrichten
Statt (oder zusätzlich zu)note bis zu 10 Nachrichten in messages[]:
Anhänge
Eine Datei in drei Aufrufen an eine Nachricht anhängen: Upload-URL anfordern, Datei hochladen, dann bestätigen — erst danach beim Ticket referenzierbar.POST /public/v1/attachments/upload-urlmit Dateiname, MIME-Type und Größe. Liefertidund eine signierteupload_url(30 Minuten gültig).- Die rohen Dateibytes per
PUTanupload_urlsenden — direkt an den Speicher, nicht über diese API. POST /public/v1/attachments/{id}/confirm. Prüft die Datei gegen das Größenlimit und den tatsächlichen Inhalt — nicht nur den in Schritt 1 angegebenen MIME-Type.- Die bestätigte
idbeim Ticket-Anlegen inmessages[].attachment_idsübergeben.
Minimales Beispiel
Nur interne Notiz — kein Kontakt nötig:Vollständiges Beispiel
Kontakt, Tags und externe Referenz inmetadata:
metadata-Keys an euer System anpassen — die API speichert sie als Integrationsfelder.
Automatisierung und Webhooks
Viele Teams rufen den Endpoint aus HTTP-Request-Aktionen auf (eigene Skripte, Zapier, Make, n8n, E-Commerce-Workflows):- Trigger, wenn eure Geschäftsregel greift (Tag gesetzt, Feld fehlt, Statuswechsel).
POSTaufhttps://api.armin.cx/public/v1/ticketsmit Variablen eurer Plattform insubject,note,contact,metadata.- Externe Bestell- oder Fall-ID in
metadatamappen, damit Agenten die Quelle sehen.
Jeder erfolgreiche Request erstellt ein neues Ticket. Automatisierung nur auslösen, wenn wirklich ein Ticket entstehen soll (z. B. wenn ein Tag gesetzt wird), nicht bei jedem Update desselben Datensatzes.
Antwort
201 Created — v1-Erfolgs-Envelope:
data.id (UUID) oder data.ticket_number (Posteingangsnummer) für spätere GET-Requests speichern.
Fehler
Vollständige Liste: Fehler.
Zuerst testen
- Unter Einstellungen → API einen Schlüssel mit
tickets:writeanlegen. - Einen Test-Request mit den Beispielen oben senden. Test-
subjectoder Tag setzen (z. B.api-test), damit euer Team das Ticket im Posteingang erkennt. - Prüfen, ob das Ticket mit dem erwarteten Kanal, Kontakt, Tags und
metadataankommt.
Weiterführend
OpenAPI-Referenz
Interaktives Schema und Try it für
POST /tickets.Authentifizierung
Scopes, Rotation, Least Privilege.
Rate Limits
Write-Stufe (30/min) und Backoff bei 429.
Migration von Legacy
Legacy
POST /public/tickets auf v1 mappen.