Grundlagen und Vorbereitungen
Diese API bietet Zugang zu einem unabhängigen historischen Reddit-Archiv, ohne offizielle Verbindung zu Reddit und ohne Echtzeitdaten. Python und JavaScript können dieselben HTTP-Routen nutzen, um Beiträge und Kommentare abzurufen. Die Ergebnisse sind jedoch weder eine vollständige Erfassung noch eine dauerhaft verfügbare oder unveränderliche Kopie von Reddit. Definieren Sie zunächst die Fragestellung Ihrer Anwendung.
Registrieren Sie sich mit E-Mail und einem Passwort von 12 bis 72 Bytes. Der Schlüssel erscheint sofort einmalig nach der Registrierung, vor Zahlung. Bewahren Sie ihn auf dem Server auf. 100 Test-Credits können nach den netzwerkweiten Regeln zur Missbrauchsabwehr gewährt werden. Die Mindestaufladung von $50 ergibt 50000 gekaufte Credits, nicht die Voraussetzung für die Schlüsselanzeige.
Trennen Sie HTTP-Zugriff, Datenaufbereitung und Darstellung. In Python kommen beispielsweise urllib.request und json infrage, in Node.js fetch und URLSearchParams. Verwenden Sie die URL-Werkzeuge des jeweiligen Clients zum Kodieren der Parameter. Authentifizierte Abrufe senden Authorization mit dem Schema Bearer an api.redditapistack.com. Der öffentliche Browsercode Ihrer Nutzer sollte den Schlüssel nicht enthalten.
Endpoints und Datenabfrage
Verwenden Sie /v1/search für allgemeine Suchen, /v1/posts für Beiträge und /v1/comments für Kommentare. Suchfilter sind q, subreddit, author, kind, from, to, min_score, limit und page. kind nimmt post oder comment an. Datumsgrenzen sind YYYY-MM-DD in UTC, wobei to einschließlich gilt. Bewahren Sie die Kriterien neben den Ergebnissen auf, damit deren Umfang verständlich bleibt.
Die interne Reihenfolge _doc ist nicht chronologisch und nicht nach Relevanz oder Punktzahl sortiert. min_score setzt nur eine Untergrenze der Punktzahl. limit erlaubt höchstens 100 Datensätze pro Anfrage, page höchstens 100 Seiten pro Abfrage. Verändern Sie beim Seitenwechsel nicht unbemerkt die Filter. Auch eine zeitliche Aufteilung beweist weder vollständigen Abruf noch das Fehlen von Duplikaten.
Für einen einzelnen bekannten Datensatz verwenden Sie /v1/item mit id; /v1/subreddits unterstützt prefix. Antworten sind flach, ohne serverseitig aufgebaute Diskussionsbäume. Sind parent_id oder link_id vorhanden, können Sie die erhaltenen Elemente lokal gruppieren. Kennzeichnen Sie fehlende Beziehungen. Totale mit eq sind exakt für die Abfrage, gte ist eine Untergrenze und unknown bedeutet kein verlässliches Total.
Fehlerbehandlung und Status
Prüfen Sie den HTTP-Status vor der Auswertung des Körpers: 400 bedeutet ungültige Parameter, 401 einen fehlenden oder ungültigen Schlüssel, 402 unzureichendes Guthaben und 429 eine Ratenbegrenzung. fetch kann eine HTTP-Fehlerantwort erhalten, ohne die Promise abzulehnen; urllib.request kann HTTPError auslösen. Trennen Sie diese Antworten von Verbindungsfehlern und begrenzen Sie weitere Versuche.
Jeder erfolgreiche Abruf kostet einen Credit, auch ohne Treffer. Ungültige Anfragen werden nicht belastet, Fehler des Suchanbieters geben die Reservierung zurück. Ein Verbindungsabbruch des Clients kann nach einem bereits berechneten Erfolg auftreten. Ein erfolgreicher erneuter Versuch kostet erneut. /v1/status ist kostenlos, liefert aber nur eine statische Beschreibung und HTTP-Antwort, keinen Test des Such-Backends.
Testen Sie leere Antworten, unbekannte Summen, fehlende Verknüpfungen und die letzte erlaubte Seite vor der Veröffentlichung. Für Zahlungen erstellen Sie nach Anmeldung eine Rechnung, verwenden deren Betrag und Empfänger mit USDT auf TRON TRC20 oder USDC auf Ethereum mainnet ERC20 und reichen anschließend den Hash zur Prüfung ein. Eine feste Bestätigungs- oder Gutschriftzeit wird nicht garantiert.