Authentifizierung und Routen
Die Abrufrouten verwenden GET unter https://api.redditgateway.com. Senden Sie X-API-Key: <Schlüssel> oder Authorization: Bearer <Schlüssel>; beide Header sind zulässig. Bewahren Sie den Schlüssel auf Ihrem Server auf. Der Kontobereich verwendet eine Sitzung mit Secure HttpOnly-Cookie. Diese Sitzung ist von der Authentifizierung Ihrer Datenabfragen getrennt und ersetzt nicht den erforderlichen Header im eigenen Client.
/v1/search durchsucht Veröffentlichungen und Kommentare, /v1/posts beschränkt die Auswahl auf Veröffentlichungen und /v1/comments auf Kommentare. Diese Routen akzeptieren keinen id-Filter. Für eine bekannte Kennung sucht /v1/item?id=... einen einzelnen Datensatz. Die Route ruft weder dessen Antworten noch sämtliche untergeordneten Kommentare oder die ganze Kette vorheriger Nachrichten automatisch ab. Auch das Auffinden des bezeichneten Datensatzes ist nicht garantiert.
/v1/subreddits akzeptiert prefix und limit zur Suche nach Communities. prefix ist kein Filter für die Inhaltsrouten. Die dort genannten Anzahlen sind kein garantiert exakter Gesamtzensus. /v1/status ist öffentlich und wird nicht berechnet. Der Endpunkt gibt eine statische Beschreibung des Dienstes aus und bestätigt die Antwort der HTTP-Anwendung, ohne die Suchmaschine oder die Verfügbarkeit von Archivdatensätzen zu prüfen.
Filter und zurückgegebene Daten
Für search, posts und comments sind q, subreddit, author, kind, from, to, min_score, limit und page zulässig. kind akzeptiert die unveränderten Werte post und comment. q führt eine Textsuche aus, keine beliebige Abfragesprache und keine Analyse von Stimmungen. Überlegen Sie bei jedem Filter, ob er Nachrichten ausschließt, die später als Kontext zum Verständnis einer Antwort benötigt werden könnten.
from und to erwarten YYYY-MM-DD in UTC und beziehen sich auf created_utc. Der Tag to wird vollständig eingeschlossen. Stunden oder Sekunden werden mit diesen Parametern nicht angegeben; es geht auch nicht um den Zeitpunkt der Aufnahme ins Archiv. min_score ist ein numerischer Mindestwert für die Bewertung. Der Filter sortiert nicht und erkennt weder verlässliche Antworten noch besonders gute Lernmaterialien.
Die Abfrageergebnisse enthalten flache Datensätze, keine serverseitigen Thread-Bäume. Die clientseitige Gruppierung anhand von parent_id und link_id ist optional, wenn diese Felder vorhanden sind. Es gibt keine Server-Filter für parent_id oder link_id, was bedeutet, dass keine vollständige Hierarchie garantiert ist. Die Antwort enthält data, pagination und credits. Einzelne Datenfelder können fehlen. Fehlende Verweise dürfen nicht als erfolgreich abgerufene Datensätze behandelt werden; die API ergänzt keine automatisch vollständige Hierarchie.
Seitengrenzen, Fehler und Abrechnung
limit und page erlauben Werte von 1 bis 100. Die interne Reihenfolge _doc garantiert keine Sortierung nach Zeit, Relevanz oder Bewertung. Eine lokal sortierte Tabelle ordnet nur die empfangenen Datensätze neu. Kleinere Zeiträume und weitere Seiten können eine Erhebung organisieren, beweisen aber weder vollständige Abdeckung noch Einmaligkeit oder unveränderte Daten zwischen zwei entfernten Abfragen. Dokumentieren Sie deshalb die Grenzen Ihrer tatsächlich erhaltenen Auswahl.
Lesen Sie pagination.total zusammen mit relation: eq bezeichnet eine exakte Anzahl für die Abfrage, gte eine untere Schranke und unknown eine nicht verlässlich bekannte Anzahl, gegebenenfalls null. Unbekannt ist nicht null Datensätze. Selbst eine exakte Anzahl beweist nicht den vollständigen Download und auch nicht die Erfassung aller historischen Kommentare. Bewahren Sie die zurückgegebenen Hinweise zur Paginierung für Ihren Bericht auf.
HTTP 400 bedeutet ungültige Parameter, 401 einen fehlenden oder ungültigen Schlüssel, 402 zu wenig Guthaben und 429 eine Begrenzung der Anfragehäufigkeit. Jeder erfolgreiche Abruf kostet einen Credit, auch ein leerer. Ungültige Anfragen buchen nichts ab; Fehler des vorgeschalteten Dienstes erstatten die Reservierung. Ein Client kann die Antwort nach berechnetem Erfolg verlieren. Ein erfolgreicher neuer Versuch wird erneut berechnet. Speichern Sie die Antwort, bevor Sie Ihren lokalen Fortschritt aktualisieren.