API Dokumentation
Basis-URL: https://logs.trfx.de
Status & Allgemein
GET /api/status
Gibt den Echtzeit-Status der Anwendung zurück: Uptime, Speichernutzung, IRC-Verbindungsstatus, Anzahl der geloggten Kanäle und Puffergröße.
Beispiel-Antwort
{
"service_status": "online",
"uptime_seconds": 3600,
"logger_status": {
"irc_connection": "connected",
"listening_to_channels_count": 136
}
}
GET /api/stats
Globale Gesamtstatistiken: Nachrichtenanzahl in der DB, Anzahl konfigurierter Kanäle und einzigartiger Nutzer.
Beispiel-Antwort
{
"counts": {
"total_messages": 1234567,
"configured_channels": 136,
"unique_users_logged": 45231
}
}
GET /api/channels
Liste aller konfigurierten Kanäle mit id und name.
[{ "id": "12875057", "name": "gronkh" }, ...]
Log-Endpunkte
GET /api/logs/span/:type/:id
Empfiehlt automatisch die optimale Zeitspanne für einen Kanal oder Nutzer basierend auf der Aktivität. Sehr aktive Kanäle erhalten 1d, ruhige bis zu 3m.
Parameter
:type–channeloderuser:id– Twitch-ID
Beispiel-Antwort
{
"span": "7d",
"from": "2026-05-30",
"to": "2026-06-06"
}
GET /api/logs/channel/:identifier
Logs für einen Kanal, paginiert. :identifier kann der Kanalname oder die Twitch-ID sein.
Query-Parameter
from/to(string) – Zeitraum alsYYYY-MM-DDdate(string) – Einzelner Tag (Rückwärtskompatibilität)user(string, optional) – Auf Nutzer-ID oder -Name filternlimit(integer, default 2000) – Einträge pro Seiteoffset(integer, default 0) – Für Pagination
Beispiel
/api/logs/channel/gronkh?from=2026-06-01&to=2026-06-06
/api/logs/channel/12875057?from=2026-06-06&to=2026-06-06&user=fossabot&limit=500
Antwort
{
"logs": [{ "id": 1, "iso_timestamp": "...", "channel_name": "gronkh",
"user": { "id": "...", "display-name": "...", "color": "#FF0000",
"badges": { "moderator": "https://static-cdn.jtvnw.net/..." } },
"message": "Hallo!", "emotes": null, "msgId": "..." }],
"total": 8432,
"hasMore": true,
"offset": 0
}
GET /api/logs/user/:id
Logs für einen Nutzer über alle geloggten Kanäle hinweg, paginiert.
Query-Parameter
from/to(string) – Zeitraum alsYYYY-MM-DDdate(string) – Einzelner Tag (Rückwärtskompatibilität)limit/offset– Pagination
Beispiel
/api/logs/user/26335497?from=2026-06-01&to=2026-06-06
Statistik-Endpunkte
Alle Statistik-Endpunkte akzeptieren den Query-Parameter range (7d, 30d, 90d, 365d, all) und optional channel (Twitch-Channel-ID).
GET /api/stats/top-users
Die aktivsten Nutzer nach Nachrichtenanzahl im gewählten Zeitraum.
/api/stats/top-users?range=30d&channel=43683025
[{ "id": "237719657", "name": "fossabot", "display_name": "Fossabot", "total": 1234 }]
GET /api/stats/top-channels
Die aktivsten Kanäle nach Nachrichtenanzahl im gewählten Zeitraum.
/api/stats/top-channels?range=7d
[{ "id": "43683025", "name": "ohnepixel", "total": 54321 }]
GET /api/stats/multi-channel-users
Nutzer, die in den meisten verschiedenen Kanälen aktiv waren.
/api/stats/multi-channel-users?range=30d
[{ "id": "...", "name": "someuser", "channel_count": 42, "total_messages": 999 }]
GET /api/stats/top-emotes
Meistgenutzte Twitch-Emotes nach Verwendungsanzahl.
/api/stats/top-emotes?range=7d&channel=43683025
[{ "emote_id": "425618", "total": 1234 }]
GET /api/stats/activity
Tägliche Nachrichtenanzahl für Aktivitäts-Charts.
/api/stats/activity?range=30d
[{ "day": "2026-06-06", "count": 84321 }]
Share-Endpunkte
POST /api/share
Erstellt einen teilbaren Link. Der Aufruf gibt eine kurze ID zurück, unter der die Auswahl dauerhaft abrufbar ist.
Body (JSON)
- Channel-Logs teilen:
{ "kind": "channel", "channelId": "43683025", "from": "2026-06-06", "to": "2026-06-06" } - User-gefilterte Channel-Logs:
{ "kind": "channel-user", "channelId": "...", "userId": "...", "from": "...", "to": "..." } - User-Logs teilen:
{ "kind": "user", "userId": "...", "from": "...", "to": "..." } - Auswahl teilen:
{ "kind": "selection", "msgIds": [123, 456, 789] }(max. 500 IDs)
Antwort
{ "id": "w8QLk6rZgIU", "url": "/s/w8QLk6rZgIU" }
GET /api/share/:id
Ruft einen Share anhand seiner ID ab. Gibt die gespeicherten Metadaten und die zugehörigen Logs zurück.
{
"share": { "id": "w8QLk6rZgIU", "kind": "channel", "createdAt": 1780781692072,
"payload": { "channelId": "43683025", "from": "2026-06-06", "to": "2026-06-06" } },
"logs": [...]
}
Helfer-Endpunkte
GET /api/resolve/user/:name
Wandelt einen Twitch-Benutzernamen in ID + Metadaten um. Sucht zuerst in der lokalen DB, dann per Twitch-API.
/api/resolve/user/gronkh → { "id": "12875057", "name": "gronkh", "display_name": "Gronkh" }
GET /api/resolve/id/:id
Wandelt eine Twitch-ID in Nutzermetadaten um.
/api/resolve/id/12875057 → { "id": "12875057", "name": "gronkh", "display_name": "Gronkh" }
Admin-Endpunkte sind nur im Admin-Panel dokumentiert.