Reddit API Stack

Guide d'intégration de l'API d'archive Reddit

Obtenir une clé API

Introduction et Préalables

Reddit API Stack permet de consulter des archives historiques indépendantes, sans affiliation officielle avec Reddit et sans données en temps réel. Séparez l’accès HTTP, l’adaptation des enregistrements et la présentation. Python peut traiter une analyse ou un lot de requêtes ; Node.js peut servir une interface sans transmettre la clé au navigateur de ses utilisateurs.

La clé apparaît une seule fois immédiatement après l’inscription par adresse électronique et mot de passe de 12 à 72 octets, avant tout paiement. Gardez-la dans la configuration de votre serveur. Les 100 crédits d’essai sont conditionnels aux contrôles anti-abus du réseau. La régénération exige une session ouverte et la confirmation du mot de passe, puis invalide l’ancienne clé.

Chaque récupération réussie coûte un crédit, même vide. $1 correspond à 1000 requêtes et le rechargement minimal de $50 à 50000 crédits achetés, sans expiration ni abonnement. Pour payer, créez une facture après connexion, utilisez son montant et destinataire exacts avec USDT sur TRON TRC20 ou USDC sur Ethereum mainnet ERC20, puis soumettez le hash pour vérification.

Interfaçage avec Python et JavaScript

Adressez les requêtes à api.redditapistack.com avec Authorization et le schéma Bearer. En Python, requests ou urllib.request permettent de configurer les en-têtes ; dans Node.js, utilisez fetch. Encodez les paramètres avec les outils d’URL du langage au lieu de concaténer les saisies. Les réponses contiennent des enregistrements plats, pas des arbres de discussion assemblés par le serveur.

Utilisez /v1/search pour une recherche générale, avec q, subreddit, author, kind et les autres filtres documentés. kind accepte post ou comment ; from et to sont des dates YYYY-MM-DD en UTC, avec to inclusif. limit va de 1 à 100 enregistrements, page de 1 à 100 pages par recherche. L’ordre documentaire _doc n’est ni chronologique ni fondé sur la pertinence.

La récupération spécifique d'un élément nécessite le paramètre id unique pour le point de terminaison item. Les endpoints posts et comments fonctionnent sans id obligatoire et acceptent des filtres variés comme min_score. Le filtre min_score agit uniquement comme un filtre et non comme un tri par score, contrairement à certaines attentes courantes. Les développeurs doivent gérer le regroupement local si les champs parent_id et link_id sont présents. Ces champs conditionnels permettent de reconstruire des conversations de manière basique côté client sans garantie de complétude.

Gestion des Erreurs et Statut

400 demande de corriger les paramètres, 401 de vérifier la clé, 402 de contrôler le solde et 429 de réduire la fréquence. Vérifiez le statut avant de traiter le corps : fetch peut recevoir une erreur HTTP sans rejeter la promesse et urllib.request peut lever HTTPError. Distinguez également les interruptions réseau des réponses d’erreur effectivement reçues.

Une requête invalide ne débite pas de crédit ; une erreur du fournisseur de recherche restitue la réserve. Une interruption côté client peut toutefois suivre un succès facturé côté serveur. Chaque nouvelle tentative réussie coûte un crédit supplémentaire : limitez les répétitions. /v1/status est gratuit et public, mais sa réponse statique ne prouve pas la disponibilité de la recherche.

Interprétez eq comme un total exact pour la recherche, gte comme une borne inférieure et unknown comme l’absence de total fiable. N’en déduisez pas la couverture des archives. Testez les résultats vides, les relations manquantes et la dernière page autorisée. Conservez vos critères et la date d’exécution pour expliquer la sélection sans promettre des résultats identiques à l’avenir.