Zum Inhalt springen
esc
Tippen zum Suchen. ↑ ↓ zum Navigieren, ↵ zum Öffnen.
Entwickler

API-Referenz

Die Trackr-API ist REST über HTTPS mit JSON-Bodies unter /api/v1 deiner Instanz. Es ist dieselbe API, die iOS-App und CLI verwenden.

Aktualisiert am 10. Sept. 2026 beta 4 Min. Lesezeit

Konventionen #

  • Basis-URL: https://<deine-instanz>/api/v1 (für das gehostete Produkt https://app.trackr.dev/api/v1).
  • Authentifizierung: Authorization: Bearer <token>. Siehe Authentifizierung.
  • Bodies und Antworten sind JSON. Daten sind ISO-8601-Strings; Kalendertage wie plannedFor und das date eines Zeiteintrags sind YYYY-MM-DD.
  • Endpunkte, die Aufgaben, Tickets, Kommentare, Nachrichten und Threads anlegen, akzeptieren auch multipart/form-data mit einem Feld payload für das JSON und einem oder mehreren attachments-Dateiteilen.
  • Fehler liefern ein JSON-Objekt mit message und einem HTTP-Status: 400 ungültige Eingabe, 401 keine Sitzung, 403 keine Berechtigung, 404 nicht gefunden oder nicht sichtbar.
  • Jeder Endpunkt setzt dieselben Berechtigungen durch wie die Web-App.
list-my-tasks.sh bash
curl "https://app.trackr.dev/api/v1/tasks?scope=mine" \
  -H "Authorization: Bearer $TRACKR_TOKEN"
response json
{
	"tasks": [
		{
			"id": "SCM-1",
			"uuid": "7a4d…",
			"title": "CAD-Modelle für die Messe vorbereiten",
			"status": "todo",
			"priority": "high",
			"type": "task",
			"estimate": 360,
			"due": "2026-09-12",
			"project": "3b9a…",
			"assignees": ["9c1e…"]
		}
	],
	"users": { "9c1e…": { "name": "Ertugul Kilic", "color": "#ff4867" } }
}

In Listenzeilen ist id die lesbare Referenz und uuid die Datenbank-ID; verwende die uuid, wo ein Pfad :id erwartet. Verantwortliche sind Nutzer-IDs; die users-Map liefert ihre Anzeigenamen.

Sitzung #

MethodePfadBeschreibung
GET/instanceUnauthentifizierte Prüfung. Liefert { name, version, api, branding }.
GET/me{ user, capabilities, orgs, unreadCount, instances }.
GET PATCH/me/preferencesAufgelöste Einstellungen als { preferences }. PATCH merged ein Teilobjekt.
PATCH/me/profilename und image ändern.
GET POST/me/viewsGespeicherte Ansichten pro Seite, geteilt mit der Web-App. POST-Body { key, patch }.
GET/eventsServer-Sent-Events-Stream mit Invalidierungshinweisen (entity, inbox).
GET/search?q=Globale Suche über Tickets, Aufgaben, Projekte, Wiki und Notizen als { results }. Optional types, orgId.

Posteingang #

MethodePfadBeschreibung
GET/inboxCursor-paginierter Feed. Optional limit (≤ 100) und filter=unread.
GET/inbox/badgeNur die ungelesene Anzahl, als { unread }.
POST/inbox/readBody { all: true }, { id } oder { entityType, entityId }.

Aufgaben #

MethodePfadBeschreibung
GET/tasks?scope=mine\|allAufgaben als { tasks, users } auflisten. Standard-Scope mine.
POST/tasksAnlegen. Body: title, projectKey, description, status, priority, type, due, estimate, tags, assigneeIds, dependsOnIds, plannedFor. Liefert 201 { id, displayId }.
GET/tasks/:id{ task, attachments, authors, assignableUsers, canEdit, canComment }.
PATCH/tasks/:idBeliebiges editierbares Feld ändern, auch checklist und dependsOnIds.
DELETE/tasks/:idLöschen (braucht project.tasks.delete.any).
POST/tasks/:id/commentsKommentar hinzufügen: { body }.
POST/tasks/:id/timeZeit buchen: { minutes, date, note }.

Tickets #

MethodePfadBeschreibung
GET/tickets?segment=mine\|watched\|all&status=Tickets nach letzter Aktivität.
POST/ticketsAnlegen: { orgId, subject, description? }; Agents dürfen auch priority, category, assigneeIds setzen. Liefert 201 { id, displayId }.
GET/tickets/:idDetail mit vollständigem Nachrichtenverlauf, Anhängen, linkedTasks und canInternalNote.
PATCH/tickets/:idNur Agents: status, priority, category, assigneeIds, tags.
DELETE/tickets/:idLöschen.
POST/tickets/:id/messagesÖffentliche Antwort, oder { internal: true } für eine Team-Notiz.
PUT/tickets/:id/checklistGesamte Checkliste ersetzen.
POST/tickets/:id/tasksIn eine verknüpfte Projektaufgabe umwandeln (nur Team).

Projekte #

MethodePfadBeschreibung
GET/projectsSichtbare Projekte.
GET/projects/:idProjektzusammenfassung.
GET POST/projects/:id/activityVerlauf als Klartext, geblättert per offset; POST { body } fügt einen Projektkommentar hinzu.

Chat, Notizen, Wiki #

MethodePfadBeschreibung
GET POST/chat/threads?orgId=Thread-Feed mit Tags und ungelesenen IDs; POST { orgId, title, body }.
GET/chat/threads/:idNachrichten; markiert den Thread als gelesen.
POST/chat/threads/:id/messagesAntworten.
POST/notesSchnellnotiz: { title, body? } (nur internes Team).
GET/notes/list{ quick, meetings, shared } (nur internes Team).
GET/notes/:idNotiz lesen (nur internes Team).
GET/wikiFlacher Baum als { pages }: id, parentId, title, icon, isFolder, sortOrder (nur internes Team).
GET/wiki/:id{ page } mit gerendertem bodyHtml (nur internes Team).

Geräte #

MethodePfadBeschreibung
POST DELETE/push/tokensGeräte-Token registrieren { token, platform, deviceName? } oder entfernen { token }. platform: ios, android, ios-live-activity.

Mit einer Aufgabe verknüpfte Meeting-Notizen liegen außerhalb von /api/v1 unter GET /api/tasks/:uuid/meetings (nur Sitzungs-Token, internes Team).

Diese Seite auf GitHub bearbeiten