Skip to main content
Die Public API ermöglicht externen Anwendungen den schreibgeschützten Abruf ausgewählter Daten eines Discord-Servers. Jede Anfrage muss mit einem für diesen Server erstellten API-Key autorisiert werden. Die API gibt keine globale Liste aller Server aus. Daten werden immer für eine konkrete guild_id und einen unterstützten Datentyp angefragt. Die Plattform-Umfrage ist nicht Teil der API.

Voraussetzungen

  • Die API muss in der Serververwaltung für den betreffenden Discord-Server aktiviert sein.
  • Für den Server muss mindestens ein aktiver API-Key existieren.
  • Der API-Key muss für genau diesen Server gültig sein.
Die API lässt sich im Dashboard unter Server → API-Management aktivieren. Dort kann ein API-Key erstellt, dessen Anfragelimit angepasst und der Key bei Bedarf gelöscht werden. Der vollständige API-Key wird nur bei seiner Erstellung angezeigt. Speichere ihn deshalb direkt an einem sicheren Ort.

Basis-URL

Alle Anfragen verwenden diesen Endpunkt:
Jede Datenabfrage benötigt die Parameter guild_id und type. * Alternativ zum Parameter key kann der Key im HTTP-Header X-API-KEY oder als Bearer-Token übergeben werden. Der X-API-KEY-Header hat Vorrang, wenn er gesetzt ist.

Authentifizierung

Empfohlen: HTTP-Header

Übergib den API-Key bei jeder Anfrage im Header X-API-KEY:
Beispiel mit curl:
Alternativ wird ein Bearer-Token im Authorization-Header unterstützt:

Alternative: URL-Parameter

Wenn die Anwendung keine benutzerdefinierten HTTP-Header senden kann, kann der Key über key übergeben werden:
Bevorzuge den HTTP-Header. API-Keys in URLs können im Browser-Verlauf, in Proxy- oder Server-Logs und in Analysewerkzeugen gespeichert werden. Teile eine URL mit key niemals öffentlich.

Unterstützte Datentypen

Die folgenden Typen können mit type abgefragt werden. Jeder Typ benötigt zusätzlich die guild_id des Servers. Die API liefert nur Daten zurück, die für den angefragten Typ und Server gespeichert sind. Ist für einen Typ keine Datei vorhanden, antwortet die API mit 404 Not Found.

Antwortformat

Erfolgreiche Antworten verwenden UTF-8-kodiertes JSON. Die Server-ID und IDs in den zurückgegebenen Daten werden, soweit erkannt, als Strings ausgegeben, damit große Discord-IDs nicht durch Zahlenrundung verändert werden.
Die Felder innerhalb von data hängen vom angefragten Datentyp ab. Die Antwort enthält Cache-Control: no-store, damit Clients die Serverdaten nicht aus einem HTTP-Cache beziehen.

HTTP-Methoden

Die API unterstützt ausschließlich GET für Datenabfragen. Änderungen an Serverdaten sind über diesen Endpunkt nicht möglich.

Rate-Limit

Jeder API-Key besitzt ein eigenes Anfragelimit pro Minute. Das Limit wird beim Erstellen des Keys festgelegt und kann in der Serververwaltung angepasst werden. Zulässig sind Werte von 1 bis 10.000 Anfragen pro Minute; falls für einen Key kein gültiger Wert gesetzt ist, gilt der Standardwert von 120. Wird das Limit überschritten, antwortet die API mit 429 Too Many Requests und einem Retry-After-Header. Dieser gibt an, wie viele Sekunden bis zum nächsten Anfragefenster gewartet werden muss.
Die API liefert derzeit keine X-RateLimit-Limit- oder X-RateLimit-Remaining-Header.

Fehlerbehandlung

Fehlerantworten enthalten JSON mit einer Beschreibung im Feld error.

Sicherheitshinweise

  • Behandle API-Keys wie Passwörter und teile sie nicht öffentlich.
  • Speichere API-Keys nicht in öffentlich zugänglichem Frontend-Code oder clientseitigen Anwendungen.
  • Lösche nicht mehr benötigte Keys direkt in der Serververwaltung.
  • Aktiviere nur die API und Datentypen, die dein Projekt tatsächlich benötigt.
  • Prüfe, ob dein Projekt personenbezogene oder anderweitig sensible Daten aus den abgefragten Servermodulen verarbeitet.
  • API-Keys sind serverbezogen: Ein für einen Server ausgestellter Key autorisiert keine Abfragen für andere Server.

Nicht verfügbare Funktionen

Diese API stellt keine globalen Endpunkte für sys_status, list_guilds, globale Blacklists, Ankündigungen oder die Plattform-Umfrage bereit. Es können ausschließlich die oben aufgeführten Typen zusammen mit einer gültigen guild_id abgefragt werden.