Zum Artikel Zum Inhaltsverzeichnis Zur Kapitelnavigation

sOU verwendet Cookies für deine Anmeldung und zum Schutz von Formularen. Es gibt keine Analyse- oder Werbecookies und kein Tracking durch Drittanbieter.

Du kannst direkt fortfahren. Nur wenn du „Hinweis 180 Tage ausblenden“ wählst, speichern wir zusätzlich diese Einstellung in deinem Browser.

Workspace- und Creator-API: Referenz

Alle öffentlichen Operationen und Datenschemas mit Berechtigungen, Parametern, vollständigen Anfragen, Antworten, Fehlern und Versionsregeln.

Stand: 28. Oktober 2026 · ca. 117 Minuten Lesezeit

Diese Referenz beschreibt alle 59 veröffentlichten Workspace- und Creator-Operationen sowie 57 Datenschemas. Methoden, Pfade, Pflichtfelder, Grenzen und Antworten stammen aus demselben OpenAPI-Vertrag wie der Download.

OpenAPI-Vertrag herunterladen · Abläufe und API-Schlüssel · OpenAPI 3.0.3 / 1.0.0

Die Beispiele verwenden

Die Beispiele verwenden feste gültige Beispielkennungen und schemafähige Werte. Ersetze Workspace-, Organisations-, HUD- und Ressourcenkennungen durch deine tatsächlich gelesenen Kennungen. Verknüpfte Teams, Wettbewerbe, Maps und HUD-Versionen müssen im Ziel vorhanden sein; lade benötigte Medien zuerst hoch. Passe bei Änderungen die zuletzt gelesene Revision an. Die Beispiele behaupten keine bereits vorhandenen Datensätze oder Berechtigungen.

Die PowerShell-Beispiele lesen deinen Schlüssel aus SOU_WORKSPACE_API_KEY oder SOU_CREATOR_API_KEY. Diese Umgebungsvariablen sind lokale Beispielnamen. Sende den Schlüssel ausschließlich als Authorization: Bearer, niemals als URL-Parameter. Binärbeispiele lesen eine vorhandene passende Datei und übertragen deren Originalbytes.

Authentifizierung und Berechtigungen

CreatorKey

Separater organisationsgebundener Creator-Schlüssel aus /account/api-keys. Jede Operation benötigt die aktuelle ausdrückliche Publisher-Berechtigung. Kein Workspace- oder Desktop-Schlüssel.

{
  "type": "http",
  "scheme": "bearer",
  "bearerFormat": "sou_hud_\u003Cid\u003E_\u003Csecret\u003E",
  "description": "Separate organization-bound creator key from /account/api-keys. Requires current explicit Publisher permission on every operation. Never a workspace or desktop key."
}

WorkspaceKey

Workspace-gebundener API-Schlüssel aus deinem Konto; kein OAuth-Desktop-Token. Ausschließlich in Authorization senden, niemals in einer URL.

{
  "type": "http",
  "scheme": "bearer",
  "bearerFormat": "sou_ws_\u003Cid\u003E_\u003Csecret\u003E",
  "description": "Workspace-bound API key from your account, not an OAuth desktop token. Send only in Authorization; never in a URL."
}

Revisionen, Grenzen und Fehler

Workspace-Schreibzugriffe vergleichen expectedRevision mit dem gespeicherten Zustand. Neue Ressourcen beginnen mit expectedRevision: 0. Jede erfolgreiche Änderung erhöht revision; Löschmarkierungen bleiben erhalten. Änderungen über /changes sind atomar und prüfen alle Revisionen und Verknüpfungen vor der Übernahme. Die HUD-Beschreibung und ihre Medien teilen eine eigene Detailsrevision.

Das gemeinsame Limit beträgt 120 Aufrufe pro Minute je Schlüsselinhaber, über dessen Schlüssel hinweg. Bei 429 gilt Retry-After (60 Sekunden). Bei 409 den aktuellen Zustand neu lesen und abgleichen. Nach verlorener Antwort oder 500 kann ein Schreibzugriff bereits übernommen sein: vor einem erneuten Schreiben Zustand, Revision beziehungsweise Paketversion und SHA-256 prüfen. Für Fehler ohne angegebenes Antwortschema ist kein JSON-Fehlerobjekt zugesichert.

Alle Operationen

Methode und PfadoperationId
GET /api/v1/integration/workspaces/{workspace}/snapshotgetWorkspaceSnapshot
POST /api/v1/integration/workspaces/{workspace}/changesapplyWorkspaceChanges
POST /api/v1/integration/workspaces/{workspace}/media/checkcheckWorkspaceMedia
GET /api/v1/integration/workspaces/{workspace}/media/{name}downloadWorkspaceMedia
PUT /api/v1/integration/workspaces/{workspace}/media/{name}uploadWorkspaceMedia
GET /api/v1/integration/workspaces/{workspace}/teamslistTeams
GET /api/v1/integration/workspaces/{workspace}/teams/{id}getTeam
PUT /api/v1/integration/workspaces/{workspace}/teams/{id}writeTeam
DELETE /api/v1/integration/workspaces/{workspace}/teams/{id}deleteTeam
GET /api/v1/integration/workspaces/{workspace}/playerslistPlayers
GET /api/v1/integration/workspaces/{workspace}/players/{id}getPlayer
PUT /api/v1/integration/workspaces/{workspace}/players/{id}writePlayer
DELETE /api/v1/integration/workspaces/{workspace}/players/{id}deletePlayer
GET /api/v1/integration/workspaces/{workspace}/competitionslistCompetitions
GET /api/v1/integration/workspaces/{workspace}/competitions/{id}getCompetition
PUT /api/v1/integration/workspaces/{workspace}/competitions/{id}writeCompetition
DELETE /api/v1/integration/workspaces/{workspace}/competitions/{id}deleteCompetition
GET /api/v1/integration/workspaces/{workspace}/seasonslistSeasons
GET /api/v1/integration/workspaces/{workspace}/seasons/{id}getSeason
PUT /api/v1/integration/workspaces/{workspace}/seasons/{id}writeSeason
DELETE /api/v1/integration/workspaces/{workspace}/seasons/{id}deleteSeason
GET /api/v1/integration/workspaces/{workspace}/sectionslistSections
GET /api/v1/integration/workspaces/{workspace}/sections/{id}getSection
PUT /api/v1/integration/workspaces/{workspace}/sections/{id}writeSection
DELETE /api/v1/integration/workspaces/{workspace}/sections/{id}deleteSection
GET /api/v1/integration/workspaces/{workspace}/mapslistMaps
GET /api/v1/integration/workspaces/{workspace}/maps/{id}getMap
PUT /api/v1/integration/workspaces/{workspace}/maps/{id}writeMap
DELETE /api/v1/integration/workspaces/{workspace}/maps/{id}deleteMap
GET /api/v1/integration/workspaces/{workspace}/map-poolslistMapPools
GET /api/v1/integration/workspaces/{workspace}/map-pools/{id}getMapPool
PUT /api/v1/integration/workspaces/{workspace}/map-pools/{id}writeMapPool
DELETE /api/v1/integration/workspaces/{workspace}/map-pools/{id}deleteMapPool
GET /api/v1/integration/workspaces/{workspace}/matcheslistMatchs
GET /api/v1/integration/workspaces/{workspace}/matches/{id}getMatch
PUT /api/v1/integration/workspaces/{workspace}/matches/{id}writeMatch
DELETE /api/v1/integration/workspaces/{workspace}/matches/{id}deleteMatch
GET /api/v1/integration/workspaces/{workspace}/startup-configslistStartupConfigs
GET /api/v1/integration/workspaces/{workspace}/startup-configs/{id}getStartupConfig
PUT /api/v1/integration/workspaces/{workspace}/startup-configs/{id}writeStartupConfig
DELETE /api/v1/integration/workspaces/{workspace}/startup-configs/{id}deleteStartupConfig
GET /api/v1/integration/workspaces/{workspace}/panel-templateslistPanelTemplates
GET /api/v1/integration/workspaces/{workspace}/panel-templates/{id}getPanelTemplate
PUT /api/v1/integration/workspaces/{workspace}/panel-templates/{id}writePanelTemplate
DELETE /api/v1/integration/workspaces/{workspace}/panel-templates/{id}deletePanelTemplate
GET /api/v1/integration/organizations/{organization}/hudslistCreatorHuds
POST /api/v1/integration/organizations/{organization}/hudscreateCreatorHud
GET /api/v1/integration/organizations/{organization}/huds/{hud}getCreatorHud
GET /api/v1/integration/organizations/{organization}/huds/{hud}/detailsgetCreatorHudDetails
PUT /api/v1/integration/organizations/{organization}/huds/{hud}/detailssetCreatorHudDetails
POST /api/v1/integration/organizations/{organization}/huds/{hud}/media/{language}/{kind}uploadCreatorHudMedia
GET /api/v1/integration/organizations/{organization}/huds/{hud}/media/{media}getCreatorHudMedia
DELETE /api/v1/integration/organizations/{organization}/huds/{hud}/media/{media}deleteCreatorHudMedia
GET /api/v1/integration/organizations/{organization}/huds/{hud}/grantslistCreatorHudGrants
GET /api/v1/integration/organizations/{organization}/huds/{hud}/requestslistCreatorHudRequests
PUT /api/v1/integration/organizations/{organization}/huds/{hud}/grants/{workspace}setCreatorHudGrant
GET /api/v1/integration/organizations/{organization}/huds/{hud}/releaseslistCreatorReleases
POST /api/v1/integration/organizations/{organization}/huds/{hud}/releasesuploadCreatorRelease
GET /api/v1/integration/organizations/{organization}/huds/{hud}/releases/{release}getCreatorRelease

GET /api/v1/integration/workspaces/{workspace}/snapshot

operationId: getWorkspaceSnapshot

Alle typisierten Sammlungen einschließlich Löschmarkierungen lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/snapshot' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Sammlungen eines gemeinsamen Workspace-Snapshots.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/WorkspaceSnapshot"
}

Vollständige abhängige Schemas: WorkspaceSnapshot

{
  "teams": [],
  "players": [],
  "competitions": [],
  "seasons": [],
  "sections": [],
  "maps": [],
  "mapPools": [],
  "matches": [],
  "startupConfigs": [],
  "panelTemplates": []
}

POST /api/v1/integration/workspaces/{workspace}/changes

operationId: applyWorkspaceChanges

Änderungen nach Ressourcentyp gruppiert atomar übernehmen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Mindestens eine Änderung in den benannten Sammlungen ist erforderlich, insgesamt höchstens 5000. Kennungen müssen innerhalb ihrer Sammlung eindeutig sein. Alle Revisionen und Verknüpfungen müssen passen; es gibt keine teilweise Übernahme. Löschungen verwenden deleted:true und fehlendes oder null gesetztes data.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WorkspaceChanges"
}

Vollständige abhängige Schemas: WorkspaceChanges

{
  "teams": [
    {
      "id": "team-a",
      "expectedRevision": 0,
      "data": {
        "id": "team-a",
        "name": "Example team"
      }
    }
  ]
}
$body = @'
{
  "teams": [
    {
      "id": "team-a",
      "expectedRevision": 0,
      "data": {
        "id": "team-a",
        "name": "Example team"
      }
    }
  ]
}
'@
Invoke-RestMethod -Method Post -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/changes' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Vollständiger typisierter Snapshot nach erfolgreicher Übernahme.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Revisions- oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/WorkspaceSnapshot"
}

Vollständige abhängige Schemas: WorkspaceSnapshot

{
  "teams": [
    {
      "id": "team-a",
      "revision": 1,
      "deleted": false,
      "data": {
        "id": "team-a",
        "name": "Example team"
      }
    }
  ],
  "players": [],
  "competitions": [],
  "seasons": [],
  "sections": [],
  "maps": [],
  "mapPools": [],
  "matches": [],
  "startupConfigs": [],
  "panelTemplates": []
}

POST /api/v1/integration/workspaces/{workspace}/media/check

operationId: checkWorkspaceMedia

Fehlende inhaltsadressierte Bilder ohne Datenänderung ermitteln.

Authentifizierung: WorkspaceKey. Ein lesender Workspace-Schlüssel genügt; das Konto benötigt aktuell Bearbeiter- oder Verwalterrechte.

Das Konto benötigt aktuell Bearbeiter- oder Verwalterrechte; ein lesender Schlüssel genügt. Höchstens 400000 Bytes Anfragekörper und 5000 unterschiedliche Namen.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/CheckMedia"
}

Vollständige abhängige Schemas: CheckMedia

{
  "names": [
    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png"
  ]
}
$body = @'
{
  "names": [
    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png"
  ]
}
'@
Invoke-RestMethod -Method Post -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/media/check' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Nur die fehlenden Namen.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MediaPresence"
}

Vollständige abhängige Schemas: MediaPresence

{
  "missing": [
    "example"
  ]
}

GET /api/v1/integration/workspaces/{workspace}/media/{name}

operationId: downloadWorkspaceMedia

Ein Bild aus dem Workspace herunterladen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
namepathja{"type":"string","pattern":"^[a-f0-9]{64}\\.(png|jpg|gif)$"}"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png"

Anfrage

Kein Anfragekörper.

Invoke-WebRequest -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/media/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -OutFile './download.bin'

Antworten

HTTPBedeutungAntwortheader
200Originalbytes des Bildes.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Bild nicht gefunden.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/octet-stream

{
  "type": "string",
  "format": "binary"
}

Die Antwort enthält Original-Binärdaten. Speichere sie mit dem gezeigten Aufruf in eine Datei; der Vertrag legt keinen JSON-Körper fest.

PUT /api/v1/integration/workspaces/{workspace}/media/{name}

operationId: uploadWorkspaceMedia

Ein Bild vor der Verwendung in Ressourcen hochladen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibender Schlüssel und Bearbeiter- oder Verwalterrechte erforderlich. Höchstens 4 MiB. Der Name besteht aus dem SHA-256 der Originalbytes in Kleinbuchstaben plus .png/.jpg/.gif. In Ressourcen wird /cast-media/{name} verwendet. Vorhandene identische Hashes dürfen erneut verwendet werden.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
namepathja{"type":"string","pattern":"^[a-f0-9]{64}\\.(png|jpg|gif)$"}"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png"

Anfrage

Anfragekörper erforderlich: ja.

application/octet-stream

{
  "type": "string",
  "format": "binary"
}
$file = './image.png'
$name = (Get-FileHash -LiteralPath $file -Algorithm SHA256).Hash.ToLowerInvariant() + '.png'
Invoke-WebRequest -Method Put -Uri ( 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/media/' + $name ) -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/octet-stream' -InFile $file

Antworten

HTTPBedeutungAntwortheader
204In diesem Workspace gespeichert.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

GET /api/v1/integration/workspaces/{workspace}/teams

operationId: listTeams

Alle Teams einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/teams' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TeamResource"
  }
}

Vollständige abhängige Schemas: TeamResource

[
  {
    "id": "team-a",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "team-a",
      "name": "Example team"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/teams/{id}

operationId: getTeam

Eine Ressource vom Typ Team oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"team-a"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/teams/team-a' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/TeamResource"
}

Vollständige abhängige Schemas: TeamResource

{
  "id": "team-a",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "team-a",
    "name": "Example team"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/teams/{id}

operationId: writeTeam

Eine Ressource vom Typ Team erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"team-a"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteTeam"
}

Vollständige abhängige Schemas: WriteTeam

{
  "expectedRevision": 0,
  "data": {
    "id": "team-a",
    "name": "Example team"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "team-a",
    "name": "Example team"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/teams/team-a' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/TeamResource"
}

Vollständige abhängige Schemas: TeamResource

{
  "id": "team-a",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "team-a",
    "name": "Example team"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/teams/{id}

operationId: deleteTeam

Eine Ressource vom Typ Team als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"team-a"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/teams/team-a?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/TeamResource"
}

Vollständige abhängige Schemas: TeamResource

{
  "id": "team-a",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/players

operationId: listPlayers

Alle Spieler einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/players' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PlayerResource"
  }
}

Vollständige abhängige Schemas: PlayerResource

[
  {
    "id": "76561198000000001",
    "revision": 1,
    "deleted": false,
    "data": {
      "steamId": "76561198000000001",
      "name": "Example player"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/players/{id}

operationId: getPlayer

Eine Ressource vom Typ Spieler oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","pattern":"^[0-9]{17}$"}"76561198000000001"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/players/76561198000000001' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/PlayerResource"
}

Vollständige abhängige Schemas: PlayerResource

{
  "id": "76561198000000001",
  "revision": 1,
  "deleted": false,
  "data": {
    "steamId": "76561198000000001",
    "name": "Example player"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/players/{id}

operationId: writePlayer

Eine Ressource vom Typ Spieler erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","pattern":"^[0-9]{17}$"}"76561198000000001"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WritePlayer"
}

Vollständige abhängige Schemas: WritePlayer

{
  "expectedRevision": 0,
  "data": {
    "steamId": "76561198000000001",
    "name": "Example player"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "steamId": "76561198000000001",
    "name": "Example player"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/players/76561198000000001' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/PlayerResource"
}

Vollständige abhängige Schemas: PlayerResource

{
  "id": "76561198000000001",
  "revision": 1,
  "deleted": false,
  "data": {
    "steamId": "76561198000000001",
    "name": "Example player"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/players/{id}

operationId: deletePlayer

Eine Ressource vom Typ Spieler als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","pattern":"^[0-9]{17}$"}"76561198000000001"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/players/76561198000000001?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/PlayerResource"
}

Vollständige abhängige Schemas: PlayerResource

{
  "id": "76561198000000001",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/competitions

operationId: listCompetitions

Alle Wettbewerbe einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/competitions' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CompetitionResource"
  }
}

Vollständige abhängige Schemas: CompetitionResource

[
  {
    "id": "competition-2026",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "competition-2026",
      "name": "Example competition"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/competitions/{id}

operationId: getCompetition

Eine Ressource vom Typ Wettbewerb oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"competition-2026"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/competitions/competition-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/CompetitionResource"
}

Vollständige abhängige Schemas: CompetitionResource

{
  "id": "competition-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "competition-2026",
    "name": "Example competition"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/competitions/{id}

operationId: writeCompetition

Eine Ressource vom Typ Wettbewerb erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"competition-2026"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteCompetition"
}

Vollständige abhängige Schemas: WriteCompetition

{
  "expectedRevision": 0,
  "data": {
    "id": "competition-2026",
    "name": "Example competition"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "competition-2026",
    "name": "Example competition"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/competitions/competition-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/CompetitionResource"
}

Vollständige abhängige Schemas: CompetitionResource

{
  "id": "competition-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "competition-2026",
    "name": "Example competition"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/competitions/{id}

operationId: deleteCompetition

Eine Ressource vom Typ Wettbewerb als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"competition-2026"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/competitions/competition-2026?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/CompetitionResource"
}

Vollständige abhängige Schemas: CompetitionResource

{
  "id": "competition-2026",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/seasons

operationId: listSeasons

Alle Seasons einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/seasons' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/SeasonResource"
  }
}

Vollständige abhängige Schemas: SeasonResource

[
  {
    "id": "season-2026",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "season-2026",
      "name": "Example season",
      "competitionId": "competition-2026"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/seasons/{id}

operationId: getSeason

Eine Ressource vom Typ Season oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"season-2026"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/seasons/season-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/SeasonResource"
}

Vollständige abhängige Schemas: SeasonResource

{
  "id": "season-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "season-2026",
    "name": "Example season",
    "competitionId": "competition-2026"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/seasons/{id}

operationId: writeSeason

Eine Ressource vom Typ Season erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"season-2026"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteSeason"
}

Vollständige abhängige Schemas: WriteSeason

{
  "expectedRevision": 0,
  "data": {
    "id": "season-2026",
    "name": "Example season",
    "competitionId": "competition-2026"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "season-2026",
    "name": "Example season",
    "competitionId": "competition-2026"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/seasons/season-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/SeasonResource"
}

Vollständige abhängige Schemas: SeasonResource

{
  "id": "season-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "season-2026",
    "name": "Example season",
    "competitionId": "competition-2026"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/seasons/{id}

operationId: deleteSeason

Eine Ressource vom Typ Season als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"season-2026"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/seasons/season-2026?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/SeasonResource"
}

Vollständige abhängige Schemas: SeasonResource

{
  "id": "season-2026",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/sections

operationId: listSections

Alle Bereiche einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/sections' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/SectionResource"
  }
}

Vollständige abhängige Schemas: SectionResource

[
  {
    "id": "section-2026",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "section-2026",
      "name": "Example section",
      "competitionId": "competition-2026"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/sections/{id}

operationId: getSection

Eine Ressource vom Typ Bereich oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"section-2026"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/sections/section-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/SectionResource"
}

Vollständige abhängige Schemas: SectionResource

{
  "id": "section-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "section-2026",
    "name": "Example section",
    "competitionId": "competition-2026"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/sections/{id}

operationId: writeSection

Eine Ressource vom Typ Bereich erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"section-2026"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteSection"
}

Vollständige abhängige Schemas: WriteSection

{
  "expectedRevision": 0,
  "data": {
    "id": "section-2026",
    "name": "Example section",
    "competitionId": "competition-2026"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "section-2026",
    "name": "Example section",
    "competitionId": "competition-2026"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/sections/section-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/SectionResource"
}

Vollständige abhängige Schemas: SectionResource

{
  "id": "section-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "section-2026",
    "name": "Example section",
    "competitionId": "competition-2026"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/sections/{id}

operationId: deleteSection

Eine Ressource vom Typ Bereich als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"section-2026"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/sections/section-2026?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/SectionResource"
}

Vollständige abhängige Schemas: SectionResource

{
  "id": "section-2026",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/maps

operationId: listMaps

Alle Maps einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/maps' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/MapResource"
  }
}

Vollständige abhängige Schemas: MapResource

[
  {
    "id": "map-dust2",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "map-dust2",
      "name": "Example map",
      "gameName": "de_dust2"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/maps/{id}

operationId: getMap

Eine Ressource vom Typ Map oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"map-dust2"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/maps/map-dust2' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MapResource"
}

Vollständige abhängige Schemas: MapResource

{
  "id": "map-dust2",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "map-dust2",
    "name": "Example map",
    "gameName": "de_dust2"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/maps/{id}

operationId: writeMap

Eine Ressource vom Typ Map erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"map-dust2"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteMap"
}

Vollständige abhängige Schemas: WriteMap

{
  "expectedRevision": 0,
  "data": {
    "id": "map-dust2",
    "name": "Example map",
    "gameName": "de_dust2"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "map-dust2",
    "name": "Example map",
    "gameName": "de_dust2"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/maps/map-dust2' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MapResource"
}

Vollständige abhängige Schemas: MapResource

{
  "id": "map-dust2",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "map-dust2",
    "name": "Example map",
    "gameName": "de_dust2"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/maps/{id}

operationId: deleteMap

Eine Ressource vom Typ Map als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"map-dust2"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/maps/map-dust2?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MapResource"
}

Vollständige abhängige Schemas: MapResource

{
  "id": "map-dust2",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/map-pools

operationId: listMapPools

Alle Mappools einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/map-pools' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/MapPoolResource"
  }
}

Vollständige abhängige Schemas: MapPoolResource

[
  {
    "id": "pool-main",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "pool-main",
      "name": "Example mapPool"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/map-pools/{id}

operationId: getMapPool

Eine Ressource vom Typ Mappool oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"pool-main"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/map-pools/pool-main' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MapPoolResource"
}

Vollständige abhängige Schemas: MapPoolResource

{
  "id": "pool-main",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "pool-main",
    "name": "Example mapPool"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/map-pools/{id}

operationId: writeMapPool

Eine Ressource vom Typ Mappool erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"pool-main"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteMapPool"
}

Vollständige abhängige Schemas: WriteMapPool

{
  "expectedRevision": 0,
  "data": {
    "id": "pool-main",
    "name": "Example mapPool"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "pool-main",
    "name": "Example mapPool"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/map-pools/pool-main' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MapPoolResource"
}

Vollständige abhängige Schemas: MapPoolResource

{
  "id": "pool-main",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "pool-main",
    "name": "Example mapPool"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/map-pools/{id}

operationId: deleteMapPool

Eine Ressource vom Typ Mappool als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"pool-main"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/map-pools/pool-main?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MapPoolResource"
}

Vollständige abhängige Schemas: MapPoolResource

{
  "id": "pool-main",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/matches

operationId: listMatchs

Alle Matches einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/matches' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/MatchResource"
  }
}

Vollständige abhängige Schemas: MatchResource

[
  {
    "id": "match-2026",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "match-2026",
      "name": "Example match",
      "teamA": "team-a",
      "teamB": "team-b"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/matches/{id}

operationId: getMatch

Eine Ressource vom Typ Match oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"match-2026"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/matches/match-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MatchResource"
}

Vollständige abhängige Schemas: MatchResource

{
  "id": "match-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "match-2026",
    "name": "Example match",
    "teamA": "team-a",
    "teamB": "team-b"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/matches/{id}

operationId: writeMatch

Eine Ressource vom Typ Match erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"match-2026"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteMatch"
}

Vollständige abhängige Schemas: WriteMatch

{
  "expectedRevision": 0,
  "data": {
    "id": "match-2026",
    "name": "Example match",
    "teamA": "team-a",
    "teamB": "team-b"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "match-2026",
    "name": "Example match",
    "teamA": "team-a",
    "teamB": "team-b"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/matches/match-2026' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MatchResource"
}

Vollständige abhängige Schemas: MatchResource

{
  "id": "match-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "match-2026",
    "name": "Example match",
    "teamA": "team-a",
    "teamB": "team-b"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/matches/{id}

operationId: deleteMatch

Eine Ressource vom Typ Match als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"match-2026"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/matches/match-2026?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/MatchResource"
}

Vollständige abhängige Schemas: MatchResource

{
  "id": "match-2026",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/startup-configs

operationId: listStartupConfigs

Alle Startconfigs einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/startup-configs' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/StartupConfigResource"
  }
}

Vollständige abhängige Schemas: StartupConfigResource

[
  {
    "id": "config-demo",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "config-demo",
      "name": "Example startupConfig",
      "content": "echo sOU"
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/startup-configs/{id}

operationId: getStartupConfig

Eine Ressource vom Typ Startconfig oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"config-demo"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/startup-configs/config-demo' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/StartupConfigResource"
}

Vollständige abhängige Schemas: StartupConfigResource

{
  "id": "config-demo",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "config-demo",
    "name": "Example startupConfig",
    "content": "echo sOU"
  }
}

PUT /api/v1/integration/workspaces/{workspace}/startup-configs/{id}

operationId: writeStartupConfig

Eine Ressource vom Typ Startconfig erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"config-demo"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WriteStartupConfig"
}

Vollständige abhängige Schemas: WriteStartupConfig

{
  "expectedRevision": 0,
  "data": {
    "id": "config-demo",
    "name": "Example startupConfig",
    "content": "echo sOU"
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "config-demo",
    "name": "Example startupConfig",
    "content": "echo sOU"
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/startup-configs/config-demo' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/StartupConfigResource"
}

Vollständige abhängige Schemas: StartupConfigResource

{
  "id": "config-demo",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "config-demo",
    "name": "Example startupConfig",
    "content": "echo sOU"
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/startup-configs/{id}

operationId: deleteStartupConfig

Eine Ressource vom Typ Startconfig als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"config-demo"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/startup-configs/config-demo?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/StartupConfigResource"
}

Vollständige abhängige Schemas: StartupConfigResource

{
  "id": "config-demo",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/workspaces/{workspace}/panel-templates

operationId: listPanelTemplates

Alle Panelvorlagen einschließlich Löschmarkierungen auflisten.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/panel-templates' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Sammlung mit Revisionen je Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PanelTemplateResource"
  }
}

Vollständige abhängige Schemas: PanelTemplateResource

[
  {
    "id": "template-main",
    "revision": 1,
    "deleted": false,
    "data": {
      "id": "template-main",
      "hudId": "example-hud",
      "version": "1.0.0",
      "values": {}
    }
  }
]

GET /api/v1/integration/workspaces/{workspace}/panel-templates/{id}

operationId: getPanelTemplate

Eine Ressource vom Typ Panelvorlage oder ihre Löschmarkierung lesen.

Authentifizierung: WorkspaceKey. Lesender Workspace-Schlüssel und eine aktuelle Rolle im gebundenen Workspace erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"template-main"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/panel-templates/template-main' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/PanelTemplateResource"
}

Vollständige abhängige Schemas: PanelTemplateResource

{
  "id": "template-main",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "template-main",
    "hudId": "example-hud",
    "version": "1.0.0",
    "values": {}
  }
}

PUT /api/v1/integration/workspaces/{workspace}/panel-templates/{id}

operationId: writePanelTemplate

Eine Ressource vom Typ Panelvorlage erstellen, ersetzen oder wiederherstellen.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. expectedRevision ist bei Neuerstellung 0, sonst die zuletzt gelesene Revision einschließlich Löschmarkierungen. data ersetzt die Ressource; ihre Kennung muss zum Pfad passen. Fehlende optionale Felder erhalten die Desktop-Standardwerte. Höchstens 8 MiB Anfragekörper und 256000 Zeichen serialisierte Daten.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"template-main"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/WritePanelTemplate"
}

Vollständige abhängige Schemas: WritePanelTemplate

{
  "expectedRevision": 0,
  "data": {
    "id": "template-main",
    "hudId": "example-hud",
    "version": "1.0.0",
    "values": {}
  }
}
$body = @'
{
  "expectedRevision": 0,
  "data": {
    "id": "template-main",
    "hudId": "example-hud",
    "version": "1.0.0",
    "values": {}
  }
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/panel-templates/template-main' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Erfolgreich übernommene typisierte Ressource.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
409Veraltete Revision oder Datenbankkonflikt; neu lesen und abgleichen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/PanelTemplateResource"
}

Vollständige abhängige Schemas: PanelTemplateResource

{
  "id": "template-main",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "template-main",
    "hudId": "example-hud",
    "version": "1.0.0",
    "values": {}
  }
}

DELETE /api/v1/integration/workspaces/{workspace}/panel-templates/{id}

operationId: deletePanelTemplate

Eine Ressource vom Typ Panelvorlage als gelöscht markieren; ihre Revision bleibt erhalten.

Authentifizierung: WorkspaceKey. Schreibfreigabe des Workspace-Schlüssels und aktuelle Bearbeiter- oder Verwalterrechte im gebundenen Workspace erforderlich.

Schreibfreigabe sowie Bearbeiter- oder Verwalterrechte erforderlich. Verknüpfte Ressourcen erst nach Auflösen ihrer Abhängigkeiten löschen; zusammenhängende Änderungen über /changes ausführen. Es erfolgt keine physische Löschung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"
idpathja{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_-]\u002B$"}"template-main"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/workspaces/11111111-1111-4111-8111-111111111111/panel-templates/template-main?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_WORKSPACE_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Löschmarkierung mit data:null und erhöhter Revision.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falscher Workspace, unzureichende Schlüsselfreigabe oder aktuelle Workspace-Rolle.—
404Diese Kennung hat noch nie existiert.—
409Veraltete Revision oder Datenbankkonflikt.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/PanelTemplateResource"
}

Vollständige abhängige Schemas: PanelTemplateResource

{
  "id": "template-main",
  "revision": 2,
  "deleted": true,
  "data": null
}

GET /api/v1/integration/organizations/{organization}/huds

operationId: listCreatorHuds

HUDs der gebundenen Organisation auflisten.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CreatorHud"
  }
}

Vollständige abhängige Schemas: CreatorHud

[
  {
    "id": "33333333-3333-4333-8333-333333333333",
    "organizationId": "22222222-2222-4222-8222-222222222222",
    "packageId": null,
    "name": "Example HUD",
    "visibility": "private",
    "listed": false
  }
]

POST /api/v1/integration/organizations/{organization}/huds

operationId: createCreatorHud

Einen HUD-Eintrag in der gebundenen Organisation erstellen.

Authentifizierung: CreatorKey. Schreibfreigabe des Creator-Schlüssels und aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/CreatorHudCreate"
}

Vollständige abhängige Schemas: CreatorHudCreate

{
  "name": "Example HUD",
  "visibility": "private",
  "translations": [
    {
      "language": "en",
      "description": "Example HUD description.",
      "author": "Example creator",
      "authorUrl": "https://example.com/",
      "terms": "Example terms.",
      "license": "MIT"
    }
  ]
}
$body = @'
{
  "name": "Example HUD",
  "visibility": "private",
  "translations": [
    {
      "language": "en",
      "description": "Example HUD description.",
      "author": "Example creator",
      "authorUrl": "https://example.com/",
      "terms": "Example terms.",
      "license": "MIT"
    }
  ]
}
'@
Invoke-RestMethod -Method Post -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/CreatorHud"
}

Vollständige abhängige Schemas: CreatorHud

{
  "id": "33333333-3333-4333-8333-333333333333",
  "organizationId": "22222222-2222-4222-8222-222222222222",
  "packageId": null,
  "name": "Example HUD",
  "visibility": "private",
  "listed": false
}

GET /api/v1/integration/organizations/{organization}/huds/{hud}

operationId: getCreatorHud

Ein eigenes HUD einschließlich seiner Paketkennung lesen.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/CreatorHud"
}

Vollständige abhängige Schemas: CreatorHud

{
  "id": "33333333-3333-4333-8333-333333333333",
  "organizationId": "22222222-2222-4222-8222-222222222222",
  "packageId": null,
  "name": "Example HUD",
  "visibility": "private",
  "listed": false
}

GET /api/v1/integration/organizations/{organization}/huds/{hud}/details

operationId: getCreatorHudDetails

Bearbeitbare mehrsprachige HUD-Angaben und Medienverweise lesen.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/details' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/HudDetails"
}

Vollständige abhängige Schemas: HudDetails

{
  "revision": 1,
  "translations": [
    {
      "language": "en",
      "description": null,
      "author": null,
      "authorUrl": null,
      "imprintUrl": null,
      "privacyUrl": null,
      "preview": null,
      "gallery": [],
      "demo": null
    }
  ]
}

PUT /api/v1/integration/organizations/{organization}/huds/{hud}/details

operationId: setCreatorHudDetails

Mehrsprachige HUD-Texte und Links mit der zuletzt gelesenen Revision ersetzen.

Authentifizierung: CreatorKey. Schreibfreigabe des Creator-Schlüssels und aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich.

Die Angaben gehören zum HUD und liegen außerhalb des .souhud-Pakets. Beschreibung, Nutzungsbedingungen und Lizenz enthalten Markdown mit höchstens 8000 Zeichen je Feld; rohem HTML wird nicht vertraut. Alle neuen Felder sind derzeit optional. Jedes befüllte übersetzte Feld benötigt sein en-Gegenstück. Fehlende oder null gesetzte terms/license erhalten bei vorhandenen Sprachzeilen den bisherigen Wert; eine leere Zeichenfolge leert das Feld. Fehlende Sprachzeilen werden vollständig entfernt. Nur absolute HTTP(S)-URLs ohne Zugangsdaten. Textänderungen erhalten die Medien. Höchstens 512 KiB JSON und 256 unterschiedliche normalisierte Sprachkennungen. Nach Konflikten neu lesen und Schreibzugriffe nicht blind wiederholen.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/SetHudDetails"
}

Vollständige abhängige Schemas: SetHudDetails

{
  "revision": 0,
  "translations": [
    {
      "language": "en",
      "description": "Example HUD description.",
      "author": "Example creator",
      "authorUrl": "https://example.com/",
      "terms": "Example terms.",
      "license": "MIT"
    }
  ]
}
$body = @'
{
  "revision": 0,
  "translations": [
    {
      "language": "en",
      "description": "Example HUD description.",
      "author": "Example creator",
      "authorUrl": "https://example.com/",
      "terms": "Example terms.",
      "license": "MIT"
    }
  ]
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/details' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/HudDetails"
}

Vollständige abhängige Schemas: HudDetails

{
  "revision": 1,
  "translations": [
    {
      "language": "en",
      "description": "Example HUD description.",
      "author": "Example creator",
      "authorUrl": "https://example.com/",
      "imprintUrl": null,
      "privacyUrl": null,
      "preview": null,
      "gallery": [],
      "demo": null,
      "terms": "Example terms.",
      "license": "MIT"
    }
  ]
}

POST /api/v1/integration/organizations/{organization}/huds/{hud}/media/{language}/{kind}

operationId: uploadCreatorHudMedia

Ein Galeriebild ergänzen oder Vorschau beziehungsweise Demo einer Sprache ersetzen.

Authentifizierung: CreatorKey. Schreibfreigabe des Creator-Schlüssels und aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich.

Originalbytes senden. Vorschau: mindestens 1920 × 900 Pixel, höchstens 5000000 Bytes. Galerie: mehrere Bilder mit jeweils mindestens 1920 × 900 Pixeln und höchstens 10000000 Bytes. Demo: ausschließlich MP4-Video mit höchstens 50000000 Bytes. Jede Medienart zuerst für en hochladen. Bilder werden dekodiert und ihre Abmessungen geprüft; bei MP4 werden Container und Videostruktur validiert. Medienänderungen erhöhen die gemeinsame Detailsrevision. Derzeit sind keine Galeriebilder vorgeschrieben; drei sind eine künftige Anforderung.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"
languagepathja{"type":"string","minLength":1,"maxLength":63,"description":"BCP 47 language tag, normalized to lowercase. Each populated translated field or media kind requires an English en counterpart."}BCP-47-Sprachkennung, in Kleinbuchstaben normalisiert. Jedes befüllte übersetzte Feld und jede Medienart benötigt ein englisches en-Gegenstück."en"
kindpathja{"type":"string","enum":["preview","gallery","demo"]}"preview"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0
Content-Dispositionheadernein{"type":"string"}Für demo erforderlich: attachment; filename="demo.mp4". Die Datei benötigt die Erweiterung .mp4."example"

Anfrage

Anfragekörper erforderlich: ja.

image/png

{
  "type": "string",
  "format": "binary"
}

image/jpeg

{
  "type": "string",
  "format": "binary"
}

image/webp

{
  "type": "string",
  "format": "binary"
}

video/mp4

{
  "type": "string",
  "format": "binary"
}
Invoke-RestMethod -Method Post -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/media/en/preview?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" } -ContentType 'image/png' -InFile './preview.png'

Für ein Demo-Video kind auf demo setzen, Content-Type: video/mp4 und Content-Disposition: attachment; filename="demo.mp4" senden sowie eine gültige MP4-Datei verwenden. Für gallery gelten die beschriebenen eigenen Bildgrenzen.

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/HudDetails"
}

Vollständige abhängige Schemas: HudDetails

{
  "revision": 2,
  "translations": [
    {
      "language": "en",
      "description": null,
      "author": null,
      "authorUrl": null,
      "imprintUrl": null,
      "privacyUrl": null,
      "preview": {
        "id": "55555555-5555-4555-8555-555555555555",
        "language": "en",
        "kind": "preview",
        "contentType": "image/png",
        "length": 32768,
        "width": 1920,
        "height": 900,
        "position": 0
      },
      "gallery": [],
      "demo": null
    }
  ]
}

GET /api/v1/integration/organizations/{organization}/huds/{hud}/media/{media}

operationId: getCreatorHudMedia

Eine Mediendatei eines eigenen HUDs lesen.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"
mediapathja{"type":"string","format":"uuid"}"55555555-5555-4555-8555-555555555555"

Anfrage

Kein Anfragekörper.

Invoke-WebRequest -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/media/55555555-5555-4555-8555-555555555555' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" } -OutFile './download.bin'

Antworten

HTTPBedeutungAntwortheader
200Originalbytes des Mediums mit dem geprüften Bild- oder MP4-Inhaltstyp.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/octet-stream

{
  "type": "string",
  "format": "binary"
}

Die Antwort enthält Original-Binärdaten. Speichere sie mit dem gezeigten Aufruf in eine Datei; der Vertrag legt keinen JSON-Körper fest.

DELETE /api/v1/integration/organizations/{organization}/huds/{hud}/media/{media}

operationId: deleteCreatorHudMedia

Einen Medienverweis mit der zuletzt gelesenen Detailsrevision entfernen.

Authentifizierung: CreatorKey. Schreibfreigabe des Creator-Schlüssels und aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"
mediapathja{"type":"string","format":"uuid"}"55555555-5555-4555-8555-555555555555"
expectedRevisionqueryja{"type":"integer","format":"int64","minimum":0}0

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Delete -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/media/55555555-5555-4555-8555-555555555555?expectedRevision=1' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/HudDetails"
}

Vollständige abhängige Schemas: HudDetails

{
  "revision": 2,
  "translations": [
    {
      "language": "en",
      "description": null,
      "author": null,
      "authorUrl": null,
      "imprintUrl": null,
      "privacyUrl": null,
      "preview": null,
      "gallery": [],
      "demo": null
    }
  ]
}

GET /api/v1/integration/organizations/{organization}/huds/{hud}/grants

operationId: listCreatorHudGrants

Workspace-Freigaben und offene Zugangsanfragen dieses HUDs auflisten.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/grants' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/HudGrant"
  }
}

Vollständige abhängige Schemas: HudGrant

[
  {
    "hudId": "33333333-3333-4333-8333-333333333333",
    "workspaceId": "11111111-1111-4111-8111-111111111111",
    "approved": false,
    "selectedReleaseId": null,
    "requested": false
  }
]

GET /api/v1/integration/organizations/{organization}/huds/{hud}/requests

operationId: listCreatorHudRequests

Tatsächlich offene Workspace-Zugangsanfragen auflisten.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Liefert ausschließlich requested=true und approved=false. Historische nicht freigegebene Einträge, abgelehnte Anfragen und entzogene Freigaben sind ausgeschlossen. Nicht alle Datensätze mit approved=false sind offene Anfragen.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/requests' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/HudGrant"
  }
}

Vollständige abhängige Schemas: HudGrant

[
  {
    "hudId": "33333333-3333-4333-8333-333333333333",
    "workspaceId": "11111111-1111-4111-8111-111111111111",
    "approved": false,
    "selectedReleaseId": null,
    "requested": true
  }
]

PUT /api/v1/integration/organizations/{organization}/huds/{hud}/grants/{workspace}

operationId: setCreatorHudGrant

Eine Anfrage annehmen oder ablehnen, direkten Zugang freigeben oder Zugang entziehen.

Authentifizierung: CreatorKey. Schreibfreigabe des Creator-Schlüssels und aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich.

approved:true nimmt eine bestehende Anfrage an oder gibt einem bestehenden Workspace direkt Zugang. approved:false lehnt ab oder entzieht den Zugang. Jede Entscheidung setzt requested zurück. Schreibender CreatorKey und aktuelle ausdrückliche Publisher-Berechtigung der gebundenen Organisation erforderlich. Dies installiert kein Paket und ändert keine laufende Ausgabe. Bestehende Abonnements gehören zum HUD und nicht zu einer einzelnen Version.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"
workspacepathja{"type":"string","format":"uuid"}"11111111-1111-4111-8111-111111111111"

Anfrage

Anfragekörper erforderlich: ja.

application/json

{
  "$ref": "#/components/schemas/SetHudGrant"
}

Vollständige abhängige Schemas: SetHudGrant

{
  "approved": false
}
$body = @'
{
  "approved": false
}
'@
Invoke-RestMethod -Method Put -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/grants/11111111-1111-4111-8111-111111111111' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" } -ContentType 'application/json' -Body $body

Antworten

HTTPBedeutungAntwortheader
204Workspace-Freigabe gespeichert; die Anfrage ist als bearbeitet markiert.—
400Ungültiges JSON, Schema, Verknüpfung, Kennung oder Ressourcentyp.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle Publisher-Berechtigung.—
404Das HUD gehört nicht zur gebundenen Organisation oder der Workspace existiert nicht.—
409Gleichzeitige Änderung; vor einem erneuten Versuch die aktuellen Freigaben lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

GET /api/v1/integration/organizations/{organization}/huds/{hud}/releases

operationId: listCreatorReleases

Alle Versionen und Prüfzustände eines eigenen HUDs auflisten.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/releases' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CreatorRelease"
  }
}

Vollständige abhängige Schemas: CreatorRelease

[
  {
    "id": "44444444-4444-4444-8444-444444444444",
    "hudId": "33333333-3333-4333-8333-333333333333",
    "version": "1.0.0",
    "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "state": "pending",
    "review": null
  }
]

POST /api/v1/integration/organizations/{organization}/huds/{hud}/releases

operationId: uploadCreatorRelease

Eine neue unveränderliche .souhud-Paketversion für ein bestehendes eigenes HUD hochladen.

Authentifizierung: CreatorKey. Schreibfreigabe des Creator-Schlüssels und aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich.

Originale .souhud-ZIP-Bytes ohne Multipart-Hülle senden. Höchstens 128 MiB komprimiert und insgesamt entpackt, 4096 ZIP-Einträge und 64000 Bytes für hud.json. Der vorhandene Paketprüfer unterstützt Paket-API-Versionen 2 und 3; Laufzeiten blazor-wasm/web/lhm; einen gültigen entryPoint unter wwwroot; Version X.Y.Z mit optionalem kleingeschriebenem Vorabzusatz und eine stabile global eindeutige Paketkennung. Bestehende Versionen einschließlich abgelehnter oder noch geprüfter Versionen sind unveränderlich. Updates benötigen eine neue Version. Uploads von Konten mit Creator-Vertrauen werden nach erfolgreicher Paketprüfung automatisch freigegeben; andere durchlaufen die reguläre Prüfung als pending. Vertrauen ist kontogebunden und widerrufbar; es vergibt keine Publisher-Rechte und ändert keine bestehenden Prüfzustände. Schlüssel können weder Vertrauen vergeben noch Prüfentscheidungen treffen. Uploads ändern weder Abonnements, Freigaben, Listung, installierte HUDs noch laufende Ausgaben. Nach verlorener Antwort zuerst Versionsliste, Version und SHA-256 vergleichen.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"

Anfrage

Anfragekörper erforderlich: ja.

application/octet-stream

{
  "type": "string",
  "format": "binary"
}
Invoke-RestMethod -Method Post -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/releases' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" } -ContentType 'application/octet-stream' -InFile './example-hud.souhud'

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/CreatorRelease"
}

Vollständige abhängige Schemas: CreatorRelease

{
  "id": "44444444-4444-4444-8444-444444444444",
  "hudId": "33333333-3333-4333-8333-333333333333",
  "version": "1.0.0",
  "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "state": "pending",
  "review": null
}

GET /api/v1/integration/organizations/{organization}/huds/{hud}/releases/{release}

operationId: getCreatorRelease

Uploadzustand und Prüfrückmeldung einer eigenen Version lesen.

Authentifizierung: CreatorKey. Aktuelle ausdrückliche Publisher-Berechtigung für die gebundene Organisation erforderlich; lesender Creator-Schlüssel genügt.

Parameter

NameOrtPflichtTyp und GrenzenBedeutungBeispiel
organizationpathja{"type":"string","format":"uuid"}"22222222-2222-4222-8222-222222222222"
hudpathja{"type":"string","format":"uuid"}"33333333-3333-4333-8333-333333333333"
releasepathja{"type":"string","format":"uuid"}"44444444-4444-4444-8444-444444444444"

Anfrage

Kein Anfragekörper.

Invoke-RestMethod -Method Get -Uri 'https://www.getsou.app/api/v1/integration/organizations/22222222-2222-4222-8222-222222222222/huds/33333333-3333-4333-8333-333333333333/releases/44444444-4444-4444-8444-444444444444' -Headers @{ Authorization = "Bearer $env:SOU_CREATOR_API_KEY" }

Antworten

HTTPBedeutungAntwortheader
200Creator-Ressource der gebundenen Organisation.—
400Ungültiges JSON, unbekannte Felder, fehlendes englisches Gegenstück oder ungültiger HUD-Inhalt.—
401Fehlender, ungültiger, abgelaufener oder widerrufener Schlüssel oder gesperrtes Konto; WWW-Authenticate: Bearer.—
403Falsche Organisation, unzureichende Creator-Schlüsselfreigabe oder fehlende aktuelle ausdrückliche Publisher-Berechtigung.—
404HUD, Medium oder Version in der gebundenen Organisation nicht gefunden.—
409Veraltete Detailsrevision, unveränderliche Version, Paketkennung oder gleichzeitiger Datenbankkonflikt; vor einem erneuten Versuch den aktuellen Zustand lesen.—
413Der Anfragekörper überschreitet die Grenze dieser Operation.—
415Nicht unterstützter Inhaltstyp. Pakete benötigen application/octet-stream; Verzeichnismedien den passenden geprüften Bild- oder MP4-Typ.—
429120 Aufrufe pro Minute je Schlüsselinhaber, gemeinsam über dessen Schlüssel. Erst nach dem Retry-After-Intervall erneut aufrufen.Retry-After: {"type":"string"} — Sekunden bis zum nächsten Versuch (60).
500Unerwarteter Serverfehler; ein Schreibzugriff kann bereits übernommen sein. Vor einem erneuten Versuch neu lesen und abgleichen.—

200 · application/json

{
  "$ref": "#/components/schemas/CreatorRelease"
}

Vollständige abhängige Schemas: CreatorRelease

{
  "id": "44444444-4444-4444-8444-444444444444",
  "hudId": "33333333-3333-4333-8333-333333333333",
  "version": "1.0.0",
  "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "state": "pending",
  "review": null
}

Vollständige Datenschemas

Jeder Verweis #/components/schemas/Name führt hier zum vollständigen Originalschema. Die Feldtabelle zeigt die Kernregeln; das JSON bewahrt auch verschachtelte Felder, Varianten und sämtliche Grenzen. Pflicht bedeutet, dass der Schlüssel vorhanden sein muss. nullable erlaubt zusätzlich null und ist davon unabhängig. additionalProperties: false verbietet unbekannte Felder.

team

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
shortNameneinstringmaxLength: 16
logoneinstring | nullnullable: true; pattern: "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
faceitIdneinstring | nullnullable: true
dachcsIdneinstring | nullnullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "shortName": {
      "type": "string",
      "maxLength": 16
    },
    "logo": {
      "type": "string",
      "nullable": true,
      "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
    },
    "faceitId": {
      "type": "string",
      "nullable": true
    },
    "dachcsId": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "id",
    "name"
  ]
}

Schemafähiges Beispiel:

{
  "id": "team-a",
  "name": "Example team"
}

player

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
steamIdjastringpattern: "^[0-9]{17}$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
teamIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true
avatarneinstring | nullnullable: true; pattern: "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
isCoachneinboolean

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "steamId": {
      "type": "string",
      "pattern": "^[0-9]{17}$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "teamId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    },
    "avatar": {
      "type": "string",
      "nullable": true,
      "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
    },
    "isCoach": {
      "type": "boolean"
    }
  },
  "required": [
    "steamId",
    "name"
  ]
}

Schemafähiges Beispiel:

{
  "steamId": "76561198000000001",
  "name": "Example player"
}

competition

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
logoneinstring | nullnullable: true; pattern: "^/cast-media/[a-f0-9]{64}\\.(png|jpg)$"
sponsorsneinarray

Vollständige abhängige Schemas: Sponsor

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "logo": {
      "type": "string",
      "nullable": true,
      "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg)$"
    },
    "sponsors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Sponsor"
      }
    }
  },
  "required": [
    "id",
    "name"
  ]
}

Schemafähiges Beispiel:

{
  "id": "competition-2026",
  "name": "Example competition"
}

season

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
competitionIdjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "competitionId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    }
  },
  "required": [
    "id",
    "name",
    "competitionId"
  ]
}

Schemafähiges Beispiel:

{
  "id": "season-2026",
  "name": "Example season",
  "competitionId": "competition-2026"
}

section

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
competitionIdjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
seasonIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true
parentIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true
kindneinintegerformat: "int32"; minimum: 1; maximum: 61 Region, 2 Division, 3 Phase, 4 Gruppe, 5 Runde, 6 Sonstiges. Standard 6.

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "competitionId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "seasonId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    },
    "parentId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    },
    "kind": {
      "type": "integer",
      "format": "int32",
      "minimum": 1,
      "maximum": 6,
      "description": "1 Region, 2 Division, 3 Phase, 4 Group, 5 Round, 6 Other. Default 6."
    }
  },
  "required": [
    "id",
    "name",
    "competitionId"
  ]
}

Schemafähiges Beispiel:

{
  "id": "section-2026",
  "name": "Example section",
  "competitionId": "competition-2026"
}

map

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
gameNamejastringminLength: 1; maxLength: 128; pattern: "^[a-z0-9_][a-z0-9_/-]*$"
logoneinstring | nullnullable: true; pattern: "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
backgroundneinstring | nullnullable: true; pattern: "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "gameName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[a-z0-9_][a-z0-9_/-]*$"
    },
    "logo": {
      "type": "string",
      "nullable": true,
      "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
    },
    "background": {
      "type": "string",
      "nullable": true,
      "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
    }
  },
  "required": [
    "id",
    "name",
    "gameName"
  ]
}

Schemafähiges Beispiel:

{
  "id": "map-dust2",
  "name": "Example map",
  "gameName": "de_dust2"
}

mapPool

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
mapIdsneinarrayuniqueItems: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "mapIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "pattern": "^[A-Za-z0-9_-]\u002B$"
      },
      "uniqueItems": true
    }
  },
  "required": [
    "id",
    "name"
  ]
}

Schemafähiges Beispiel:

{
  "id": "pool-main",
  "name": "Example mapPool"
}

match

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
startsAtneinstring | nullformat: "date-time"; nullable: true
competitionIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true
seasonIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true
competitionSectionIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true
competitionRoundneinstring | nullnullable: true; maxLength: 100
faceitIdneinstring | nullnullable: true
dachcsIdneinstring | nullnullable: true
teamAjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
teamBjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
bestOfneinintegerformat: "int32"; minimum: 1; enum: [1,3,5,7]; default: 3
mapPoolIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true
winsAneinintegerformat: "int32"; minimum: 0
winsBneinintegerformat: "int32"; minimum: 0
mapIdsneinarrayuniqueItems: true
mapResultsneinarray | nullnullable: true
vetosneinarray

Vollständige abhängige Schemas: MapResult · Veto

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "startsAt": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "competitionId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    },
    "seasonId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    },
    "competitionSectionId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    },
    "competitionRound": {
      "type": "string",
      "nullable": true,
      "maxLength": 100
    },
    "faceitId": {
      "type": "string",
      "nullable": true
    },
    "dachcsId": {
      "type": "string",
      "nullable": true
    },
    "teamA": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "teamB": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "bestOf": {
      "type": "integer",
      "format": "int32",
      "minimum": 1,
      "enum": [
        1,
        3,
        5,
        7
      ],
      "default": 3
    },
    "mapPoolId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    },
    "winsA": {
      "type": "integer",
      "format": "int32",
      "minimum": 0
    },
    "winsB": {
      "type": "integer",
      "format": "int32",
      "minimum": 0
    },
    "mapIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "pattern": "^[A-Za-z0-9_-]\u002B$"
      },
      "uniqueItems": true
    },
    "mapResults": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MapResult"
      },
      "nullable": true
    },
    "vetos": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Veto"
      }
    }
  },
  "required": [
    "id",
    "name",
    "teamA",
    "teamB"
  ]
}

Schemafähiges Beispiel:

{
  "id": "match-2026",
  "name": "Example match",
  "teamA": "team-a",
  "teamB": "team-b"
}

startupConfig

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
contentjastringmaxLength: 250000

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "content": {
      "type": "string",
      "maxLength": 250000
    }
  },
  "required": [
    "id",
    "name",
    "content"
  ]
}

Schemafähiges Beispiel:

{
  "id": "config-demo",
  "name": "Example startupConfig",
  "content": "echo sOU"
}

panelTemplate

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
hudIdjastringminLength: 1
versionjastringminLength: 1
valuesjaobjectadditionalProperties: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "hudId": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "minLength": 1
    },
    "values": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "id",
    "hudId",
    "version",
    "values"
  ]
}

Schemafähiges Beispiel:

{
  "id": "template-main",
  "hudId": "example-hud",
  "version": "1.0.0",
  "values": {}
}

Sponsor

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
imagejastringnullable: false; pattern: "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "image": {
      "type": "string",
      "nullable": false,
      "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
    }
  },
  "required": [
    "id",
    "name",
    "image"
  ]
}

Schemafähiges Beispiel:

{
  "id": "example-id",
  "name": "Example HUD",
  "image": "/cast-media/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png"
}

Veto

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
mapIdjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
typejaintegerformat: "int32"; minimum: 0; maximum: 30 Unbekannt, 1 Pick, 2 Ban, 3 Entscheidungsmap.
teamIdneinstring | nullminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mapId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "type": {
      "type": "integer",
      "format": "int32",
      "minimum": 0,
      "maximum": 3,
      "description": "0 Unknown, 1 Pick, 2 Ban, 3 Decider."
    },
    "teamId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$",
      "nullable": true
    }
  },
  "required": [
    "mapId",
    "type"
  ]
}

Schemafähiges Beispiel:

{
  "mapId": "map-dust2",
  "type": 0
}

MapResult

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
mapIdjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
statusneinintegerformat: "int32"; minimum: 1; maximum: 3; default: 11 Ausstehend, 2 Laufend, 3 Abgeschlossen.
scoreAneininteger | nullformat: "int32"; minimum: 0; nullable: true
scoreBneininteger | nullformat: "int32"; minimum: 0; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mapId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "minimum": 1,
      "maximum": 3,
      "default": 1,
      "description": "1 Pending, 2 Live, 3 Completed."
    },
    "scoreA": {
      "type": "integer",
      "format": "int32",
      "minimum": 0,
      "nullable": true
    },
    "scoreB": {
      "type": "integer",
      "format": "int32",
      "minimum": 0,
      "nullable": true
    }
  },
  "required": [
    "mapId"
  ]
}

Schemafähiges Beispiel:

{
  "mapId": "map-dust2"
}

TeamResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "shortName": {
          "type": "string",
          "maxLength": 16
        },
        "logo": {
          "type": "string",
          "nullable": true,
          "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
        },
        "faceitId": {
          "type": "string",
          "nullable": true
        },
        "dachcsId": {
          "type": "string",
          "nullable": true
        }
      },
      "required": [
        "id",
        "name"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "team-a",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "team-a",
    "name": "Example team"
  }
}

WriteTeam

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajateam

Vollständige abhängige Schemas: team

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/team"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "team-a",
    "name": "Example team"
  }
}

TeamChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajateam

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: team

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/team"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "team-a",
  "expectedRevision": 0,
  "data": {
    "id": "team-a",
    "name": "Example team"
  }
}

PlayerResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringpattern: "^[0-9]{17}$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["steamId","name"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9]{17}$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "steamId": {
          "type": "string",
          "pattern": "^[0-9]{17}$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "teamId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$",
          "nullable": true
        },
        "avatar": {
          "type": "string",
          "nullable": true,
          "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
        },
        "isCoach": {
          "type": "boolean"
        }
      },
      "required": [
        "steamId",
        "name"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "76561198000000001",
  "revision": 1,
  "deleted": false,
  "data": {
    "steamId": "76561198000000001",
    "name": "Example player"
  }
}

WritePlayer

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajaplayer

Vollständige abhängige Schemas: player

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/player"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "steamId": "76561198000000001",
    "name": "Example player"
  }
}

PlayerChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringpattern: "^[0-9]{17}$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajaplayer

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringpattern: "^[0-9]{17}$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: player

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9]{17}$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/player"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9]{17}$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "76561198000000001",
  "expectedRevision": 0,
  "data": {
    "steamId": "76561198000000001",
    "name": "Example player"
  }
}

CompetitionResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name"]; nullable: true

Vollständige abhängige Schemas: Sponsor

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "logo": {
          "type": "string",
          "nullable": true,
          "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg)$"
        },
        "sponsors": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Sponsor"
          }
        }
      },
      "required": [
        "id",
        "name"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "competition-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "competition-2026",
    "name": "Example competition"
  }
}

WriteCompetition

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajacompetition

Vollständige abhängige Schemas: competition

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/competition"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "competition-2026",
    "name": "Example competition"
  }
}

CompetitionChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajacompetition

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: competition

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/competition"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "competition-2026",
  "expectedRevision": 0,
  "data": {
    "id": "competition-2026",
    "name": "Example competition"
  }
}

SeasonResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name","competitionId"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "competitionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        }
      },
      "required": [
        "id",
        "name",
        "competitionId"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "season-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "season-2026",
    "name": "Example season",
    "competitionId": "competition-2026"
  }
}

WriteSeason

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajaseason

Vollständige abhängige Schemas: season

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/season"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "season-2026",
    "name": "Example season",
    "competitionId": "competition-2026"
  }
}

SeasonChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajaseason

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: season

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/season"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "season-2026",
  "expectedRevision": 0,
  "data": {
    "id": "season-2026",
    "name": "Example season",
    "competitionId": "competition-2026"
  }
}

SectionResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name","competitionId"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "competitionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "seasonId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$",
          "nullable": true
        },
        "parentId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$",
          "nullable": true
        },
        "kind": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "maximum": 6,
          "description": "1 Region, 2 Division, 3 Phase, 4 Group, 5 Round, 6 Other. Default 6."
        }
      },
      "required": [
        "id",
        "name",
        "competitionId"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "section-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "section-2026",
    "name": "Example section",
    "competitionId": "competition-2026"
  }
}

WriteSection

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajasection

Vollständige abhängige Schemas: section

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/section"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "section-2026",
    "name": "Example section",
    "competitionId": "competition-2026"
  }
}

SectionChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajasection

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: section

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/section"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "section-2026",
  "expectedRevision": 0,
  "data": {
    "id": "section-2026",
    "name": "Example section",
    "competitionId": "competition-2026"
  }
}

MapResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name","gameName"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "gameName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[a-z0-9_][a-z0-9_/-]*$"
        },
        "logo": {
          "type": "string",
          "nullable": true,
          "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
        },
        "background": {
          "type": "string",
          "nullable": true,
          "pattern": "^/cast-media/[a-f0-9]{64}\\.(png|jpg|gif)$"
        }
      },
      "required": [
        "id",
        "name",
        "gameName"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "map-dust2",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "map-dust2",
    "name": "Example map",
    "gameName": "de_dust2"
  }
}

WriteMap

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajamap

Vollständige abhängige Schemas: map

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/map"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "map-dust2",
    "name": "Example map",
    "gameName": "de_dust2"
  }
}

MapChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajamap

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: map

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/map"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "map-dust2",
  "expectedRevision": 0,
  "data": {
    "id": "map-dust2",
    "name": "Example map",
    "gameName": "de_dust2"
  }
}

MapPoolResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "mapIds": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]\u002B$"
          },
          "uniqueItems": true
        }
      },
      "required": [
        "id",
        "name"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "pool-main",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "pool-main",
    "name": "Example mapPool"
  }
}

WriteMapPool

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajamapPool

Vollständige abhängige Schemas: mapPool

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/mapPool"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "pool-main",
    "name": "Example mapPool"
  }
}

MapPoolChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajamapPool

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: mapPool

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/mapPool"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "pool-main",
  "expectedRevision": 0,
  "data": {
    "id": "pool-main",
    "name": "Example mapPool"
  }
}

MatchResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name","teamA","teamB"]; nullable: true

Vollständige abhängige Schemas: MapResult · Veto

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "startsAt": {
          "type": "string",
          "format": "date-time",
          "nullable": true
        },
        "competitionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$",
          "nullable": true
        },
        "seasonId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$",
          "nullable": true
        },
        "competitionSectionId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$",
          "nullable": true
        },
        "competitionRound": {
          "type": "string",
          "nullable": true,
          "maxLength": 100
        },
        "faceitId": {
          "type": "string",
          "nullable": true
        },
        "dachcsId": {
          "type": "string",
          "nullable": true
        },
        "teamA": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "teamB": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "bestOf": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "enum": [
            1,
            3,
            5,
            7
          ],
          "default": 3
        },
        "mapPoolId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$",
          "nullable": true
        },
        "winsA": {
          "type": "integer",
          "format": "int32",
          "minimum": 0
        },
        "winsB": {
          "type": "integer",
          "format": "int32",
          "minimum": 0
        },
        "mapIds": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]\u002B$"
          },
          "uniqueItems": true
        },
        "mapResults": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MapResult"
          },
          "nullable": true
        },
        "vetos": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Veto"
          }
        }
      },
      "required": [
        "id",
        "name",
        "teamA",
        "teamB"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "match-2026",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "match-2026",
    "name": "Example match",
    "teamA": "team-a",
    "teamB": "team-b"
  }
}

WriteMatch

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajamatch

Vollständige abhängige Schemas: match

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/match"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "match-2026",
    "name": "Example match",
    "teamA": "team-a",
    "teamB": "team-b"
  }
}

MatchChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajamatch

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: match

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/match"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "match-2026",
  "expectedRevision": 0,
  "data": {
    "id": "match-2026",
    "name": "Example match",
    "teamA": "team-a",
    "teamB": "team-b"
  }
}

StartupConfigResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","name","content"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "content": {
          "type": "string",
          "maxLength": 250000
        }
      },
      "required": [
        "id",
        "name",
        "content"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "config-demo",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "config-demo",
    "name": "Example startupConfig",
    "content": "echo sOU"
  }
}

WriteStartupConfig

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajastartupConfig

Vollständige abhängige Schemas: startupConfig

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/startupConfig"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "config-demo",
    "name": "Example startupConfig",
    "content": "echo sOU"
  }
}

StartupConfigChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajastartupConfig

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: startupConfig

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/startupConfig"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "config-demo",
  "expectedRevision": 0,
  "data": {
    "id": "config-demo",
    "name": "Example startupConfig",
    "content": "echo sOU"
  }
}

PanelTemplateResource

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
revisionjaintegerformat: "int64"; minimum: 0
deletedjaboolean
datajaobject | nulladditionalProperties: false; required: ["id","hudId","version","values"]; nullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_-]\u002B$"
    },
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "deleted": {
      "type": "boolean"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "hudId": {
          "type": "string",
          "minLength": 1
        },
        "version": {
          "type": "string",
          "minLength": 1
        },
        "values": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "id",
        "hudId",
        "version",
        "values"
      ],
      "nullable": true
    }
  },
  "required": [
    "id",
    "revision",
    "deleted",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "id": "template-main",
  "revision": 1,
  "deleted": false,
  "data": {
    "id": "template-main",
    "hudId": "example-hud",
    "version": "1.0.0",
    "values": {}
  }
}

WritePanelTemplate

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
expectedRevisionjaintegerformat: "int64"; minimum: 0
datajapanelTemplate

Vollständige abhängige Schemas: panelTemplate

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "data": {
      "$ref": "#/components/schemas/panelTemplate"
    }
  },
  "required": [
    "expectedRevision",
    "data"
  ]
}

Schemafähiges Beispiel:

{
  "expectedRevision": 0,
  "data": {
    "id": "template-main",
    "hudId": "example-hud",
    "version": "1.0.0",
    "values": {}
  }
}

PanelTemplateChange

Alternative Schemas: 2

Variante 1

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedneinbooleanenum: [false]
datajapanelTemplate

Variante 2

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringminLength: 1; maxLength: 100; pattern: "^[A-Za-z0-9_-]\u002B$"
expectedRevisionjaintegerformat: "int64"; minimum: 0
deletedjabooleanenum: [true]
dataneinobject | nullnullable: true; enum: [null]

Vollständige abhängige Schemas: panelTemplate

Vollständige Originaldefinition:

{
  "anyOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            false
          ]
        },
        "data": {
          "$ref": "#/components/schemas/panelTemplate"
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "data"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[A-Za-z0-9_-]\u002B$"
        },
        "expectedRevision": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "deleted": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "data": {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      },
      "required": [
        "id",
        "expectedRevision",
        "deleted"
      ]
    }
  ]
}

Schemafähiges Beispiel:

{
  "id": "template-main",
  "expectedRevision": 0,
  "data": {
    "id": "template-main",
    "hudId": "example-hud",
    "version": "1.0.0",
    "values": {}
  }
}

WorkspaceChanges

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
teamsneinarraymaxItems: 5000
playersneinarraymaxItems: 5000
competitionsneinarraymaxItems: 5000
seasonsneinarraymaxItems: 5000
sectionsneinarraymaxItems: 5000
mapsneinarraymaxItems: 5000
mapPoolsneinarraymaxItems: 5000
matchesneinarraymaxItems: 5000
startupConfigsneinarraymaxItems: 5000
panelTemplatesneinarraymaxItems: 5000

Vollständige abhängige Schemas: CompetitionChange · MapChange · MapPoolChange · MatchChange · PanelTemplateChange · PlayerChange · SeasonChange · SectionChange · StartupConfigChange · TeamChange

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "teams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TeamChange"
      },
      "maxItems": 5000
    },
    "players": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PlayerChange"
      },
      "maxItems": 5000
    },
    "competitions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CompetitionChange"
      },
      "maxItems": 5000
    },
    "seasons": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SeasonChange"
      },
      "maxItems": 5000
    },
    "sections": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SectionChange"
      },
      "maxItems": 5000
    },
    "maps": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MapChange"
      },
      "maxItems": 5000
    },
    "mapPools": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MapPoolChange"
      },
      "maxItems": 5000
    },
    "matches": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MatchChange"
      },
      "maxItems": 5000
    },
    "startupConfigs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StartupConfigChange"
      },
      "maxItems": 5000
    },
    "panelTemplates": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PanelTemplateChange"
      },
      "maxItems": 5000
    }
  },
  "minProperties": 1
}

Schemafähiges Beispiel:

{
  "teams": [
    {
      "id": "team-a",
      "expectedRevision": 0,
      "data": {
        "id": "team-a",
        "name": "Example team"
      }
    }
  ]
}

WorkspaceSnapshot

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
teamsjaarray
playersjaarray
competitionsjaarray
seasonsjaarray
sectionsjaarray
mapsjaarray
mapPoolsjaarray
matchesjaarray
startupConfigsjaarray
panelTemplatesjaarray

Vollständige abhängige Schemas: CompetitionResource · MapPoolResource · MapResource · MatchResource · PanelTemplateResource · PlayerResource · SeasonResource · SectionResource · StartupConfigResource · TeamResource

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "teams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TeamResource"
      }
    },
    "players": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PlayerResource"
      }
    },
    "competitions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CompetitionResource"
      }
    },
    "seasons": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SeasonResource"
      }
    },
    "sections": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SectionResource"
      }
    },
    "maps": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MapResource"
      }
    },
    "mapPools": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MapPoolResource"
      }
    },
    "matches": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/MatchResource"
      }
    },
    "startupConfigs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StartupConfigResource"
      }
    },
    "panelTemplates": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PanelTemplateResource"
      }
    }
  },
  "required": [
    "teams",
    "players",
    "competitions",
    "seasons",
    "sections",
    "maps",
    "mapPools",
    "matches",
    "startupConfigs",
    "panelTemplates"
  ]
}

Schemafähiges Beispiel:

{
  "teams": [],
  "players": [],
  "competitions": [],
  "seasons": [],
  "sections": [],
  "maps": [],
  "mapPools": [],
  "matches": [],
  "startupConfigs": [],
  "panelTemplates": []
}

CheckMedia

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
namesjaarrayHöchstens 5000 unterschiedliche Namen und 400000 Bytes Anfragekörper; Duplikate werden ignoriert.

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "names": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-f0-9]{64}\\.(png|jpg|gif)$"
      },
      "description": "At most 5000 distinct names, 400000 body bytes; duplicates ignored."
    }
  },
  "required": [
    "names"
  ]
}

Schemafähiges Beispiel:

{
  "names": [
    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png"
  ]
}

MediaPresence

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
missingjaarray

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "missing": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "missing"
  ]
}

Schemafähiges Beispiel:

{
  "missing": [
    "example"
  ]
}

HudTranslationInput

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
languagejastringminLength: 1; maxLength: 63BCP-47-Sprachkennung, in Kleinbuchstaben normalisiert. Jedes befüllte übersetzte Feld und jede Medienart benötigt ein englisches en-Gegenstück.
descriptionneinstring | nullnullable: true; maxLength: 8000Markdown wird einschließlich Einrückung und Zeilenumbrüchen unverändert gespeichert; reine Leerzeichen gelten als leer. Rohes HTML wird nicht als vertrauenswürdig behandelt oder ausgeführt.
authorneinstring | nullnullable: true; maxLength: 200
authorUrlneinstring | nullnullable: true; maxLength: 2048
imprintUrlneinstring | nullnullable: true; maxLength: 2048
privacyUrlneinstring | nullnullable: true; maxLength: 2048
termsneinstring | nullnullable: true; maxLength: 8000Markdown wird einschließlich Einrückung und Zeilenumbrüchen unverändert gespeichert; reine Leerzeichen gelten als leer. Rohes HTML wird nicht als vertrauenswürdig behandelt oder ausgeführt. Bei Änderungen erhalten null oder fehlende Werte bestehende Felder vorhandener Sprachzeilen; eine leere Zeichenfolge leert sie. Fehlende Sprachzeilen verlieren alle Textfelder.
licenseneinstring | nullnullable: true; maxLength: 8000Markdown wird einschließlich Einrückung und Zeilenumbrüchen unverändert gespeichert; reine Leerzeichen gelten als leer. Rohes HTML wird nicht als vertrauenswürdig behandelt oder ausgeführt. Bei Änderungen erhalten null oder fehlende Werte bestehende Felder vorhandener Sprachzeilen; eine leere Zeichenfolge leert sie. Fehlende Sprachzeilen verlieren alle Textfelder.

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "description": "BCP 47 language tag, normalized to lowercase. Each populated translated field or media kind requires an English en counterpart."
    },
    "description": {
      "type": "string",
      "nullable": true,
      "maxLength": 8000,
      "description": "Markdown source stored verbatim, including indentation and line breaks; whitespace-only values are empty. Raw HTML is not trusted or executed."
    },
    "author": {
      "type": "string",
      "nullable": true,
      "maxLength": 200
    },
    "authorUrl": {
      "type": "string",
      "nullable": true,
      "maxLength": 2048
    },
    "imprintUrl": {
      "type": "string",
      "nullable": true,
      "maxLength": 2048
    },
    "privacyUrl": {
      "type": "string",
      "nullable": true,
      "maxLength": 2048
    },
    "terms": {
      "type": "string",
      "nullable": true,
      "maxLength": 8000,
      "description": "Markdown source stored verbatim, including indentation and line breaks; whitespace-only values are empty. Raw HTML is not trusted or executed. On update, null or an omitted value preserves the existing field in a retained language row; an explicit empty string clears it. Omitting a language row removes all of its text fields."
    },
    "license": {
      "type": "string",
      "nullable": true,
      "maxLength": 8000,
      "description": "Markdown source stored verbatim, including indentation and line breaks; whitespace-only values are empty. Raw HTML is not trusted or executed. On update, null or an omitted value preserves the existing field in a retained language row; an explicit empty string clears it. Omitting a language row removes all of its text fields."
    }
  },
  "required": [
    "language"
  ]
}

Schemafähiges Beispiel:

{
  "language": "en",
  "description": "Example HUD description.",
  "author": "Example creator",
  "authorUrl": "https://example.com/",
  "terms": "Example terms.",
  "license": "MIT"
}

HudMedia

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringformat: "uuid"
languagejastringminLength: 1; maxLength: 63BCP-47-Sprachkennung, in Kleinbuchstaben normalisiert. Jedes befüllte übersetzte Feld und jede Medienart benötigt ein englisches en-Gegenstück.
kindjastringenum: ["preview","gallery","demo"]
contentTypejastring
lengthjaintegerformat: "int64"; minimum: 1
widthjainteger | nullformat: "int32"; minimum: 1; nullable: true
heightjainteger | nullformat: "int32"; minimum: 1; nullable: true
positionjaintegerformat: "int32"; minimum: 0

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "description": "BCP 47 language tag, normalized to lowercase. Each populated translated field or media kind requires an English en counterpart."
    },
    "kind": {
      "type": "string",
      "enum": [
        "preview",
        "gallery",
        "demo"
      ]
    },
    "contentType": {
      "type": "string"
    },
    "length": {
      "type": "integer",
      "format": "int64",
      "minimum": 1
    },
    "width": {
      "type": "integer",
      "format": "int32",
      "minimum": 1,
      "nullable": true
    },
    "height": {
      "type": "integer",
      "format": "int32",
      "minimum": 1,
      "nullable": true
    },
    "position": {
      "type": "integer",
      "format": "int32",
      "minimum": 0
    }
  },
  "required": [
    "id",
    "language",
    "kind",
    "contentType",
    "length",
    "width",
    "height",
    "position"
  ]
}

Schemafähiges Beispiel:

{
  "id": "55555555-5555-4555-8555-555555555555",
  "language": "en",
  "kind": "preview",
  "contentType": "image/png",
  "length": 32768,
  "width": 1920,
  "height": 900,
  "position": 0
}

HudTranslation

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
languagejastringminLength: 1; maxLength: 63BCP-47-Sprachkennung, in Kleinbuchstaben normalisiert. Jedes befüllte übersetzte Feld und jede Medienart benötigt ein englisches en-Gegenstück.
descriptionjastring | nullnullable: true; maxLength: 8000Markdown wird einschließlich Einrückung und Zeilenumbrüchen unverändert gespeichert; reine Leerzeichen gelten als leer. Rohes HTML wird nicht als vertrauenswürdig behandelt oder ausgeführt.
authorjastring | nullnullable: true; maxLength: 200
authorUrljastring | nullnullable: true; maxLength: 2048
imprintUrljastring | nullnullable: true; maxLength: 2048
privacyUrljastring | nullnullable: true; maxLength: 2048
termsneinstring | nullnullable: true; maxLength: 8000Markdown wird einschließlich Einrückung und Zeilenumbrüchen unverändert gespeichert; reine Leerzeichen gelten als leer. Rohes HTML wird nicht als vertrauenswürdig behandelt oder ausgeführt. Bei Änderungen erhalten null oder fehlende Werte bestehende Felder vorhandener Sprachzeilen; eine leere Zeichenfolge leert sie. Fehlende Sprachzeilen verlieren alle Textfelder.
licenseneinstring | nullnullable: true; maxLength: 8000Markdown wird einschließlich Einrückung und Zeilenumbrüchen unverändert gespeichert; reine Leerzeichen gelten als leer. Rohes HTML wird nicht als vertrauenswürdig behandelt oder ausgeführt. Bei Änderungen erhalten null oder fehlende Werte bestehende Felder vorhandener Sprachzeilen; eine leere Zeichenfolge leert sie. Fehlende Sprachzeilen verlieren alle Textfelder.
previewjaanyOfanyOf: [{"$ref":"#/components/schemas/HudMedia"},{"type":"object","nullable":true,"enum":[null]}]
galleryjaarray
demojaanyOfanyOf: [{"$ref":"#/components/schemas/HudMedia"},{"type":"object","nullable":true,"enum":[null]}]

Vollständige abhängige Schemas: HudMedia

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "language": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "description": "BCP 47 language tag, normalized to lowercase. Each populated translated field or media kind requires an English en counterpart."
    },
    "description": {
      "type": "string",
      "nullable": true,
      "maxLength": 8000,
      "description": "Markdown source stored verbatim, including indentation and line breaks; whitespace-only values are empty. Raw HTML is not trusted or executed."
    },
    "author": {
      "type": "string",
      "nullable": true,
      "maxLength": 200
    },
    "authorUrl": {
      "type": "string",
      "nullable": true,
      "maxLength": 2048
    },
    "imprintUrl": {
      "type": "string",
      "nullable": true,
      "maxLength": 2048
    },
    "privacyUrl": {
      "type": "string",
      "nullable": true,
      "maxLength": 2048
    },
    "terms": {
      "type": "string",
      "nullable": true,
      "maxLength": 8000,
      "description": "Markdown source stored verbatim, including indentation and line breaks; whitespace-only values are empty. Raw HTML is not trusted or executed. On update, null or an omitted value preserves the existing field in a retained language row; an explicit empty string clears it. Omitting a language row removes all of its text fields."
    },
    "license": {
      "type": "string",
      "nullable": true,
      "maxLength": 8000,
      "description": "Markdown source stored verbatim, including indentation and line breaks; whitespace-only values are empty. Raw HTML is not trusted or executed. On update, null or an omitted value preserves the existing field in a retained language row; an explicit empty string clears it. Omitting a language row removes all of its text fields."
    },
    "preview": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/HudMedia"
        },
        {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      ]
    },
    "gallery": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/HudMedia"
      }
    },
    "demo": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/HudMedia"
        },
        {
          "type": "object",
          "nullable": true,
          "enum": [
            null
          ]
        }
      ]
    }
  },
  "required": [
    "language",
    "description",
    "author",
    "authorUrl",
    "imprintUrl",
    "privacyUrl",
    "preview",
    "gallery",
    "demo"
  ]
}

Schemafähiges Beispiel:

{
  "language": "en",
  "description": null,
  "author": null,
  "authorUrl": null,
  "imprintUrl": null,
  "privacyUrl": null,
  "preview": null,
  "gallery": [],
  "demo": null
}

HudDetails

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
revisionjaintegerformat: "int64"; minimum: 0
translationsjaarray

Vollständige abhängige Schemas: HudTranslation

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "translations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/HudTranslation"
      }
    }
  },
  "required": [
    "revision",
    "translations"
  ]
}

Schemafähiges Beispiel:

{
  "revision": 1,
  "translations": [
    {
      "language": "en",
      "description": null,
      "author": null,
      "authorUrl": null,
      "imprintUrl": null,
      "privacyUrl": null,
      "preview": null,
      "gallery": [],
      "demo": null
    }
  ]
}

SetHudDetails

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
revisionjaintegerformat: "int64"; minimum: 0
translationsjaarraymaxItems: 256

Vollständige abhängige Schemas: HudTranslationInput

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "revision": {
      "type": "integer",
      "format": "int64",
      "minimum": 0
    },
    "translations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/HudTranslationInput"
      },
      "maxItems": 256
    }
  },
  "required": [
    "revision",
    "translations"
  ]
}

Schemafähiges Beispiel:

{
  "revision": 0,
  "translations": [
    {
      "language": "en",
      "description": "Example HUD description.",
      "author": "Example creator",
      "authorUrl": "https://example.com/",
      "terms": "Example terms.",
      "license": "MIT"
    }
  ]
}

CreatorHudCreate

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
visibilityjastringenum: ["private","open","approval"]
translationsneinarray | nullnullable: true; maxItems: 256

Vollständige abhängige Schemas: HudTranslationInput

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "private",
        "open",
        "approval"
      ]
    },
    "translations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/HudTranslationInput"
      },
      "nullable": true,
      "maxItems": 256
    }
  },
  "required": [
    "name",
    "visibility"
  ]
}

Schemafähiges Beispiel:

{
  "name": "Example HUD",
  "visibility": "private",
  "translations": [
    {
      "language": "en",
      "description": "Example HUD description.",
      "author": "Example creator",
      "authorUrl": "https://example.com/",
      "terms": "Example terms.",
      "license": "MIT"
    }
  ]
}

CreatorHud

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringformat: "uuid"
organizationIdjastringformat: "uuid"
packageIdjastring | nullnullable: true
namejastringminLength: 1; maxLength: 100; pattern: "\\S"
visibilityjastringenum: ["private","open","approval"]
listedjaboolean

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "organizationId": {
      "type": "string",
      "format": "uuid"
    },
    "packageId": {
      "type": "string",
      "nullable": true
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "private",
        "open",
        "approval"
      ]
    },
    "listed": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "organizationId",
    "packageId",
    "name",
    "visibility",
    "listed"
  ]
}

Schemafähiges Beispiel:

{
  "id": "33333333-3333-4333-8333-333333333333",
  "organizationId": "22222222-2222-4222-8222-222222222222",
  "packageId": null,
  "name": "Example HUD",
  "visibility": "private",
  "listed": false
}

CreatorRelease

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
idjastringformat: "uuid"
hudIdjastringformat: "uuid"
versionjastring
hashjastringpattern: "^[a-f0-9]{64}$"
statejastringenum: ["pending","approved","rejected"]
reviewjastring | nullnullable: true

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "hudId": {
      "type": "string",
      "format": "uuid"
    },
    "version": {
      "type": "string"
    },
    "hash": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "state": {
      "type": "string",
      "enum": [
        "pending",
        "approved",
        "rejected"
      ]
    },
    "review": {
      "type": "string",
      "nullable": true
    }
  },
  "required": [
    "id",
    "hudId",
    "version",
    "hash",
    "state",
    "review"
  ]
}

Schemafähiges Beispiel:

{
  "id": "44444444-4444-4444-8444-444444444444",
  "hudId": "33333333-3333-4333-8333-333333333333",
  "version": "1.0.0",
  "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "state": "pending",
  "review": null
}

HudGrant

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
hudIdjastringformat: "uuid"
workspaceIdjastringformat: "uuid"
approvedjaboolean
selectedReleaseIdjastring | nullformat: "uuid"; nullable: true
requestedjaboolean

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "hudId": {
      "type": "string",
      "format": "uuid"
    },
    "workspaceId": {
      "type": "string",
      "format": "uuid"
    },
    "approved": {
      "type": "boolean"
    },
    "selectedReleaseId": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    },
    "requested": {
      "type": "boolean"
    }
  },
  "required": [
    "hudId",
    "workspaceId",
    "approved",
    "selectedReleaseId",
    "requested"
  ]
}

Schemafähiges Beispiel:

{
  "hudId": "33333333-3333-4333-8333-333333333333",
  "workspaceId": "11111111-1111-4111-8111-111111111111",
  "approved": false,
  "selectedReleaseId": null,
  "requested": false
}

SetHudGrant

FeldPflichtTyp / VerweisGrenzen und StandardBedeutung
approvedjaboolean

Vollständige Originaldefinition:

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "approved": {
      "type": "boolean"
    }
  },
  "required": [
    "approved"
  ]
}

Schemafähiges Beispiel:

{
  "approved": false
}
Zum Seitenanfang

Bildansicht