En mai 2026, Reddit a fermé l'accès non authentifié aux .json endpoints — ce fameux truc consistant à «ajouter .json à n'importe quelle URL», sur lequel des dizaines de scripts, tableaux de bord et projets personnels s'étaient appuyés pendant des années. Vérification du 28 juillet 2026 : une requête à https://www.reddit.com/r/webscraping/top.json?t=week avec un User-Agent de navigateur classique renvoie un 403 Forbidden. En même temps, le robots.txt de Reddit ne contient que deux lignes significatives : User-agent: * et Disallow: / — en référence à la Public Content Policy.
Cela ne change pas «comment contourner», mais comment désormais construire un pipeline de collecte de données Reddit. Ci-dessous se trouve un schéma opérationnel pour 2026 : ce qui est réellement accessible, quelles sont les limites, où des proxies sont nécessaires et où ils ne serviront à rien.
Ce qui a réellement échoué : chronologie succincte
- Juin 2023 — Reddit a introduit un tarif payant de 0,24 $ pour 1000 appels API pour les applications à forte charge. Conséquence : fermeture d'Apollo (le développeur estimait le coût d'accès à environ 20 millions de dollars par an), départ de la plupart des clients tiers et arrêt de Pushshift — l'archive publique des publications et commentaires, sur laquelle reposait la moitié des recherches académiques.
- Mai 2026 — dépréciation de l'accès non authentifié au
.json. Les outils qui «tirait simplement l'URL» ont cessé de fonctionner ; le trafic est passé par la protection Cloudflare avec vérification de session. - Octobre 2025 — à ce jour — poursuite de Reddit contre Perplexity AI, Oxylabs UAB, AWMProxy et SerpApi (District Sud de New York, juge Engelmaier). Reddit accuse les défendeurs d'extraction industrielle de son contenu via les résultats de Google et de revente de données, en se référant aux dispositions anti-contournement du DMCA. Première plainte modifiée déposée ; à partir de mars 2026, l'affaire est en phase de motion to dismiss. Les défendeurs nient les violations : Perplexity qualifie cela de tentative de fermer des données publiques, SerpApi et Oxylabs déclarent accéder au web public dans le cadre de la loi.
Conclusion pratique du troisième point : la collecte de données Reddit en contournant l'API officielle est une zone de risque juridique, pas technique, et le coût d'une erreur pour un projet commercial se mesure non pas en bans, mais en poursuites. Pour plus de détails sur la façon dont les tribunaux en 2026 interprètent l'extraction de données des résultats, nous avons examiné cela dans un article sur la décision dans l'affaire Google et SerpApi.
API de données officielle : limites réelles 2026
C'est le seul moyen qui ne crée pas de réclamations légales. Voici les chiffres à connaître avant de concevoir :
- 100 requêtes par minute pour un client OAuth. La fenêtre est moyennée sur environ 10 minutes, donc de courtes poussées sont acceptables.
- 10 requêtes par minute sans OAuth — cela ne suffira à rien d'autre qu'à du débogage.
- La limite est calculée par clé d'application, et non par utilisateur final. Cinq flux sur un seul jeton ne donnent pas une capacité cinq fois supérieure — ils brûlent simplement un budget cinq fois plus vite.
- Le tarif gratuit couvre les projets personnels, les bots, les outils de modération et les recherches académiques. Il n'y a pas de compteur d'argent, seulement un plafond de fréquence.
- L'utilisation commerciale nécessite un contrat et une approbation manuelle ; le tarif est de 0,24 $ pour 1000 appels. Selon les estimations des plateformes sectorielles, le seuil d'entrée pour un contrat commercial commence à environ 12 000 $ par an.
- La formation de modèles ML sur les données de l'API est strictement interdite par les conditions de l'API de données. Les licences pour la formation sont des contrats privés distincts (l'accord de Reddit avec Google a été évalué à environ 60 millions de dollars par an dans la presse).
Les en-têtes à toujours analyser
Reddit renvoie trois en-têtes pour chaque réponse : X-Ratelimit-Used, X-Ratelimit-Remaining et X-Ratelimit-Reset. C'est la seule source fiable de vérité sur votre budget — pas une constante dans le code et pas une vieille wiki avec le chiffre «60 requêtes par minute» (qui est obsolète depuis 2023).
Exigences pour le User-Agent
Reddit attend une chaîne descriptive unique au format platform:app_id:version (by /u/username). Les User-Agent universels et vides sont sévèrement réduits en fréquence — c'est la première chose à vérifier si les limites s'épuisent plus tôt que prévu.
Étape par étape : comment construire un pipeline qui ne tombe pas
- Enregistrez une script-app dans les paramètres de Reddit et obtenez client_id/client_secret. Pour une charge en lecture seule, c'est le type d'application le plus simple.
- Définissez un User-Agent correct selon le format ci-dessus. Ne copiez pas la chaîne d'un tutoriel étranger —
app_idet le pseudo doivent être les vôtres. - Lisez
X-Ratelimit-Remainingà chaque réponse, et pas seulement en cas d'erreur. Lorsque le reste tombe à environ 20 requêtes, passez à un rythme uniforme : délai par appel = secondes jusqu'à la réinitialisation de la fenêtre ÷ requêtes restantes. Ainsi, vous étalez le quota sur la fenêtre au lieu de vous heurter à un mur. - Traitez correctement le 429. Prenez la première pause à partir de l'en-tête
Retry-After. Ensuite, utilisez un backoff exponentiel avec jitter :wait = 2^attempt + random(). Le jitter est obligatoire : sans lui, les clients parallèles répètent la requête de manière synchrone et provoquent une seconde cascade d'échecs. - Mettez en cache les lectures avec TTL. Une nouvelle requête pour le même listing est la cause la plus fréquente de l'épuisement du quota dans les projets de surveillance.
- Évoluez par rotation des jetons, pas des flux. Chaque jeton OAuth porte un compteur indépendant ; plusieurs applications sur différents comptes avec une distribution round-robin (en Python —
itertools.cycle) augmentent la capacité de manière linéaire. Important : pour une charge commerciale, cela ne remplace pas un contrat avec Reddit — c'est un moyen de respecter les limites équitables, pas de les contourner. - Prévoyez un contournement du cap de listing. Reddit renvoie un maximum d'environ 1000 éléments par listing (100 par page, curseur
after). Un contenu plus ancien n'est pas accessible via les endpoints standards. La solution standard consiste à ne pas «franchir» le cap, mais à découper l'échantillon par temps et à faire plusieurs requêtes étroites au lieu d'une large. - Pour les données historiques, recherchez un index, pas une API. Après la fermeture de Pushshift, son créneau est occupé par des index externes comme PullPush (gratuit, mais sans SLA) et des API de recherche commerciales avec leur propre index et d'autres plafonds. Pour le travail académique, Reddit a un programme distinct Reddit for Researchers.
Les pièges dont on découvre la réalité trop tard
PRAW endort le flux, mais ne sauve pas de tout. Le limiteur intégré de PRAW lit les en-têtes et met lui-même des pauses — cela fonctionne très bien pour un script à un seul fil. L'état actuel est visible via reddit.auth.limits. Cela échoue dans deux cas : en multithreading avec des identifiants partagés (les instances ne voient pas la consommation des autres) et dans le code asynchrone, où le time.sleep bloquant suspend la boucle d'événements.
Les agents AI épuisent le quota discrètement. Une seule étape de raisonnement d'un agent se transforme facilement en 10 à 15 appels d'outils. Dix sessions parallèles représentent 100 à 150 requêtes simultanées, soit tout le budget minute en quelques secondes. Si vous construisez un agent sur Reddit, un limiteur est nécessaire au niveau du pool, pas d'un appel individuel.
Polling sans backoff. Vérifier les mises à jour «toutes les N secondes» sans pause exponentielle est la deuxième cause de 429 après le jeton général.
Où les proxies sont réellement nécessaires, et où ils ne le sont pas
Disons-le franchement : les proxies n'augmentent pas votre limite d'API officielle. Le quota est lié à la clé de l'application, pas à l'IP sortante, et tenter de «multiplier» cela en changeant d'adresse ne fonctionne pas et va à l'encontre des conditions. Les tâches que les proxies résolvent réellement dans le pipeline Reddit sont différentes :
- Accès géo et connectivité. Reddit est inaccessible ou partiellement limité dans plusieurs pays, et les réseaux d'entreprise le bloquent comme un réseau social. Un nœud de sortie stable dans la région souhaitée est une question de disponibilité de l'infrastructure, pas de contournement des limites. Pour les tâches serveur avec une IP constante, un proxy de centre de données est généralement suffisant.
- Résultats régionaux. Une partie du contenu et des recommandations de Reddit est fournie en tenant compte de la géographie de la requête ; si vous analysez ce que voit l'audience d'un pays spécifique, une sortie de ce pays est nécessaire.
- Répartition de l'infrastructure. Lorsque plusieurs services indépendants (collecte, surveillance des mentions, analyse) résident sur un même serveur, une seule IP devient un point de défaillance commun pour toutes les intégrations.
- Travail avec des comptes personnels. Pour la modération, la gestion de communautés et l'activité SMM légitime à partir de plusieurs profils, le lien «compte ↔ IP permanente» est une hygiène de base. Ici, des proxies résidentiels avec session sticky sont appropriés.
Ce que les proxies ne feront pas : ils ne légitimeront pas la collecte commerciale en contournant le contrat, ne supprimeront pas le cap de listing de 1000 éléments et n'annuleront pas Disallow: / dans le robots.txt. L'approche générale pour travailler avec les limites des plateformes est examinée dans l'analyse sur la limitation de taux dans l'API et le rôle des proxies.
Conclusion
Reddit en 2026 a définitivement cessé d'être «un ensemble de données ouvert que l'on peut prendre en .json». Le schéma opérationnel est le suivant : accès OAuth officiel + limiteur honnête sur les en-têtes + rotation des jetons dans le cadre des règles + index externe pour l'historique. Les proxies dans ce schéma sont responsables de la disponibilité et de la géographie, pas du contournement des quotas — et c'est le seul rôle dans lequel ils donnent un résultat prévisible.
Si votre projet est commercial, prévoyez le budget pour un contrat avec Reddit à l'avance : l'historique judiciaire avec Perplexity, Oxylabs et SerpApi montre que la plateforme est prête à dépenser beaucoup plus pour protéger ses données que ce que coûte un accès légal.
```