# TaskFlow API Reference **Base URL:** `https://task.nothaft.cloud` **Stand:** 2026-02-03 --- ## Authentifizierung Zwei Methoden: ### 1. Session Cookie (Browser) Standard Login über `/api/login` mit Username/Password. ### 2. API Key (Externe Tools / Bots) Für automatisierte Zugriffe. Key wird über die GUI oder API generiert. **Übergabe:** ``` X-API-Key: tf_abc123... # oder Authorization: Bearer tf_abc123... # oder ?apiKey=tf_abc123... ``` ### API Key generieren ```bash # Generieren (eingeloggt via Session) POST /api/user/api-key → { "apiKey": "tf_...", "message": "Save this key..." } # Status prüfen GET /api/user/api-key → { "hasKey": true, "maskedKey": "tf_abc12...xyz9" } # Widerrufen DELETE /api/user/api-key ``` --- ## REST Endpoints ### Health ``` GET /api/health → { "status": "ok", "timestamp": "..." } ``` ### Tasks ```bash # Alle Tasks GET /api/tasks → [{ id, title, status, priority, dueDate, ... }] # Einzelner Task GET /api/tasks/:id # Task erstellen POST /api/tasks { "title": "...", "priority": "high", "dueDate": "2026-02-05", "labelId": "..." } # Task updaten PATCH /api/tasks/:id { "status": "done", "priority": "low" } # Task löschen DELETE /api/tasks/:id ``` ### Labels ```bash GET /api/labels POST /api/labels { "name": "Work", "color": "#ff5733" } PATCH /api/labels/:id DELETE /api/labels/:id ``` ### User ```bash GET /api/user # Eigenes Profil + Stats GET /api/user/api-key # API Key Status POST /api/user/api-key # API Key generieren DELETE /api/user/api-key # API Key widerrufen PATCH /api/user/profile # E-Mail ändern PATCH /api/user/password # Passwort ändern PATCH /api/user/schedule # Arbeitszeiten PATCH /api/user/privacy # Privatsphäre-Einstellungen ``` ### Gamification ```bash GET /api/user/history # XP-Verlauf GET /api/user/inventory # Erworbene Rewards GET /api/leaderboard # Bestenliste GET /api/rewards # Verfügbare Rewards POST /api/rewards/purchase # Reward kaufen ``` ### Analytics ```bash GET /api/analytics/weekly GET /api/analytics/monthly GET /api/analytics/yearly GET /api/analytics/time-distribution?period=week ``` ### AI Chat ```bash GET /api/ai/status # AI konfiguriert? GET /api/ai/conversations # Alle Gespräche POST /api/ai/conversations # Neues Gespräch POST /api/ai/chat # Nachricht senden ``` --- ## MCP (Model Context Protocol) Für AI-Tool-Integration (Claude, etc.) ``` GET /api/mcp/sse # SSE Stream (mit API Key) POST /api/mcp/messages # JSON-RPC Nachrichten ``` ### Verfügbare MCP Tools | Tool | Beschreibung | |---|---| | `list_tasks` | Tasks auflisten (Filter: status, priority, labelId) | | `get_task` | Einzelnen Task laden | | `search_tasks` | Tasks durchsuchen | | `create_task` | Task erstellen | | `update_task` | Task aktualisieren | | `complete_task` | Task als erledigt markieren | | `delete_task` | Task löschen | | `list_labels` | Labels auflisten | | `create_label` | Label erstellen | | `get_user_stats` | User-Statistiken | | `get_dashboard` | Dashboard-Übersicht | | `bulk_create_tasks` | Mehrere Tasks auf einmal erstellen | | `bulk_update_tasks` | Mehrere Tasks auf einmal updaten | ### Beispiel: Task per API Key erstellen ```bash curl -X POST https://task.nothaft.cloud/api/tasks \ -H "Content-Type: application/json" \ -H "X-API-Key: tf_your_key_here" \ -d '{"title": "Report schreiben", "priority": "high", "dueDate": "2026-02-10"}' ``` --- ## NotiBot Integration NotiBot nutzt die REST API mit API Key um Tasks für Paul zu verwalten. ### Konfiguration - API Key in NotiBot Memory gespeichert - Zugriff via `web_fetch` auf `https://task.nothaft.cloud/api/*` - Audit-Logs zeigen `source: "API"` für Bot-Aktionen ### Was NotiBot kann - Tasks erstellen, updaten, abschließen, löschen - Labels verwalten - Dashboard/Stats abrufen - Bulk-Operationen - Erinnerungen basierend auf Due-Dates --- *Letzte Aktualisierung: 2026-02-03*