Download OpenAPI specification:
⚠️ Hinweis: Dies ist eine inoffizielle Dokumentation der API-Endpunkte von myTischtennis.de. Sie wurde durch Analyse der öffentlich im Browser (Network Tab) sichtbaren Requests erstellt.
📂 Repository: github.com/notMYcupofTeeTee/mytt-api
mytischtennis.de stellt keine offizielle API-Dokumentation bereit, obwohl alle hier dokumentierten Endpunkte öffentlich zugänglich sind. Diese Intransparenz:
Diese Dokumentation soll zeigen, was technisch bereits öffentlich ist, und eine Diskussion über Open Data im deutschen Tischtennissport anstoßen.
Einige Endpunkte erfordern eine Cookie-basierte Authentifizierung (sb-10-auth-token).
Öffentliche Endpunkte sind mit security: [] gekennzeichnet.
Die API verwendet Rate Limiting (90 Requests pro Stunde). Bei Überschreitung wird HTTP 429 zurückgegeben.
Globale Suche nach Spieler*innen und Vereinen. Öffentlich zugänglich (Rate-Limited auf 90 Requests/Stunde).
Globale Suche nach Spieler*innen (nach Name).
Gibt Spieler mit ihrer NUID, Vereinszugehörigkeit und TTR-Wert zurück. Mindestens 3 Zeichen erforderlich.
Öffentlich zugänglich, aber Rate-Limited (90 Requests/Stunde).
| query required | string Suchbegriff |
| page | integer Default: 1 Seitennummer für Pagination |
| pagesize | integer Default: 4 Anzahl Ergebnisse pro Seite |
{- "results": [
- {
- "lastname": "Qiu",
- "firstname": "Dang",
- "person_id": 344349,
- "internal_id": "NU7535",
- "licence_club": "Borussia Düsseldorf (13118)",
- "dttb_player_id": null,
- "club_name": "Borussia Düsseldorf"
}
], - "total_count": 9,
- "pages_count": 3,
- "page": 1,
- "pagesize": 4
}Globale Vereinssuche nach Name.
Gibt Vereine mit ihrer Vereinsnummer, Verband und weiteren Details zurück. Mindestens 3 Zeichen erforderlich.
Öffentlich zugänglich, aber Rate-Limited (90 Requests/Stunde).
| query required | string Suchbegriff |
| page | integer Default: 1 Seitennummer für Pagination |
| pagesize | integer Default: 4 Anzahl Ergebnisse pro Seite |
{- "results": [
- {
- "external_id": "d937e5f2-c8d6-4f2c-b674-b5b4f36a6952",
- "clubname": "Borussia Düsseldorf",
- "clubnr": "13118",
- "organization_id": 28,
- "organization_name": "Westdeutscher Tischtennis-Verband e.V.",
- "organization_short": "WTTV"
}
], - "total_count": 12,
- "pages_count": 3,
- "page": 1,
- "pagesize": 4
}TTR-Werte, Statistiken, Head-to-Head und Ranglisten. Enthält sowohl öffentliche als auch authentifizierte Endpunkte.
Lädt die verfügbaren Regionen für die Andro-Ranglisten-Filter.
Hierarchie: Verband → Bezirk → Kreis (nicht alle Bezirke haben Kreise)
Verwendung:
as=<verband>&di=all: Bezirke für einen Verband abrufenas=<verband>&di=<bezirk>: Kreise für einen Bezirk abrufen (falls vorhanden)| as | string Enum: "DE.SW.R5.01" "DE.SU.R1.02" "DE.NO.R6.03" "DE.NO.R6.04" "DE.NO.R6.05" "DE.NO.R6.06" "DE.WE.R4.07" "DE.NO.R6.08" "DE.NO.R2.09" "DE.WE.R3.19" "DE.SW.R7.10" "DE.SW.R7.12" "DE.SW.R7.13" "DE.SU.R8.14" "DE.SU.R8.15" "DE.NO.R6.16" "DE.SW.R5.20" "DE.SU.R8.18" Example: as=DE.WE.R3.19 Landesverband-Code (optional). Wenn gesetzt, werden Bezirke für diesen Verband geladen. Verbände:
|
| di | string Default: "all" Example: di=all Bezirk-Code (aus Response) oder |
{- "associations": [
- {
- "name": "Baden",
- "pattern": "DE.SW.R5.01"
}, - {
- "name": "Bayern",
- "pattern": "DE.SU.R1.02"
}, - {
- "name": "Mecklenburg-Vorpommern",
- "pattern": "DE.NO.R6.08"
}, - {
- "name": "Nordrhein-Westfalen",
- "pattern": "DE.WE.R3.19"
}
], - "districts": [
- {
- "name": "Bezirk Nordost",
- "pattern": "DE.NO.R6.08.02"
}, - {
- "name": "Bezirk Südost",
- "pattern": "DE.NO.R6.08.03"
}, - {
- "name": "Bezirk West",
- "pattern": "DE.NO.R6.08.01"
}
], - "areas": [
- {
- "name": "Kreis Ludwigslust-Parchim",
- "pattern": "DE.NO.R6.08.01.01"
}, - {
- "name": "Kreis Nordwestmecklenburg",
- "pattern": "DE.NO.R6.08.01.02"
}, - {
- "name": "Kreis Schwerin",
- "pattern": "DE.NO.R6.08.01.03"
}
]
}Lädt detaillierte Match-Statistiken für einen bestimmten Zeitraum.
Enthält Gewinn/Verlust-Statistiken, Heim/Auswärts-Aufschlüsselung und Match-Details.
Authentifizierung erforderlich. Bei fehlender Auth wird HTTP 200 mit Fehler im Body zurückgegeben.
| player_id required | string Example: PEB7814 oder NU7535 Eindeutige ID des Spielers |
| date_range required | string Enum: "last_3_months" "last_6_months" "last_12_months" "current_season" "everything" Example: current_season Zeitraum für die Statistiken |
{- "data": {
- "matches": {
- "total": 7,
- "wins": 6,
- "losses": 1,
- "home": 3,
- "home_wins": [ ],
- "home_losses": [ ],
- "guest": 4,
- "guest_wins": [ ],
- "guest_losses": [ ]
}, - "is_premium": true
}
}Vergleicht die direkten Begegnungen zwischen der eingeloggten Person und einer anderen Person.
Authentifizierung erforderlich. Der Server gibt HTTP 400 mit "Not authorized" bei fehlender Auth zurück.
| other_user required | string Spieler-ID des Gegners (internal_id ohne "NU"-Präfix) |
{- "data": [ ]
}Lädt eine kompakte TTR-Übersicht (Start/End/Delta) für einen definierten Zeitraum.
Unterschied zu /api/ttr/history/{nuid}: Dieser Endpunkt liefert nur Aggregatwerte,
nicht die detaillierten Einzelevents.
Authentifizierung erforderlich. Bei fehlender Auth wird HTTP 200 mit Fehler im Body zurückgegeben.
| player_id required | string Example: PEB7814 oder NU7535 Eindeutige ID des Spielers |
| date_range required | string Enum: "last_3_months" "last_6_months" "last_12_months" "current_season" "everything" Example: current_season Zeitraum für die Statistiken |
{- "data": {
- "start": 2641,
- "end": 2618,
- "delta": -23
}
}| nuid required | string Example: NU7535 Nationale User ID |
{- "ttr": 2618,
- "event": [
- {
- "wlr": null,
- "type": "meeting",
- "match": [
- {
- "type": "meeting",
- "own_set1": 11,
- "own_set2": 11,
- "own_set3": 9,
- "own_set4": 11,
- "own_sets": 3,
- "other_ttr": 2547,
- "scheduled": "2025-11-12 18:30:00",
- "other_sets": 1,
- "own_person_name": "Qiu, Dang",
- "other_person_name": "Karlsson, Kristian"
}
], - "event_id": 422517555,
- "ttr_after": 2624,
- "ttr_delta": 4,
- "event_name": "BL1-Erwachsene | Borussia Düsseldorf : BV Borussia Dortmund",
- "ttr_before": 2620,
- "match_count": 1,
- "matches_won": 1,
- "matches_lost": 0,
- "event_date_time": "2025-11-12T18:30:00+00:00",
- "expected_result": "0,7541",
- "alteration_constant": 16
}
], - "vq_ttr": 2623,
- "max_ttr": 2661,
- "ttr_date": "2025-12-01",
- "club_name": "Borussia Düsseldorf",
- "person_id": "NU7535",
- "person_name": "Qiu, Dang",
- "max_ttr_date": "2024-09-09"
}Hinweis: Dieser Endpunkt benötigt Authentifizierung.
Ohne Auth wird ein PT403 Fehler zurückgegeben.
| nuid required | string Example: NU7535 Nationale User ID |
{- "ttr": 2618,
- "error": null
}Lädt die globale TTR-Rangliste mit umfangreichen Filtermöglichkeiten.
TTR vs Q-TTR (fedRank in Response):
current-ranking=nocurrent-ranking Parameter wird ignoriertZugriffslevel (userContentAccessLevel in Response):
public: Nicht eingeloggt - limitierte Ergebnisse (maxRows: 300)premium: Eingeloggt - volle Ergebnisse (maxRows: 500+)Technisch: Diese Seite wird von der Remix Splat Route (routes/$) bedient.
Der Parameter _data muss zwingend auf routes/$ gesetzt werden.
| continent | string Default: "Europa" Enum: "Alle" "Europa" "Asien" "Afrika" "Nordamerika" "Südamerika" "Ozeanien" Filter nach Kontinent (Default: Europa) |
| country | string Default: "Deutschland" Land, abhängig vom Kontinent (Default: Deutschland) |
| germans-ranking | string Value: "on" Checkbox: Deutsche + Gleichgestellte.
|
| all-players | string Value: "on" Checkbox: Alle Spielberechtigten.
|
| gender | string Default: "all" Enum: "m" "w" "all" Geschlecht (m = männlich, w = weiblich, all = alle) |
| current-ranking | string Enum: "yes" "no" TTR-Wert Auswahl: Verhalten abhängig von Authentifizierung:
|
| ttr-range | string Example: ttr-range=100;2840 TTR-Bereich von;bis (mit Semikolon getrennt) |
| birth-range | string Example: birth-range=1925;2016 Geburtsjahr-Bereich von;bis (mit Semikolon getrennt) |
| as | string Example: as=DE.WE.R3.19 Optional, nur für Deutschland. Filter auf Landesverband. Voraussetzung: Werte: |
| di | string Example: di=DE.WE.R3.19.13 Optional, nur für Deutschland. Filter auf Bezirk. Voraussetzung: Werte aus |
| area | string Example: area=DE.NO.R6.08.01.01 Optional, nur für Deutschland. Filter auf Kreis (tiefste Ebene). Voraussetzung: Nicht alle Bezirke haben Kreise! Prüfen via |
| fednickname | string Verbandskürzel (oft leer, wenn 'as' gesetzt ist) |
| results-per-page | integer Default: 20 Enum: 10 20 50 100 Ergebnisse pro Seite (Default: 20 wenn nicht gesetzt) |
| page | integer Default: 1 Seitennummer |
| _data required | string Default: "routes/$" Example: _data=routes/$ Muss zwingend |
{- "blockLoaderData": {
- "f87d4e7c-83f1-4e68-b0ec-f12fc0f1b9d5": {
- "area": "all",
- "association": "DE.WE.R3.19",
- "district": "DE.WE.R3.19.13",
- "continent": "Europa",
- "country": "Deutschland",
- "gender": "all",
- "germansRanking": "",
- "allPlayers": "",
- "currentRanking": "no",
- "ttrRange": [
- 100,
- 2840
], - "birthRange": [
- 1925,
- 2016
], - "resultsPerPage": 20,
- "currentPage": 0,
- "numberOfPages": 25,
- "resultLength": 500,
- "maxRows": 500,
- "entries": [
- {
- "rank": 19,
- "position": 1,
- "personId": "NU7535",
- "firstname": "Dang",
- "lastname": "Qiu",
- "gender": "male",
- "fedRank": 2611,
- "germanRank": 1,
- "germanSexRank": 1,
- "clubNr": "13118",
- "clubName": "Borussia Düsseldorf",
- "clubSexRank": 1,
- "fedNickname": "WTTV",
- "country": "Deutschland",
- "continent": "Europa",
- "matchCount": 1559,
- "fewGames": 1559,
- "lastYearNoGames": "no",
- "external_id": "482245c8-4e16-4714-8904-889536a33a20"
}, - {
- "rank": 27,
- "position": 2,
- "personId": "NU218453",
- "firstname": "Benedikt",
- "lastname": "Duda",
- "gender": "male",
- "fedRank": 2597,
- "germanRank": 2,
- "germanSexRank": 2,
- "clubNr": "21608",
- "clubName": "TTC Schwalbe Bergneustadt",
- "clubSexRank": 1,
- "fedNickname": "WTTV",
- "country": "Deutschland",
- "continent": "Europa",
- "matchCount": 1694,
- "fewGames": 1694,
- "lastYearNoGames": "no",
- "external_id": "55dccd9e-a344-4e8f-ab46-bffffafa30ec"
}
], - "regions": {
- "associations": [
- {
- "name": "Nordrhein-Westfalen",
- "pattern": "DE.WE.R3.19"
}
], - "districts": [
- {
- "name": "Rhein-Wupper",
- "pattern": "DE.WE.R3.19.13"
}
], - "areas": [ ]
}
}
}, - "userContentAccessLevel": "premium",
}Lädt den Spielplan einer Mannschaft.
Liefert alle Begegnungen mit Gegner, Datum und Ergebnis (falls gespielt).
Öffentlich zugänglich.
| teamId required | string Example: teamId=2953148 Eindeutige Team-ID |
| season required | string Example: season=25--26 Saison-Kürzel oder Jahr (z.B. "25--26") |
{- "data": [
- {
- "opponent_team_id": 2953190,
- "opponent_team_name": "TTC Schwalbe Bergneustadt",
- "date": "2025-11-16T11:00:00.000+00:00"
}
], - "error": null
}Lädt die Aufstellung einer Mannschaft mit Rangpositionen.
Gibt die Namen, NU-IDs und Rangfolge der gemeldeten Personen zurück.
Öffentlich zugänglich.
| teamId required | string Example: teamId=2953148 Eindeutige Team-ID |
{- "data": [
- {
- "firstname": "Dang",
- "lastname": "Qiu",
- "internal_id": "NU7535",
- "rank": 1
}, - {
- "firstname": "Yongyin",
- "lastname": "Li",
- "internal_id": "NU2250510",
- "rank": 2
}
], - "error": null
}Lädt die detaillierten Bilanzen (Einsätze, Siege/Niederlagen) aller Mitglieder einer spezifischen Mannschaft. Ermöglicht Filterung nach Vorrunde (vr), Rückrunde (rr) oder Gesamt.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| league_slug required | string Example: Tischtennis_Bundesliga Name der Liga (URL-Slug) |
| groupId required | string Example: 493079 ID der Gruppe/Liga |
| teamId required | string Example: 2953148 ID der Mannschaft |
| teamName required | string Example: Borussia_Duesseldorf Name der Mannschaft (URL-Slug). Technisch oft irrelevant, aber nötig für die URL-Struktur. |
| filter required | string Default: "gesamt" Enum: "gesamt" "vr" "rr" Zeitraum-Filter (gesamt, vr = Vorrunde, rr = Rückrunde) |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/($groupname).gruppe.$urlid_.mannschaft.$teamid.$teamname+/spielerbilanzen.$filter" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "player_balances": [
- {
- "player_id": "NU7535",
- "player_firstname": "Dang",
- "player_lastname": "Qiu",
- "meetings_count": 4,
- "points_won": 5,
- "points_lost": 0
}
], - "meetings_excerpt": {
- "remarks": "string",
- "meetings": [
- { }
], - "round_type": "mixed",
}
}, - "season": "25--26",
- "association": "WTTV",
- "error": "string"
}Lädt den Spielplan einer spezifischen Mannschaft im Kontext einer Liga. Ermöglicht Filterung nach Vorrunde (vr), Rückrunde (rr) oder Gesamt.
Alternative: Der Endpunkt /api/ttr/team/schedule liefert die gleichen Spieldaten, oft einfacher zu nutzen.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| league_slug required | string Example: Tischtennis_Bundesliga Name der Liga (URL-Slug) |
| groupId required | string Example: 493079 ID der Gruppe/Liga |
| teamId required | string Example: 2953148 ID der Mannschaft |
| teamName required | string Example: Borussia_Duesseldorf Name der Mannschaft (URL-Slug) |
| filter required | string Default: "vr" Enum: "gesamt" "vr" "rr" Zeitraum-Filter (gesamt, vr = Vorrunde, rr = Rückrunde) |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/($groupname).gruppe.$urlid_.mannschaft.$teamid.$teamname+/spielplan.$filter" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "schedule": [
- {
- "date": "2019-08-24T14:15:22Z",
- "state": "scheduled",
- "team_home": "string",
- "team_away": "string",
- "team_home_id": "string",
- "team_away_id": "string",
- "matches_won": "string",
- "matches_lost": "string",
- "meeting_id": "string",
- "location": {
- "label": "string",
- "city": "string"
}
}
], - "meetings_excerpt": {
- "remarks": "string",
- "meetings": [
- { }
], - "round_type": "mixed",
}
}, - "season": "25--26",
- "association": "WTTV",
- "error": "string"
}Lädt allgemeine Infos zur Mannschaft. Enthält meist:
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| league_slug required | string Example: Tischtennis_Bundesliga Name der Liga (URL-Slug) |
| groupId required | string Example: 493079 ID der Gruppe/Liga |
| teamId required | string Example: 2953148 ID der Mannschaft |
| teamName required | string Example: Borussia_Duesseldorf Name der Mannschaft (URL-Slug) |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/($groupname).gruppe.$urlid_.mannschaft.$teamid.$teamname+/infos" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "team_contact": {
- "contact_name": "Max Mustermann",
- "street": "string",
- "zipcode": "string",
- "city": "string",
- "phone_home": "string",
- "phone_work": "string",
- "phone_mobile": "string",
- "email_home": "string",
- "email_work": "string"
}, - "venue": {
- "label": "ARAG CenterCourt",
- "street": "string",
- "zipcode": "string",
- "city": "string",
- "website": "string"
}, - "team_photo_url": "string",
- "meetings_excerpt": {
- "remarks": "string",
- "meetings": [
- { }
], - "round_type": "mixed",
}
}, - "season": "25--26",
- "association": "WTTV",
- "error": "string"
}Lädt alle Mannschaften eines Vereins für eine bestimmte Saison.
Gibt Team-IDs zurück, die für weitere API-Aufrufe benötigt werden.
Öffentlich zugänglich.
| clubNumber required | string Example: clubNumber=13118 Die Vereinsnummer (z.B. aus der Suche) |
| organization required | string Example: organization=WTTV Der Landesverband (z.B. WTTV, TTVN, etc.) |
{- "data": [
- {
- "season": "25/26",
- "team_id": "2953148",
- "group_id": "493079",
- "team_name": "Erwachsene",
- "points_won": "14",
- "table_rank": "1",
- "league_name": "Tischtennis Bundesliga",
- "points_lost": "4",
- "team_organisation_short": "DTTB"
}
], - "error": null
}Lädt die Liste der Mannschaften eines Vereins via Remix-Loader.
Alternative: Nutze den API-Endpunkt /api/ttr/teams für einfacheren Zugriff auf die gleichen Daten.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| clubId required | string Example: 13118 Die Vereinsnummer |
| clubSlug required | string Default: "x" Example: Borussia_Duesseldorf Name des Vereins (URL-Slug). Technisch oft irrelevant ('x' funktioniert). |
| _data required | string Default: "routes/click-tt+/$association+/$season+/verein.$clubid.$clubname+/mannschaften" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "club_name": "Borussia Düsseldorf",
- "teams": [
- {
- "team_id": "2953148",
- "team_name": "Erwachsene",
- "group_id": "493079",
- "league_name": "Tischtennis Bundesliga",
- "season": "25/26",
- "table_rank": "1",
- "points_won": "14",
- "points_lost": "4",
- "team_organisation_short": "DTTB"
}
]
}, - "season": "25--26",
- "association": "WTTV",
- "error": "string"
}Lädt den kompletten Spielplan eines Vereins (alle Mannschaften). Entspricht der "Meetings List" (alle Begegnungen sortiert nach Datum).
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| clubId required | string Example: 13118 Die Vereinsnummer |
| clubSlug required | string Default: "x" Example: Borussia_Duesseldorf Name des Vereins (URL-Slug). Technisch oft irrelevant ('x' funktioniert). |
| _data required | string Default: "routes/click-tt+/$association+/$season+/verein.$clubid.$clubname+/spielplan" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "club_name": "Borussia Düsseldorf",
- "meetings": [
- {
- "date": "2019-08-24T14:15:22Z",
- "state": "scheduled",
- "team_home": "string",
- "team_away": "string",
- "team_home_id": "string",
- "team_away_id": "string",
- "matches_won": "string",
- "matches_lost": "string",
- "meeting_id": "string",
- "league_name": "string",
- "league_short_name": "string",
- "location": {
- "label": "string",
- "city": "string"
}
}
]
}, - "season": "25--26",
- "association": "WTTV",
- "error": "string"
}Lädt die Bilanzen aller Spieler eines Vereins, gruppiert nach Mannschaften. Ideal für eine Übersicht: "Wer spielt am erfolgreichsten in dieser Saison?".
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| clubId required | string Example: 13118 Die Vereinsnummer |
| clubSlug required | string Default: "x" Example: Borussia_Duesseldorf Name des Vereins (URL-Slug). Technisch oft irrelevant ('x' funktioniert). |
| filter required | string Default: "gesamt" Enum: "gesamt" "vr" "rr" Zeitraum-Filter (gesamt, vr = Vorrunde, rr = Rückrunde) |
| _data required | string Default: "routes/click-tt+/$association+/$season+/verein.$clubid.$clubname+/bilanzen.$filter" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "club_name": "Borussia Düsseldorf",
- "team_balances": [
- {
- "team_id": "2953148",
- "team_name": "Erwachsene",
- "league_name": "Tischtennis Bundesliga",
- "player_balances": [
- {
- "player_id": "NU7535",
- "player_firstname": "Dang",
- "player_lastname": "Qiu",
- "meetings_count": 0,
- "points_won": 0,
- "points_lost": 0
}
]
}
]
}, - "season": "25--26",
- "association": "WTTV",
- "season_filter": "firstRound",
- "error": "string"
}Lädt die Stammdaten eines Vereins. Enthält:
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| clubId required | string Example: 13118 Die Vereinsnummer |
| clubSlug required | string Default: "x" Example: Borussia_Duesseldorf Name des Vereins (URL-Slug). Technisch oft irrelevant ('x' funktioniert). |
| _data required | string Default: "routes/click-tt+/$association+/$season+/verein.$clubid.$clubname+/info" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "club_name": "Borussia Düsseldorf",
- "club_number": "13118",
- "founded_year": "string",
- "club_colors": "string",
- "website": "www.beispiel-verein.de",
- "contacts": [
- {
- "label": "Kontaktadresse",
- "contact_name": "Geschäftsstelle",
- "street": "string",
- "zipcode": "string",
- "city": "string",
- "phone_home": "string",
- "phone_work": "string",
- "phone_mobile": "string",
- "email_home": "string",
- "email_work": "string",
- "website": "string"
}
], - "venues": [
- {
- "label": "Spiellokal 1",
- "contact_name": "ARAG CenterCourt",
- "street": "string",
- "zipcode": "string",
- "city": "string",
- "website": "string"
}
]
}, - "season": "25--26",
- "association": "WTTV",
- "error": "string"
}Liga-Strukturen: Tabellen, Bilanzen, Ranglisten, Kontakte, Meldungen. Enthält auch die Liga-Hierarchie zum Navigieren durch Wettbewerbe.
Gibt die aktuelle Tabelle mit Platzierungen und Vereins-IDs zurück.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| id required | string Example: 499406 |
{- "data": [
- {
- "club_id": "1001",
- "team_name": "TTC Musterstadt I",
- "table_rank": 1
}, - {
- "club_id": "2045",
- "team_name": "SV Beispielhausen II",
- "table_rank": 2
}, - {
- "club_id": "3099",
- "team_name": "FC Testverein III",
- "table_rank": 3
}, - {
- "club_id": "4150",
- "team_name": "DJK Anonymus IV",
- "table_rank": 4
}, - {
- "club_id": "5200",
- "team_name": "SpVgg Platzhalter V",
- "table_rank": 5
}, - {
- "club_id": "6010",
- "team_name": "TSV Unbekannt VI",
- "table_rank": 6
}, - {
- "club_id": "7080",
- "team_name": "SC Lorem Ipsum VII",
- "table_rank": 7
}, - {
- "club_id": "8030",
- "team_name": "SG Zufall VIII",
- "table_rank": 8
}, - {
- "club_id": "9040",
- "team_name": "TTF Demo IX",
- "table_rank": 9
}, - {
- "club_id": "9900",
- "team_name": "TuS Ende der Liste X",
- "table_rank": 10
}
], - "error": null
}Lädt die detaillierte Tabelle direkt aus dem Frontend-Loader.
Wichtig: Dies ist der einzige Weg, um explizit die Vorrunde (vr) oder Rückrunde (rr) abzurufen.
Die "saubere" API /api/league-table ignoriert diesen Filter oft.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| league_slug required | string Example: Tischtennis_Bundesliga Name der Liga (URL-Slug, technischer Wert für API irrelevant) |
| groupId required | string Example: 493079 Die Gruppen-ID |
| filter required | string Default: "gesamt" Enum: "gesamt" "vr" "rr" Zeitraum-Filter (gesamt = Gesamttabelle, vr = Vorrunde/Hinrunde, rr = Rückrunde) |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/tabelle.$filter" Example: _data=routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/tabelle.$filter Muss exakt dieser String sein (URL-encoded beim Aufruf). Interne Remix Route-ID. |
{- "data": {
- "set_count": 828,
- "game_count": 15462,
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "no_meetings": false,
- "league_table": [
- {
- "club_id": "13118",
- "team_id": "2953148",
- "sets_won": 80,
- "tendency": "steady",
- "games_won": 1328,
- "sets_lost": 55,
- "team_name": "Borussia Düsseldorf",
- "games_lost": 1162,
- "points_won": 14,
- "table_rank": 1,
- "is_excluded": false,
- "matches_won": 22,
- "points_lost": 4,
- "matches_lost": 12,
- "meetings_tie": 0,
- "meetings_won": 7,
- "meetings_lost": 2,
- "sets_relation": "+25",
- "games_relation": "+166",
- "meetings_count": 9,
- "rise_fall_state": "none",
- "is_excluded_date": null,
- "is_excluded_text": null,
- "matches_relation": "+10"
}, - {
- "club_id": "42",
- "team_id": "2953155",
- "sets_won": 78,
- "tendency": "steady",
- "games_won": 1315,
- "sets_lost": 59,
- "team_name": "SV Werder Bremen",
- "games_lost": 1240,
- "points_won": 14,
- "table_rank": 2,
- "is_excluded": false,
- "matches_won": 22,
- "points_lost": 4,
- "matches_lost": 12,
- "meetings_tie": 0,
- "meetings_won": 7,
- "meetings_lost": 2,
- "sets_relation": "+19",
- "games_relation": "+75",
- "meetings_count": 9,
- "rise_fall_state": "none",
- "is_excluded_date": null,
- "is_excluded_text": null,
- "matches_relation": "+10"
}
], - "games_per_set": 18.7,
- "league_ttr_avg": null,
- "meetings_excerpt": {
- "remarks": null,
- "meetings": [
- {
- "date": "2025-11-16T11:00:00.000+00:00",
- "live": false,
- "state": "done",
- "end_date": "2025-11-16T14:08:00.000+00:00",
- "location": {
- "zip": "40629",
- "city": "Düsseldorf",
- "label": "ARAG CenterCourt",
- "street": "Borussia-Düsseldorf-Straße 1 Parken auf P+R Staufenplatz",
- "country": "Deutschland"
}, - "league_id": "493079",
- "team_away": "TTC Schwalbe Bergneustadt",
- "team_home": "Borussia Düsseldorf",
- "meeting_id": "15348642",
- "round_name": null,
- "round_type": "0",
- "hall_number": "1",
- "is_letter_h": false,
- "is_letter_t": false,
- "is_letter_u": false,
- "is_letter_v": false,
- "is_letter_w": false,
- "is_letter_z": false,
- "league_name": "Tischtennis Bundesliga",
- "matches_won": "3",
- "is_confirmed": false,
- "is_letter_na": false,
- "is_letter_w2": false,
- "matches_lost": "1",
- "team_away_id": "2953190",
- "team_home_id": "2953148",
- "letter_h_info": null,
- "letter_w_info": null,
- "letter_z_info": null,
- "original_date": null,
- "letter_na_info": null,
- "meeting_number": null,
- "league_short_name": "BL1 E",
- "team_away_club_id": "21608",
- "team_home_club_id": "13118",
- "is_meeting_complete": true,
- "has_nu_live_push_data": null,
- "league_org_short_name": "DTTB",
- "nu_score_live_enabled": false,
- "is_provisionally_recorded": false
}
], - "round_type": "mixed",
}
}, - "season_filter": "finalRound",
- "filter": "gesamt",
- "association": "DTTB",
- "error": null,
- "season": "25--26",
- "groupname": "Tischtennis_Bundesliga",
- "urlid": "493079"
}Lädt den Spielplan direkt aus dem Frontend-Loader. Ermöglicht die Filterung nach Vorrunde (vr) und Rückrunde (rr), was über die Standard-API oft nicht möglich ist.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| league_slug required | string Default: "x" Example: Tischtennis_Bundesliga Name der Liga (URL-Slug). Technisch meist irrelevant ('x' funktioniert oft). |
| groupId required | string Example: 493079 Die Gruppen-ID |
| filter required | string Default: "gesamt" Enum: "gesamt" "vr" "rr" Zeitraum-Filter (gesamt = Gesamtspielplan, vr = Vorrunde/Hinrunde, rr = Rückrunde) |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/spielplan.$filter" Example: _data=routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/spielplan.$filter Muss exakt dieser String sein (URL-encoded beim Aufruf). Interne Remix Route-ID für Spielplan. |
{- "season": "25--26",
- "association": "DTTB",
- "groupname": "Tischtennis_Bundesliga",
- "urlid": "493079",
- "season_filter": "firstRound",
- "seasonType": "",
- "data": {
- "remarks": null,
- "meetings": [
- {
- "2025-08-27": [
- {
- "date": "2025-08-27T17:00:00.000+00:00",
- "live": false,
- "state": "done",
- "end_date": "2025-08-27T20:36:00.000+00:00",
- "location": {
- "zip": "99974",
- "city": "Mühlhausen",
- "label": "LOTTO Thüringen Center Court",
- "street": "Kristanplatz 10",
- "country": "Deutschland"
}, - "league_id": "493079",
- "team_away": "ASC Grünwettersbach",
- "team_home": "Post SV Mühlhausen",
- "meeting_id": "15285692",
- "round_name": null,
- "round_type": "0",
- "hall_number": "1",
- "is_letter_h": false,
- "is_letter_t": false,
- "is_letter_u": false,
- "is_letter_v": false,
- "is_letter_w": false,
- "is_letter_z": false,
- "league_name": "Tischtennis Bundesliga",
- "matches_won": "3",
- "is_confirmed": true,
- "is_letter_na": false,
- "is_letter_w2": false,
- "matches_lost": "1",
- "team_away_id": "2953167",
- "team_home_id": "2953194",
- "letter_h_info": null,
- "letter_w_info": null,
- "letter_z_info": null,
- "original_date": null,
- "letter_na_info": null,
- "meeting_number": null,
- "league_short_name": "BL1 E",
- "team_away_club_id": "412",
- "team_home_club_id": "109017",
- "is_meeting_complete": true,
- "league_org_short_name": "DTTB",
- "nu_score_live_enabled": false,
- "is_provisionally_recorded": false
}
]
}, - {
- "2025-08-30": [
- {
- "date": "2025-08-30T13:00:00.000+00:00",
- "live": false,
- "state": "done",
- "end_date": "2025-08-30T16:25:00.000+00:00",
- "location": {
- "zip": "28205",
- "city": "Bremen",
- "label": "Klaus-Dieter-Fischer-Halle",
- "street": "Hermine-Berthold-Straße 20",
- "country": "Deutschland"
}, - "league_id": "493079",
- "team_away": "TTC OE Clarity Telefonie-Systeme Bad Homburg e.V.",
- "team_home": "SV Werder Bremen",
- "meeting_id": "15285897",
- "round_name": null,
- "round_type": "0",
- "hall_number": "1",
- "is_letter_h": false,
- "is_letter_t": false,
- "is_letter_u": false,
- "is_letter_v": false,
- "is_letter_w": false,
- "is_letter_z": false,
- "league_name": "Tischtennis Bundesliga",
- "matches_won": "3",
- "is_confirmed": true,
- "is_letter_na": false,
- "is_letter_w2": false,
- "matches_lost": "2",
- "team_away_id": "2953217",
- "team_home_id": "2953155",
- "letter_h_info": null,
- "letter_w_info": null,
- "letter_z_info": null,
- "original_date": null,
- "letter_na_info": null,
- "meeting_number": null,
- "league_short_name": "BL1 E",
- "team_away_club_id": "31024",
- "team_home_club_id": "42",
- "is_meeting_complete": true,
- "league_org_short_name": "DTTB",
- "nu_score_live_enabled": false,
- "is_provisionally_recorded": false
}
]
}
], - "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "round_type": "mixed",
}, - "error": null
}Lädt die Kontaktseite einer Liga. Enthält oft:
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| league_slug required | string Default: "x" Example: Tischtennis_Bundesliga Name der Liga (URL-Slug). |
| groupId required | string Example: 493079 Die Gruppen-ID |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/kontakte" Example: _data=routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/kontakte Muss exakt dieser String sein (URL-encoded beim Aufruf). Interne Remix Route-ID für Kontakte. |
{- "data": {
- "teams": [
- {
- "club_id": "13118",
- "club_name": "Borussia Düsseldorf",
- "team_name": "Borussia Düsseldorf",
- "team_contact": {
- "city": "Düsseldorf",
- "label": "Mannschaftskontakt",
- "street": "Borussia-Düsseldorf-Straße 1",
- "zipcode": "40629",
- "email_home": "m.mustermann@beispiel-verein.de",
- "email_work": null,
- "phone_home": null,
- "phone_work": "0211-1234567",
- "contact_name": "Max Mustermann",
- "phone_mobile": "0170-1234567"
}, - "club_contacts": [
- {
- "city": "Düsseldorf",
- "label": "Kontaktadresse",
- "street": "Borussia-Düsseldorf-Straße 1",
- "website": "www.beispiel-verein.de",
- "zipcode": "40629",
- "email_home": "info@beispiel-verein.de",
- "email_work": null,
- "phone_home": "ACHTUNG EINLADUNGEN UNTER AMATEURABT.",
- "phone_work": "0211 / 99179-0",
- "contact_name": "Geschäftsstelle",
- "phone_mobile": null
}, - {
- "city": "Düsseldorf",
- "label": "Spiellokal 1",
- "street": "Borussia-Düsseldorf-Straße 1 Parken auf P+R Staufenplatz",
- "website": "www.beispiel-verein.de",
- "zipcode": "40629",
- "email_home": "info@beispiel-verein.de",
- "email_work": null,
- "phone_home": "0211 / 99179-0",
- "phone_work": null,
- "contact_name": "ARAG CenterCourt",
- "phone_mobile": null
}
]
}, - {
- "club_id": "42",
- "club_name": "SV Werder Bremen",
- "team_name": "SV Werder Bremen",
- "team_contact": {
- "city": "Bremen",
- "label": "Mannschaftskontakt",
- "street": "Musterstraße 9",
- "zipcode": "28279",
- "email_home": "e.musterfrau@beispiel.de",
- "email_work": null,
- "phone_home": "0421-7654321",
- "phone_work": "0421-9876543",
- "contact_name": "Erika Musterfrau",
- "phone_mobile": "0171-7654321"
}, - "club_contacts": [
- {
- "city": null,
- "label": "Kontaktadresse",
- "street": null,
- "zipcode": null,
- "email_home": "abteilungsleiter@beispiel.de",
- "email_work": null,
- "phone_home": null,
- "phone_work": null,
- "contact_name": "Peter Beispiel",
- "phone_mobile": "0172-1234567"
}, - {
- "city": "Bremen",
- "label": "Spiellokal 1",
- "street": "Hermine-Berthold-Straße 20",
- "website": null,
- "zipcode": "28205",
- "email_home": null,
- "email_work": null,
- "phone_home": null,
- "phone_work": null,
- "contact_name": "Klaus-Dieter-Fischer-Halle",
- "phone_mobile": null
}
]
}
], - "head_infos": {
- "season": null,
- "play_mode": null,
- "league_name": null,
- "championship": null,
- "gender_age_group": null,
- "organization_short": "DTTB"
}, - "no_meetings": false,
- "season_list": [
- {
- "name": "24/25",
- "full_name": "2024/25"
}, - {
- "name": "25/26",
- "full_name": "2025/26"
}
], - "group_leader": {
- "city": "Fulda",
- "street": "Beispielstraße 12",
- "zipcode": "36037",
- "email_home": "staffelleiter@beispiel.de",
- "email_work": null,
- "phone_home": null,
- "phone_work": "0661-1234567",
- "contact_name": "Hans Beispiel",
- "phone_mobile": null
}
}, - "season": "25--26",
- "association": "DTTB",
- "groupname": "Tischtennis_Bundesliga",
- "urlid": "493079",
- "error": null
}Lädt die Bilanzübersicht (Siege/Niederlagen pro Person) für die gesamte Liga. Wird genutzt, um die "Bilanzen"-Reiter auf der Webseite darzustellen.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 |
| league_slug required | string Example: Tischtennis_Bundesliga |
| groupId required | string Example: 493079 |
| filter required | string Default: "gesamt" Enum: "gesamt" "vr" "rr" Zeitraum: Vorrunde (vr), Rückrunde (rr) oder Gesamt. |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/bilanzuebersichten.$filter" Example: _data=routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/bilanzuebersichten.$filter Muss exakt dieser String sein (URL-encoded beim Aufruf). Interne Remix Route-ID für Bilanzübersichten. |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "no_meetings": false,
- "season_list": [
- {
- "name": "24/25",
- "full_name": "2024/25"
}, - {
- "name": "25/26",
- "full_name": "2025/26"
}
], - "balancesheet": [
- {
- "club_id": "13118",
- "team_id": "2953148",
- "team_name": "Borussia Düsseldorf",
- "team_total_points_won": 22,
- "team_double_points_won": null,
- "team_single_points_won": 22,
- "team_total_points_lost": 12,
- "team_double_points_lost": null,
- "team_single_points_lost": 12,
- "double_player_statistics": null,
- "single_player_statistics": [
- {
- "player_id": "NU7535",
- "points_won": "5",
- "player_rank": "1",
- "points_lost": "0",
- "team_number": "1",
- "meeting_count": "4",
- "player_lastname": "Qiu",
- "player_firstname": "Dang",
- "single_statistics": [
- {
- "points_won": "2",
- "points_lost": "0",
- "opponent_rank": "1"
}, - {
- "points_won": "2",
- "points_lost": "0",
- "opponent_rank": "2"
}, - {
- "points_won": "1",
- "points_lost": "0",
- "opponent_rank": "3"
}
]
}, - {
- "player_id": "NU1462405",
- "points_won": "7",
- "player_rank": "2",
- "points_lost": "2",
- "team_number": "1",
- "meeting_count": "8",
- "player_lastname": "Källberg",
- "player_firstname": "Anton",
- "single_statistics": [
- {
- "points_won": "3",
- "points_lost": "1",
- "opponent_rank": "1"
}, - {
- "points_won": "0",
- "points_lost": "1",
- "opponent_rank": "2"
}, - {
- "points_won": "4",
- "points_lost": "0",
- "opponent_rank": "3"
}
]
}
]
}, - {
- "club_id": "42",
- "team_id": "2953155",
- "team_name": "SV Werder Bremen",
- "team_total_points_won": 22,
- "team_double_points_won": 2,
- "team_single_points_won": 20,
- "team_total_points_lost": 12,
- "team_double_points_lost": 0,
- "team_single_points_lost": 12,
- "double_player_statistics": [
- {
- "points_won": "1",
- "id_player_1": "NU1463029",
- "id_player_2": "NU1464105",
- "points_lost": "0",
- "meeting_count": "1",
- "lastname_player_1": "Gerassimenko",
- "lastname_player_2": "Bertrand",
- "firstname_player_1": "Kirill",
- "firstname_player_2": "Irvin"
}
], - "single_player_statistics": [
- {
- "player_id": "NU1463029",
- "points_won": "6",
- "player_rank": "1",
- "points_lost": "6",
- "team_number": "1",
- "meeting_count": "9",
- "player_lastname": "Gerassimenko",
- "player_firstname": "Kirill",
- "single_statistics": [
- {
- "points_won": "1",
- "points_lost": "2",
- "opponent_rank": "1"
}, - {
- "points_won": "4",
- "points_lost": "3",
- "opponent_rank": "2"
}, - {
- "points_won": "1",
- "points_lost": "1",
- "opponent_rank": "3"
}
]
}
]
}
]
}, - "season": "25--26",
- "association": "DTTB",
- "groupname": "Tischtennis_Bundesliga",
- "season_filter": "firstRound",
- "urlid": "493079",
- "error": null
}Lädt die offiziellen Mannschaftsmeldungen der Gruppe. Zeigt die Aufstellungsreihenfolge (Brett 1.1, 1.2...), den Q-TTR-Wert der Meldung und Status-Vermerke (SBE, NES).
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 |
| league_slug required | string Example: Tischtennis_Bundesliga |
| groupId required | string Example: 493079 |
| filter required | string Default: "vr" Enum: "vr" "rr" Vorrunde (vr) oder Rückrunde (rr). Bestimmt die Aufstellung der Halbserie. |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/mannschaftsmeldungen.$filter" Example: _data=routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/mannschaftsmeldungen.$filter Muss exakt dieser String sein (URL-encoded beim Aufruf). Interne Remix Route-ID für Mannschaftsmeldungen. |
{- "data": {
- "teampools": [
- {
- "clubnr": "13118",
- "teampool": [
- {
- "player_id": "NU7535",
- "player_qttr": 2623,
- "player_rank": 1,
- "team_number": 1,
- "player_status": null,
- "foreigner_type": "eA",
- "player_lastname": "Qiu",
- "player_firstname": "Dang"
}
], - "club_name": "Borussia Düsseldorf",
- "team_name": "Borussia Düsseldorf",
- "organisation_short": "WTTV"
}
], - "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "no_meetings": false,
- "season_list": [
- {
- "name": "25/26",
- "full_name": "2025/26"
}
], - "meetings_excerpt": {
- "remarks": "string",
- "meetings": [
- { }
], - "round_type": "mixed",
}
}, - "season": "25--26",
- "association": "WTTV",
- "groupname": "Tischtennis_Bundesliga",
- "urlid": "493079",
- "error": "string"
}Lädt die Ranglisten der Gruppe (Top-Bilanzen). Unterstützt Filterung nach Einzel (spieler) oder Doppel sowie nach Vor-/Rückrunde.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 |
| league_slug required | string Default: "x" Example: Tischtennis_Bundesliga |
| groupId required | string Example: 493079 |
| match_type required | string Default: "spieler" Enum: "spieler" "doppel" Auswahl zwischen Einzel-Rangliste ('spieler') oder Doppel-Rangliste ('doppel'). |
| filter required | string Default: "vr" Enum: "gesamt" "vr" "rr" Zeitraum: Vorrunde (vr), Rückrunde (rr) oder Gesamt. |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/gruppen-ranglisten.$match_type.$filter" Example: _data=routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/gruppen-ranglisten.$match_type.$filter Muss exakt dieser String sein (URL-encoded beim Aufruf). Interne Remix Route-ID für Gruppen-Ranglisten. |
{- "data": {
- "ranking": [
- {
- "clubnr": "04029",
- "team_id": "2953157",
- "player_id": "NU1829889",
- "team_name": "TTF Liebherr Ochsenhausen",
- "player_rank": 1,
- "player_rating": "0.000",
- "player_lastname": "Chirita",
- "player_firstname": "Iulian",
- "player_team_rank": 1,
- "player_matches_won": 9,
- "player_team_number": 1,
- "player_matches_lost": 0,
- "player_position_statistics": [
- {
- "position": 1,
- "position_matches_won": 4,
- "position_matches_lost": 0
}
]
}
], - "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "no_meetings": false,
- "season_list": [
- {
- "name": "25/26",
- "full_name": "2025/26"
}
], - "meetings_excerpt": {
- "remarks": "string",
- "meetings": [
- { }
], - "round_type": "mixed",
}
}, - "season": "25--26",
- "association": "WTTV",
- "groupname": "Tischtennis_Bundesliga",
- "match_type": "spieler",
- "urlid": "493079",
- "season_filter": "firstRound",
- "error": "string"
}Lädt die Zuschauerzahlen der Liga als Matrix. Zeigt an, wie viele Zuschauer bei welcher Begegnung anwesend waren (nur in Ligen relevant, wo das erfasst wird).
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 |
| league_slug required | string Default: "x" Example: Tischtennis_Bundesliga |
| groupId required | string Example: 493079 |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/zuschauer-matrix" Example: _data=routes/click-tt+/$association+/$season+/$type+/$groupname.gruppe.$urlid+/zuschauer-matrix Muss exakt dieser String sein (URL-encoded beim Aufruf). Interne Remix Route-ID für Zuschauer-Matrix. |
{- "data": {
- "means": [
- {
- "team_guest_id": "2953148",
- "team_guest_mean_attendance": "635"
}
], - "teams": [
- {
- "team_id": "2953148",
- "team_name": "Borussia Düsseldorf",
- "team_rank": "1",
- "meeting_attendances": [
- {
- "opponent_name": "SV Werder Bremen",
- "opponent_rank": "2",
- "opponent_team_id": "2953155",
- "meetings_attendance": "650"
}
], - "team_home_mean_attendance": "720",
- "team_home_total_attendance": "2880"
}
], - "totals": [
- {
- "team_guest_id": "2953148",
- "team_guest_total_attendance": "3177"
}
], - "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "no_meetings": false,
- "season_list": [
- {
- "name": "25/26",
- "full_name": "2025/26"
}
], - "meetings_excerpt": {
- "remarks": "string",
- "meetings": [
- { }
], - "round_type": "mixed",
}
}, - "season": "25--26",
- "association": "WTTV",
- "groupname": "Tischtennis_Bundesliga",
- "urlid": "493079",
- "error": "string"
}Lädt den Spielplan einer gesamten Region (z.B. Kreis oder Bezirk). Ermöglicht Filterung nach Datum, Altersklasse und Heim-/Auswärtsspielen.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: 25--26 Saison (z.B. 25--26) |
| championship required | string Example: Rhein-Wupper_25--26 Name der Region/Ebene (URL-Slug) |
| date_start | string <date> Example: date_start=2025-11-03 Startdatum für den Filter (YYYY-MM-DD) |
| date_end | string <date> Example: date_end=2025-12-03 Enddatum für den Filter (YYYY-MM-DD) |
| gender_age_group | string Default: "all" Enum: "all" "general" "junior" "seniors" Filter nach Altersklasse:
|
| include_guest_meetings | string Value: "on" Wenn gesetzt ( |
| _data required | string Default: "routes/click-tt+/$association+/$season+/regionsspielplan.$championship" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": {
- "head_infos": {
- "season": "25/26",
- "play_mode": "TTBL Spielsystem inkl. Doppel",
- "league_name": "Tischtennis Bundesliga",
- "championship": "DTTB 25/26",
- "gender_age_group": "Erwachsene",
- "organization_short": "DTTB"
}, - "championship_name": "Rhein-Wupper 25/26",
- "filter": {
- "date_start": "2019-08-24",
- "date_end": "2019-08-24",
- "gender_age_group": "string",
- "include_guest_meetings": true
}, - "meetings": [
- {
- "date": "2019-08-24T14:15:22Z",
- "state": "scheduled",
- "team_home": "string",
- "team_away": "string",
- "team_home_id": "string",
- "team_away_id": "string",
- "matches_won": "string",
- "matches_lost": "string",
- "meeting_id": "string",
- "league_name": "string",
- "league_short_name": "string",
- "location": {
- "label": "string",
- "city": "string"
}
}
]
}, - "season": "25--26",
- "association": "WTTV",
- "error": "string"
}Lädt die Übersicht einer Liga-Ebene (z.B. Bezirk, Kreis).
Liefert eine Liste der enthaltenen Ligen und Gruppen inkl. deren groupId (group_urlid).
Nützlich zum Ermitteln von groupIds für andere Endpunkte.
⚠️ Experimentell: Die genaue URL-Struktur variiert je nach Verband.
| association required | string (Association) Enum: "DTTB" "BaTTV" "TTBW" "ByTTV" "TTVB" "FTTB" "HaTTV" "HeTTV" "TTVMV" "TTVN" "WTTV" "PTTV" "RTTVR" "STTB" "TTVSA" "TTTV" Example: WTTV Kürzel des Landesverbandes. Die wichtigsten: DTTB (Bundesebene), WTTV (NRW), ByTTV (Bayern), HeTTV (Hessen). |
| season required | string Example: P_25--26 Saison (z.B. 25--26 für Liga, P_25--26 für Pokal) |
| type required | string Default: "pokalspiele" Enum: "ligen" "pokalspiele" Art des Wettbewerbs |
| championship required | string Example: Rhein-Wupper_P_25--26 Name der Ebene/Meisterschaft (URL-Slug, muss zur Season passen) |
| _data required | string Default: "routes/click-tt+/$association+/$season+/$type+/$championship" Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf). |
{- "data": [
- {
- "contest": "Erwachsene",
- "groups": [
- {
- "name": "Pokal Bezirksoberliga",
- "league_id": "233041",
- "group_urlid": "497958"
}
]
}
], - "higherLeagues": [
- {
- "type": "PARENT",
- "regionName": "Nordrhein-Westfalen",
- "championshipName": "WTTV Pokal Saison 2025/26",
- "federationNickname": "WTTV"
}
], - "lowerLeagues": [ ],
- "championship": "Rhein-Wupper P 25/26",
- "association": "WTTV",
- "season": "P_25--26",
- "seasonType": "P",
- "error": "string"
}Lädt den aktuellen Live-Status einer laufenden oder abgeschlossenen Begegnung.
Enthält Spielstände, Aufstellungen und Einzelergebnisse.
Öffentlich zugänglich.
| meeting_id required | string Example: 15348526 Meeting/Begegnungs-ID |
{- "data": {
- "live": false,
- "is_completed": true,
- "has_nu_live_push_data": false,
- "scheduled": "2025-09-16T17:00:00.000+00:00",
- "team_home": "ASC Grünwettersbach",
- "team_guest": "Borussia Düsseldorf",
- "matches_home": 3,
- "matches_guest": 1,
- "sets_home": 9,
- "sets_guest": 5,
- "match": [
- {
- "match_name": "1-2",
- "game_type": "single",
- "sets_home": 3,
- "sets_guest": 1,
- "set1_home": 1,
- "set1_guest": 11,
- "mm_player11": {
- "firstname": "Hiroto",
- "lastname": "Shinozuka",
- "person_id": "NU1911451"
}, - "mm_player21": {
- "firstname": "Yongyin",
- "lastname": "Li",
- "person_id": "NU2250510"
}
}
]
}, - "error": null
}