myTischtennis API (1.0.0)

Download OpenAPI specification:

Inoffizielle API-Dokumentation

⚠️ 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

Warum diese Dokumentation?

mytischtennis.de stellt keine offizielle API-Dokumentation bereit, obwohl alle hier dokumentierten Endpunkte öffentlich zugänglich sind. Diese Intransparenz:

  • Verhindert legitime Nutzung durch Vereine (z.B. für eigene Vereins-Apps, Widgets)
  • Schützt niemanden – alle mit Browser-Entwicklertools können diese Endpunkte sehen
  • Erschwert Innovation in der Tischtennis-Community

Diese Dokumentation soll zeigen, was technisch bereits öffentlich ist, und eine Diskussion über Open Data im deutschen Tischtennissport anstoßen.

Disclaimer

  • Diese Dokumentation steht in keiner Verbindung zum DTTB oder myTischtennis.de
  • Die Nutzung erfolgt auf eigene Verantwortung
  • Bitte respektiere die Nutzungsbedingungen von myTischtennis.de

Technische Details

Authentifizierung

Einige Endpunkte erfordern eine Cookie-basierte Authentifizierung (sb-10-auth-token). Öffentliche Endpunkte sind mit security: [] gekennzeichnet.

Rate Limiting

Die API verwendet Rate Limiting (90 Requests pro Stunde). Bei Überschreitung wird HTTP 429 zurückgegeben.

Suche

Globale Suche nach Spieler*innen und Vereinen. Öffentlich zugänglich (Rate-Limited auf 90 Requests/Stunde).

Spieler*innen suchen

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).

Request Body schema: application/x-www-form-urlencoded
required
query
required
string

Suchbegriff

page
integer
Default: 1

Seitennummer für Pagination

pagesize
integer
Default: 4

Anzahl Ergebnisse pro Seite

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "total_count": 9,
  • "pages_count": 3,
  • "page": 1,
  • "pagesize": 4
}

Vereine suchen

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).

Request Body schema: application/x-www-form-urlencoded
required
query
required
string

Suchbegriff

page
integer
Default: 1

Seitennummer für Pagination

pagesize
integer
Default: 4

Anzahl Ergebnisse pro Seite

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "total_count": 12,
  • "pages_count": 3,
  • "page": 1,
  • "pagesize": 4
}

Spieler*innen & TTR

TTR-Werte, Statistiken, Head-to-Head und Ranglisten. Enthält sowohl öffentliche als auch authentifizierte Endpunkte.

Andro Ranking Regionen abrufen

Lädt die verfügbaren Regionen für die Andro-Ranglisten-Filter.

Hierarchie: Verband → Bezirk → Kreis (nicht alle Bezirke haben Kreise)

Verwendung:

  1. Ohne Parameter: Alle Landesverbände abrufen
  2. Mit as=<verband>&di=all: Bezirke für einen Verband abrufen
  3. Mit as=<verband>&di=<bezirk>: Kreise für einen Bezirk abrufen (falls vorhanden)
query Parameters
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:

  • DE.SW.R5.01 - Baden
  • DE.SU.R1.02 - Bayern
  • DE.NO.R6.03 - Berlin
  • DE.NO.R6.04 - Brandenburg
  • DE.NO.R6.05 - Bremen
  • DE.NO.R6.06 - Hamburg
  • DE.WE.R4.07 - Hessen
  • DE.NO.R6.08 - Mecklenburg-Vorpommern
  • DE.NO.R2.09 - Niedersachsen
  • DE.WE.R3.19 - Nordrhein-Westfalen (WTTV)
  • DE.SW.R7.10 - Pfalz
  • DE.SW.R7.12 - Rheinland-Rheinhessen
  • DE.SW.R7.13 - Saarland
  • DE.SU.R8.14 - Sachsen
  • DE.SU.R8.15 - Sachsen-Anhalt
  • DE.NO.R6.16 - Schleswig-Holstein
  • DE.SW.R5.20 - TTBW
  • DE.SU.R8.18 - Thüringen
di
string
Default: "all"
Example: di=all

Bezirk-Code (aus Response) oder all für alle Bezirke des Verbands.

Responses

Response samples

Content type
application/json
{
  • "associations": [
    ],
  • "districts": [
    ],
  • "areas": [
    ]
}

Match-Statistiken abrufen

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.

Authorizations:
cookieAuth
path Parameters
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

Responses

Response samples

Content type
application/json
Example
{
  • "data": {
    }
}

Head-to-Head Vergleich

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.

Authorizations:
cookieAuth
Request Body schema: application/x-www-form-urlencoded
required
other_user
required
string

Spieler-ID des Gegners (internal_id ohne "NU"-Präfix)

Responses

Response samples

Content type
application/json
{
  • "data": [ ]
}

TTR-Historie abrufen

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.

Authorizations:
cookieAuth
path Parameters
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

Responses

Response samples

Content type
application/json
Example
{
  • "data": {
    }
}

TTR Historie via NUID

Authorizations:
cookieAuth
path Parameters
nuid
required
string
Example: NU7535

Nationale User ID

Responses

Response samples

Content type
application/json
Example
{
  • "ttr": 2618,
  • "event": [
    ],
  • "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"
}

Aktuellen TTR-Wert abrufen

Hinweis: Dieser Endpunkt benötigt Authentifizierung. Ohne Auth wird ein PT403 Fehler zurückgegeben.

Authorizations:
cookieAuth
path Parameters
nuid
required
string
Example: NU7535

Nationale User ID

Responses

Response samples

Content type
application/json
Example
{
  • "ttr": 2618,
  • "error": null
}

Andro-Rangliste abrufen

Lädt die globale TTR-Rangliste mit umfangreichen Filtermöglichkeiten.

TTR vs Q-TTR (fedRank in Response):

  • Mit Authentifizierung: Aktueller TTR (Default), wechselbar zu Q-TTR via current-ranking=no
  • Ohne Authentifizierung: Nur Q-TTR verfügbar, current-ranking Parameter wird ignoriert

Zugriffslevel (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.

Authorizations:
NonecookieAuth
query Parameters
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.

  • Parameter vorhanden (on): Nur Deutsche und Gleichgestellte
  • Parameter nicht gesetzt: Alle Nationalitäten (Default)
all-players
string
Value: "on"

Checkbox: Alle Spielberechtigten.

  • Parameter vorhanden (on): Alle Spielberechtigten anzeigen
  • Parameter nicht gesetzt: Standardfilter (Default)
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: yes = Aktueller TTR, no = Q-TTR.

Verhalten abhängig von Authentifizierung:

  • Mit Auth: Default yes (aktueller TTR), wechselbar
  • Ohne Auth: Immer Q-TTR, Parameter wird ignoriert
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: all-players=on muss gesetzt sein.

Werte: all (alle Verbände) oder Verband-Code aus /api/andro-ranking/regions. Beispiele: DE.WE.R3.19 (WTTV), DE.SU.R1.02 (Bayern), etc.

di
string
Example: di=DE.WE.R3.19.13

Optional, nur für Deutschland. Filter auf Bezirk.

Voraussetzung: as muss auf einen spezifischen Verband gesetzt sein (nicht all).

Werte aus /api/andro-ranking/regions?as=<verband>&di=all. Beispiel: DE.WE.R3.19.13 (Rhein-Wupper im WTTV)

area
string
Example: area=DE.NO.R6.08.01.01

Optional, nur für Deutschland. Filter auf Kreis (tiefste Ebene).

Voraussetzung: di muss auf einen spezifischen Bezirk gesetzt sein, der Kreise hat.

Nicht alle Bezirke haben Kreise! Prüfen via /api/andro-ranking/regions?as=<verband>&di=<bezirk>. Beispiel: DE.NO.R6.08.01.01 (Kreis Ludwigslust-Parchim in Mecklenburg-Vorpommern)

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 routes/$ sein (Catch-All Splat Route).

Responses

Response samples

Content type
application/json
{
  • "blockLoaderData": {
    },
  • "userContentAccessLevel": "premium",
}

Mannschaften

Mannschafts-bezogene Daten: Aufstellungen, Bilanzen, Spielpläne, Infos.

Mannschaftsspielplan abrufen

Lädt den Spielplan einer Mannschaft.

Liefert alle Begegnungen mit Gegner, Datum und Ergebnis (falls gespielt).

Öffentlich zugänglich.

query Parameters
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")

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "error": null
}

Aufstellung einer Mannschaft abrufen

Lädt die Aufstellung einer Mannschaft mit Rangpositionen.

Gibt die Namen, NU-IDs und Rangfolge der gemeldeten Personen zurück.

Öffentlich zugänglich.

query Parameters
teamId
required
string
Example: teamId=2953148

Eindeutige Team-ID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "error": null
}

Mannschafts-Spielerbilanzen abrufen

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.

path Parameters
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)

query Parameters
_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).

Responses

Response samples

Content type
application/json
{}

Mannschafts-Spielplan abrufen

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.

path Parameters
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)

query Parameters
_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).

Responses

Response samples

Content type
application/json
{}

Mannschafts-Infos abrufen

Lädt allgemeine Infos zur Mannschaft. Enthält meist:

  • Mannschaftsführung (Kontakt)
  • Spiellokal (Adresse, Anfahrt)
  • Mannschaftsfoto (falls vorhanden)
path Parameters
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)

query Parameters
_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).

Responses

Response samples

Content type
application/json
{}

Vereine

Vereins-bezogene Daten: Teams, Bilanzen, Spielpläne, Stammdaten.

Teams eines Vereins abrufen

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.

query Parameters
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.)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "error": null
}

Vereins-Mannschaften abrufen

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.

path Parameters
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).

query Parameters
_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).

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season": "25--26",
  • "association": "WTTV",
  • "error": "string"
}

Vereins-Spielplan abrufen

Lädt den kompletten Spielplan eines Vereins (alle Mannschaften). Entspricht der "Meetings List" (alle Begegnungen sortiert nach Datum).

path Parameters
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).

query Parameters
_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).

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season": "25--26",
  • "association": "WTTV",
  • "error": "string"
}

Vereins-Bilanzen abrufen

Lädt die Bilanzen aller Spieler eines Vereins, gruppiert nach Mannschaften. Ideal für eine Übersicht: "Wer spielt am erfolgreichsten in dieser Saison?".

path Parameters
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)

query Parameters
_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).

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season": "25--26",
  • "association": "WTTV",
  • "season_filter": "firstRound",
  • "error": "string"
}

Vereins-Infos abrufen

Lädt die Stammdaten eines Vereins. Enthält:

  • Kontaktadressen (Vereinsführung)
  • Spiellokale (Adressen & Anfahrt)
  • Allgemeine Daten (Gründungsjahr, Vereinsfarben, Homepage)
path Parameters
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).

query Parameters
_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).

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season": "25--26",
  • "association": "WTTV",
  • "error": "string"
}

Ligen & Gruppen

Liga-Strukturen: Tabellen, Bilanzen, Ranglisten, Kontakte, Meldungen. Enthält auch die Liga-Hierarchie zum Navigieren durch Wettbewerbe.

Ligatabelle abrufen

Gibt die aktuelle Tabelle mit Platzierungen und Vereins-IDs zurück.

path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "error": null
}

Liga-Tabelle abrufen

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.

path Parameters
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)

query Parameters
_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.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season_filter": "finalRound",
  • "filter": "gesamt",
  • "association": "DTTB",
  • "error": null,
  • "season": "25--26",
  • "groupname": "Tischtennis_Bundesliga",
  • "urlid": "493079"
}

Gruppen-Spielplan abrufen

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.

path Parameters
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)

query Parameters
_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.

Responses

Response samples

Content type
application/json
{
  • "season": "25--26",
  • "association": "DTTB",
  • "groupname": "Tischtennis_Bundesliga",
  • "urlid": "493079",
  • "season_filter": "firstRound",
  • "seasonType": "",
  • "data": {
    },
  • "error": null
}

Gruppen-Kontakte abrufen

Lädt die Kontaktseite einer Liga. Enthält oft:

  • Staffelleitung (Kontaktdaten)
  • Mannschaftsführung aller Teams
  • Spiellokale (Adressen)
path Parameters
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

query Parameters
_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.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season": "25--26",
  • "association": "DTTB",
  • "groupname": "Tischtennis_Bundesliga",
  • "urlid": "493079",
  • "error": null
}

Gruppen-Bilanzen abrufen

Lädt die Bilanzübersicht (Siege/Niederlagen pro Person) für die gesamte Liga. Wird genutzt, um die "Bilanzen"-Reiter auf der Webseite darzustellen.

path Parameters
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.

query Parameters
_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.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season": "25--26",
  • "association": "DTTB",
  • "groupname": "Tischtennis_Bundesliga",
  • "season_filter": "firstRound",
  • "urlid": "493079",
  • "error": null
}

Mannschaftsmeldungen abrufen

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).

path Parameters
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.

query Parameters
_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.

Responses

Response samples

Content type
application/json
{}

Gruppen-Ranglisten abrufen

Lädt die Ranglisten der Gruppe (Top-Bilanzen). Unterstützt Filterung nach Einzel (spieler) oder Doppel sowie nach Vor-/Rückrunde.

path Parameters
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.

query Parameters
_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.

Responses

Response samples

Content type
application/json
{
  • "data": {},
  • "season": "25--26",
  • "association": "WTTV",
  • "groupname": "Tischtennis_Bundesliga",
  • "match_type": "spieler",
  • "urlid": "493079",
  • "season_filter": "firstRound",
  • "error": "string"
}

Zuschauer-Matrix abrufen

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).

path Parameters
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
query Parameters
_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.

Responses

Response samples

Content type
application/json
{
  • "data": {},
  • "season": "25--26",
  • "association": "WTTV",
  • "groupname": "Tischtennis_Bundesliga",
  • "urlid": "493079",
  • "error": "string"
}

Regionsspielplan abrufen

Lädt den Spielplan einer gesamten Region (z.B. Kreis oder Bezirk). Ermöglicht Filterung nach Datum, Altersklasse und Heim-/Auswärtsspielen.

path Parameters
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)

query Parameters
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:

  • all: Alle
  • general: Damen & Herren
  • junior: Jugend & Schüler
  • seniors: Senioren
include_guest_meetings
string
Value: "on"

Wenn gesetzt (on), werden auch Auswärtsspiele angezeigt. Standardmäßig nur Heimspiele.

_data
required
string
Default: "routes/click-tt+/$association+/$season+/regionsspielplan.$championship"

Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf).

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "season": "25--26",
  • "association": "WTTV",
  • "error": "string"
}

Liga-Hierarchie abrufen

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.

path Parameters
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)

query Parameters
_data
required
string
Default: "routes/click-tt+/$association+/$season+/$type+/$championship"

Interne Remix Route-ID (muss exakt dieser String sein, URL-encoded beim Aufruf).

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "higherLeagues": [
    ],
  • "lowerLeagues": [ ],
  • "championship": "Rhein-Wupper P 25/26",
  • "association": "WTTV",
  • "season": "P_25--26",
  • "seasonType": "P",
  • "error": "string"
}

Begegnungen

Live-Daten zu laufenden Begegnungen. Öffentlich zugänglich.

Live-Status einer Begegnung abrufen

Lädt den aktuellen Live-Status einer laufenden oder abgeschlossenen Begegnung.

Enthält Spielstände, Aufstellungen und Einzelergebnisse.

Öffentlich zugänglich.

path Parameters
meeting_id
required
string
Example: 15348526

Meeting/Begegnungs-ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "error": null
}