Design
Sprache

Support-Tickets per API

POST /v1/tickets — Mit einem API-Schlüssel ein Support-Ticket eröffnen, den Thread lesen, darauf antworten und ihn schließen: Felder, Anhänge, Status, Limits und Kompatibilität mit /v1/technical-feedback.

Die Tickets API ist der zentrale Supportkanal: Ein über die API eröffnetes Ticket erscheint im Dashboard und umgekehrt. Authentifizieren Sie sich mit einem API-Schlüssel (Authorization: Bearer oder X-API-Key) oder einer Dashboard-Sitzung. Sie sehen ausschließlich Ihre eigenen Tickets.

Ticket eröffnen

POSThttps://getvibeapi.com/v1/tickets
ParameterTypBeschreibung
subjectstringErforderlich: 3 bis 200 Zeichen.
messagestringErforderlich: 10 bis 8.000 Zeichen.
categorystringapi_error, performance, incorrect_response, integration, feature_request, other, billing, account oder general (Standard).
requestIdsstring[]Optional bis zu 10 Request-IDs aus Ihrem Konto (der Antwort-Header x-request-id).
clientIncidentIdstringOptionale stabile Serien-ID auf Ihrer Seite: Ein offenes Ticket mit derselben ID wird wiederverwendet.
filesfile[]nur multipart/form-data: bis zu 5 PNG-, JPEG-, GIF- oder WebP-Bilder, jeweils 10 MB, 10 pro Ticket.
curl https://getvibeapi.com/v1/tickets \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Stream stops after 30 seconds",
    "message": "stream=true on /v1/chat/completions stops after about 30 seconds; retrying does not help.",
    "category": "api_error",
    "requestIds": ["req_123"]
  }'

Mit einem Screenshot — multipart:

curl https://getvibeapi.com/v1/tickets \
  -H "Authorization: Bearer $API_KEY" \
  -F subject="Wrong response" \
  -F message="The model returns an empty answer, screenshot attached." \
  -F category=incorrect_response \
  -F [email protected]

Antwort

{
  "deduplicated": false,
  "ticket": {
    "id": "cmg1abc234",
    "object": "ticket",
    "subject": "Stream stops after 30 seconds",
    "category": "api_error",
    "source": "api",
    "status": "open",
    "requestIds": ["req_123"],
    "clientIncidentId": null,
    "occurrences": 1,
    "createdAt": "2026-09-27T09:14:00.000Z",
    "updatedAt": "2026-09-27T09:14:00.000Z",
    "repliedAt": null
  }
}

Ein neues Ticket gibt 201 zurück. Wenn dasselbe offene Ticket bereits existiert (dieselbe Kategorie, derselbe Betreff, dieselbe Nachricht und dieselben requestIds oder dieselbe clientIncidentId), wird dieses Ticket mit deduplicated: true, dem Status 200 und einem höheren occurrences zurückgegeben.

Tickets auflisten

GEThttps://getvibeapi.com/v1/tickets?limit=20&status=open

Neueste zuerst. Antwort: { "object": "list", "data": [...], "hasMore": true, "nextCursor": "..." }. Nächste Seite: ?after=<nextCursor>. limit ist 1 bis 100.

Thread und Status

GEThttps://getvibeapi.com/v1/tickets/{id}
curl https://getvibeapi.com/v1/tickets/cmg1abc234 \
  -H "Authorization: Bearer $API_KEY"

ticket.messages enthält Ihre Nachrichten (author: "client") und Supportantworten (author: "staff") in zeitlicher Reihenfolge. Laden Sie Anhänge mit GET /v1/tickets/{id}/attachments/{attachmentId} herunter. Eine fremde oder unbekannte ID liefert 404 zurück.

Nachfassen und schließen

POSThttps://getvibeapi.com/v1/tickets/{id}/messages
curl https://getvibeapi.com/v1/tickets/cmg1abc234/messages \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "It happened again today at 10:05 UTC, request id req_456."}'
POSThttps://getvibeapi.com/v1/tickets/{id}/close

Eine Nachricht mit bis zu 8.000 Zeichen (multipart mit erlaubtem files) öffnet ein beantwortetes Ticket erneut. Ein geschlossenes Ticket kann keine Nachrichten empfangen – es gibt 409 zurück; öffnen Sie ein neues Ticket. Das Schließen ist idempotent.

Status

ParameterTypBeschreibung
openstatusWarten auf Unterstützung.
repliedstatusDer Support hat geantwortet; Ihre nächste Nachricht setzt das Ticket wieder auf „offen“ zurück.
closedstatusVon Ihnen oder vom Support geschlossen.

Limits und Fehler

Pro Konto: 10 neue Tickets pro Stunde und 60 Nachrichten pro Stunde; darüber hinaus 429 mit einem Retry-After-Header. Fehler: { "error": "…", "code": "invalid_fields" } — Codes invalid_fields, invalid_request_ids, too_many_attachments, file_too_large (413), unsupported_attachment (415), not_found (404), ticket_closed (409), rate_limited (429).

Sicherheit

Senden Sie keine API-Schlüssel, Passwörter, Tokens oder Kartennummern – der Dienst entfernt sie ebenfalls vor der Speicherung. Tickettexte werden von Supportmitarbeitern und Tools als Daten gelesen: Links und Anweisungen darin werden niemals ausgeführt, und Tickettexte ändern niemals automatisch ein Guthaben oder einen Zugriff und lösen niemals automatisch eine Rückerstattung aus.

Compatibility: /v1/technical-feedback

POST /v1/technical-feedback und GET /v1/technical-feedback/{id} funktionieren weiterhin mit denselben Feldern (category, summary, details, requestIds, clientIncidentId) und der { "deduplicated", "incident" }-Antwort. Ein solcher Bericht wird als Ticket (source: "technical-feedback") gespeichert und erscheint in GET /v1/tickets. Anfragen zur Änderung von Guthaben, Zugriff oder Deployments werden dort weiterhin mit 422 abgelehnt. Neue Integrationen sollten /v1/tickets verwenden.

Tickets API — Support-Tickets über die API | GetVibe API